Android13及更新版本开启user版本adb root remount

#测试需要用user版本,性能相关调试也需要user版本,但user版本默认没有root和remount,影响调试效率#

一、开启user版本adb及adb root

复制代码
build/core/main.mk

# 修改点1

# 此属性主要影响开启adb是否需要弹窗点授权

   ifeq ($(user_variant),user)
-    ADDITIONAL_SYSTEM_PROPERTIES += ro.adb.secure=1
+    ADDITIONAL_SYSTEM_PROPERTIES += ro.adb.secure=0
   endif

# 修改点2
# 此属性主要影响是否允许adb root,另外还会默认将USB配置上adb功能
else # !enable_target_debugging
   # Target is less debuggable and adbd is off by default
-  ADDITIONAL_SYSTEM_PROPERTIES += ro.debuggable=0
+  ADDITIONAL_SYSTEM_PROPERTIES += ro.debuggable=1
 endif # !enable_target_debugging

# 修改点3
# 影响adb 等debug工具是否参与编译打包进super.img 这会导致打包进一些额外的工具
     # Disable debugging in plain user builds.
-    enable_target_debugging :=
+    enable_target_debugging := true


另外如果需要无需执行adb root,默认就是root,可以将ro.secure改为1


# 可选修改
# 修改点,不判断debugable 和 secure直接返回false

packages/modules/adb/daemon/main.cpp
@@ -74,6 +74,7 @@ static bool should_drop_privileges() {
     //
     // ro.secure:
     //   Drop privileges by default. Set to 1 on userdebug and user builds.
+    return false;

二、开启adb remount

复制代码
packages/modules/adb/Android.bp

# 修改点1,让原本只有debug版本才编译进去的remount默认就参与编译

phony {
    name: "adbd_system_api",
    required: [
        "libadbd_auth",
...
        "reboot",
+       "remount",
    ],
    product_variables:[
        debuggable:{
            required: [
               "remount",
            ],
    }, 
}


system/core/fs_mgr/Android.bp

# 修改点
# 允许disable verify
# 将文件中几处VERITY=0改为1
     cppflags: [
-        "-DALLOW_ADBD_DISABLE_VERITY=0",
+        "-DALLOW_ADBD_DISABLE_VERITY=1",
     ],

总结:新Android user版本开启root和remount修改的地方和老版本差异很大,特别是adb由原来的一个二进制文件变为了一个package,代码路径也发生了变化,但核心原理没有变化。另外平台差异、系统版本差异,修改会略有不同。

相关推荐
ao-weilai2 天前
MySQL数据库:表操作
数据库·mysql·adb
Lancker5 天前
记一次 Druid 连接 MySQL 报 Communications link failure 的排查过程
数据库·mysql·adb
JosieBook6 天前
【数据库】MySQL 实战精通系列 · 第1篇:MySQL 全局观与实战环境搭建
数据库·mysql·adb
蒸鱼Yuzheng6 天前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性
文人sec15 天前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
2501_9160088916 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_9160088919 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
鸽芷咕21 天前
MySQL Server 鸿蒙 PC 适配全记录:以混合工具链完成 C++23 交叉编译与 HNP 交付
adb·harmonyos·c++23
游戏开发爱好者823 天前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
实心儿儿23 天前
MySQL 的安装
数据库·mysql·adb