在android P版本上执行adb remount会提示以下错误:

remount of the / superblock failed: Permission denied
remount failed

如果是 Android P + kernel-4.4 or kernel-3.18 ,只需如下操作:
# adb root
# adb disable-verity
# adb reboot
# adb root
# adb remount

如果是 Android P + kernel-4.9以上 ,需要操作:

- go to setting -> system -> Developer options -> OEM unlocking
# adb reboot bootloader
# fastboot flashing unlock
# press volume up key
# fastboot reboot
# adb root
# adb disable-verity
# adb reboot
# adb root
# adb remount

这是不是很麻烦,这里教码友们如何在编译时,直接就能adb remount

我们需要关闭DM Verity 和secure boot 。

一、关闭DM Verity:

在 alps/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/$(PLATFORM)/rules.mk 中

将:

ifeq ($(MTK_DM_VERITY_OFF),yes)
        DEFINES += MTK_DM_VERITY_OFF
    endif

改为强制定义 MTK_DM_VERITY_OFF:

DEFINES += MTK_DM_VERITY_OFF

也可以改成,仅Debug版本才定义MTK_DM_VERITY_OFF:

ifeq ($(strip $(TARGET_BUILD_VARIANT)),user)
    ifeq ($(MTK_DM_VERITY_OFF),yes)
        DEFINES += MTK_DM_VERITY_OFF
    endif
else
    DEFINES += MTK_DM_VERITY_OFF
endif

修改后rebuild,会发现在开机Logo界面提示:Your device has been unlocked and can't be trusted

说明已经修改成功了。

但是目前还不能正常调试,我们会发现通过 adb push文件到system分区之后一旦重启,push的文件会被自动恢复.

是因为平台的secure boot机制,对system分区有写保护,导致无法对system进行写入,只需要将该功能关掉即可。

二、关闭secure boot

在 alps/vendor/mediatek/proprietary/bootable/bootloader/preloader/Makefile 中

将:

@echo '#'define CUSTOM_SUSBDL_CFG $(MTK_SEC_USBDL) >> $@
    @echo '#'define CUSTOM_SBOOT_CFG $(MTK_SEC_BOOT) >> $@

改为:

@echo '#'define CUSTOM_SUSBDL_CFG ATTR_SUSBDL_DISABLE >> $@
    @echo '#'define CUSTOM_SBOOT_CFG ATTR_SBOOT_DISABLE >> $@

也可以只针对debug版本进行修改:

ifeq ($(TARGET_BUILD_VARIANT), user)
    @echo '#'define CUSTOM_SUSBDL_CFG $(MTK_SEC_USBDL) >> $@
    @echo '#'define CUSTOM_SBOOT_CFG $(MTK_SEC_BOOT) >> $@
else
    @echo '#'define CUSTOM_SUSBDL_CFG ATTR_SUSBDL_DISABLE >> $@
    @echo '#'define CUSTOM_SBOOT_CFG ATTR_SBOOT_DISABLE >> $@
endif

至此,码友们就可以正常的进行adb调试了。而不必每次刷机后,又得OEM unlock。

