1. 程式人生 > >Android O版本如何在userdebug 版本上remount

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

[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 (,(filtereng,(TARGET_BUILD_VARIANT)))
LOCAL_CFLAGS += -DALLOW_SKIP_SECURE_CHECK=1
endif
改為:
#ifneq (,(filtereng,(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"],