From ca8b2c699584cc498ff5f761fca9789c54ea1219 Mon Sep 17 00:00:00 2001 From: Bowgo Tsai Date: Wed, 15 Nov 2017 18:06:48 +0800 Subject: [PATCH] Adding /odm support Treble system-as-root GSI needs to work on devices with and without /odm partition. This change creates the following symlinks for devices without /odm partition: /odm/app ->/vendor/odm/app /odm/bin ->/vendor/odm/bin /odm/etc ->/vendor/odm/etc /odm/firmware ->/vendor/odm/firmware /odm/framework ->/vendor/odm/framework /odm/lib -> /vendor/odm/lib /odm/lib64 -> /vendor/odm/lib64 /odm/overlay -> /vendor/odm/overlay /odm/priv-app -> /vendor/odm/priv-app For devices with odm partition, /odm will be used as the mount point and those symlinks will be hidden after mount. Bug: 70678783 Test: boot a A/B device without /odm partition, checks those symlinks exist Test: boot a A/B device with /odm partition, checks those symlinks don't exist Change-Id: I4d960b52e2754f461188f3ab562c751f502046ea (cherry picked from commit 00749affc4a9185953d7444c88f614c5b7694504) --- rootdir/Android.mk | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rootdir/Android.mk b/rootdir/Android.mk index feb100ef6..f488ed5a4 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -93,6 +93,23 @@ ifdef BOARD_USES_PRODUCTIMAGE else LOCAL_POST_INSTALL_CMD += ; ln -sf /system/product $(TARGET_ROOT_OUT)/product endif + +# For /odm partition. +LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/odm +# For Treble Generic System Image (GSI), system-as-root GSI needs to work on +# both devices with and without /odm partition. Those symlinks are for devices +# without /odm partition. For devices with /odm partition, mount odm.img under +# /odm will hide those symlinks. +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/app $(TARGET_ROOT_OUT)/odm/app +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/bin $(TARGET_ROOT_OUT)/odm/bin +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/etc $(TARGET_ROOT_OUT)/odm/etc +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/firmware $(TARGET_ROOT_OUT)/odm/firmware +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/framework $(TARGET_ROOT_OUT)/odm/framework +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/lib $(TARGET_ROOT_OUT)/odm/lib +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/lib64 $(TARGET_ROOT_OUT)/odm/lib64 +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/overlay $(TARGET_ROOT_OUT)/odm/overlay +LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/priv-app $(TARGET_ROOT_OUT)/odm/priv-app + ifdef BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/cache else