Android O版本如何在userdebug 版本上remount

时间:2022-06-27 19:59:11

[DESCRIPTION]

在需要对image文件(如system.img)等进行解压->修改->打包->烧录后,可能会出现无法开机的现象。

[SOLUTION]

这个问题主要是受到了VERITY的影响。

解决的方法有两种:

一.在烧录前进行unlock操作
1. MTK User load boot up to home screen
2. Please enable OEM unlocking in settings
3. Please enable USB debugging in settings
4. Press Volume up key + power key into fastboot mode
5. Connect phone to PC, input “fastboot flashing unlock” / “fastboot oem unlock”
6. fastboot flash system system.img
7. fastboot reboot

二.在编译前作一定的修改:

2.1 Android N之前有两种方法:
(1) 将build/target/product/verity.mk中的
PRODUCT_SUPPORTS_VERITY := true
改为:
PRODUCT_SUPPORTS_VERITY := false

   (2) 在vendor/mediatek/proprietary/hardware/fstab/{platform}/fstab.in中
    /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/vendor /vendor __MTK_VNDIMG_FSTYPE ro wait,verify,recoveryonly
     将"verify"去除。

2.2 Android O中需要进行如下改动:
(1)在build/target/product/verity.mk中,将
PRODUCT_SUPPORTS_VERITY := true
PRODUCT_SUPPORTS_VERITY_FEC := true
改为 :
PRODUCT_SUPPORTS_VERITY := false
PRODUCT_SUPPORTS_VERITY_FEC := false

(2) 在/device/mediateksample/{Project}/ProjectConfig.mk中,将
MTK_DM_VERITY_OFF = no
改为 :
MTK_DM_VERITY_OFF = yes

(3)在/kernel/{arch|arch64}/{arm|arm64}/configs/{Project}defconfig中,将

CONFIG_DM_VERITY=y
改为 :
CONFIG_DM_VERITY=n
同时,添加:
CONFIG_MTK_DM_VERITY_OFF=y

(4)
For O0:
在system/core/fs_mgr/Android.mk 中,将
ifneq (, ( f i l t e r e n g , (TARGET_BUILD_VARIANT)))
LOCAL_CFLAGS += -DALLOW_SKIP_SECURE_CHECK=1
endif
改为:
#ifneq (, ( f i l t e r e n g , (TARGET_BUILD_VARIANT)))
LOCAL_CFLAGS += -DALLOW_SKIP_SECURE_CHECK=1
#endif

For O1:
在/system/core/fs_mgr/Android.bp中,在
58    product_variables: {
前面添加:
cppflags: ["-DALLOW_SKIP_SECURE_CHECK=1"],