MTK Android 9.0(Android P) + kernel-4.9 默认关闭DM Verity 和secure boot 解决无法adb remount的问题相关推荐

  1. 该功能仅支持Android5.0,Android 5.0 android:elevation适用于View,但不适用于Button?

    在SDK Manager的Android 5.0示例中,有ElevationBasic示例.它显示了两个View对象:一个圆形和一个正方形.该圈子已android:elevation设置为30dp: ...

  2. 怎么更新android 10.0,Android 10.0(Q OS)系统升级计划Androi

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Android 10.0(Q OS)系统升级计划 Android 10.0 系统升级计划: 系列 型号 升级计划 Galaxy S10 SM-G9730 ...

  3. android studio8.0,Android Studio错误:(8,0)未找到ID为’android’的插件

    我在OS X(10.9.3)上安装了 Android Studio(0.6.1),使用Brew(brew install gradle)安装了Gradle 1.1.但是,我无法得到我的第一个Hello ...

  4. nexus5 android 7.0,Android 7.0 Nougat正式版刷机教程—nexus5X

    Android 7.0正式版发布已经有一段时间,手上有nexus设备的童鞋不知道更新了最新系统没有,反正我的nexus 5x 6.0的系统是始终没有收到7.0的OTA升级推送,无奈,只有自己动手,丰衣 ...

  5. edge android 6.0,Android 6.0.1让Galaxy S6 Edge的曲面屏真正有了用武之地

    很多Android用户此刻大概都在期盼Android 6.0棉花糖系统更新,不过大部分人有这种期盼只不过是有点必须升级到新系统的强迫症.而三星则认为,需要针对自家产品,在新系统的更新上做点实在的事情. ...

  6. 对于ANDROID 5.0及其以上版本WIFI图标上显示感叹号的原因分析及解决方法

    这里我指的是WIFI可正常连接网络使用的前提下,手机状态栏WIF图标上仍出现感叹号的情况. 原因: 从 Android 5.0 开始,当安卓系统连接网络时,系统会向Google的某个特定的网址(htt ...

  7. android 8.0如何编译,ubuntu16.0编译Android 8.0 Android O记录

    一.必要的系统环境 硬盘200G,内存4G+,交换分区(swap)4G+(可装完系统后添加,见后面错误处理部分) 二.下载源码,国内可以在清华镜像站下载 网上有很多教程,这里就不再累述了 三.然后安装 ...

  8. Google nexus 6p android 8.0——android 6.0 两部曲

    Google nexus 6p android8.1降级至android6.0两步曲 一.解锁的安装使用(两个锁:oem和bootloader,需要人为地unlock) 1.电脑端的操作部分 使用最新 ...

  9. android 12.0 第三方输入法app设置系统默认输入法

    1.概述 在12.0的产品开发中,有功能需要要求设置默认输入法,替换掉系统的输入法,所以这就需要了解设置输入法的相关功能需求,然后根据输入法包名来设置默认输入法 2.第三方输入法app设置系统默认输入 ...

最新文章

  1. centos 多台 文件夹同步_CentOS7配置rsync实现文件同步
  2. Eclipse中安装插件时提示:No repository found containing: osgi.bundle,org.eclipse.emf,2.8.0.v20180706-1146
  3. error: storage size of ‘threads’ isn’t known
  4. pyDes vs pycrypto
  5. github代码的提交与下载
  6. APUE 学习笔记(三) 文件和目录
  7. python md5加密
  8. 2个相同的 stm32 can通讯不成功_STM32芯片的几种烧写方式简介
  9. elementUI table 绑定数据
  10. 个人项目之电商秒杀系统总结
  11. mysql修改数据sql语句_sql语句修改数据
  12. 第三十九章 Caché 函数大全 $MATCH 函数
  13. 时间序列分析之误差修正模型(ECM)
  14. DELL服务器 一般内存模块安装原则
  15. 学校计算机机房解说词,学校会议室解说词.doc
  16. C语言射击类打飞机小游戏
  17. 智能音箱天猫精灵使用体验--写在前面的话
  18. 企业管理决策之金字塔思维
  19. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。
  20. ~!#¥%……*()——+|

热门文章

  1. php7 安装zip扩展详细教程
  2. python基础——100多个Python挑战性编程练习
  3. easyconnect工具
  4. java有向图最短路径_单源最短路径之Java实现(使用Java内置优先队列)
  5. 机器学习 舆情监控_机器学习监控它是什么以及我们缺少什么
  6. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(八):线性分类笔记(下)
  7. mysql 5.5 1067_MySQL 5.5 发生系统错误1067的解决办法
  8. vue周历可左右滑动(带有阴历)
  9. 你创意的卖点,够吸引人、动人么?
  10. 小程序高级电商前端第2周深入理解REST API开发规范 开启三端分离编程之旅<一>----优惠券、函数式编程、重构Theme