这里使用香橙派5 max适配的 redroid,拉取源码并编译 ,并且修改 adb_key的认证方式,使用预埋证书完成认证。
源码版本是 Android12,并且使用user模式编译。
香橙派5max的板子是这样的(实际测试不能这样裸着,必须加上散热和风扇,否则同时跑多个实例cpu热到死机):

香橙派安装 Ubuntu参考 : 香橙派刷入Ubuntu系统
1、拉取源码
2、修改源码
1)编译增加user模式
修改device文件 device/redroid/AndroidProducts.mk ,新增 redroid_arm64-user
2)新增adb_keys文件和shell文件:

adb_keys主要用于存放adb认证用的公钥,preinstall用于在系统第一次启动时,拷贝相关文件。
preinstall.sh文件内容如下,目的在系统启动时将 adb_keys文件拷贝到 data/system目录下:
3) 打包时拷贝相关文件
修改 build/target/product/base_product.mk,增加内容:
4)系统启动时运行preinstall.sh
修改 system/core/rootdir/init.rc ,在 on_boot 最后新增:
修改 system/sepolicy/private/file_contexts 以及 system/sepolicy/prebuilts/api/31.0/private/file_contexts,新增:
新增文件 system/sepolicy/private/preinstall.te 以及 system/sepolicy/prebuilts/api/31.0/private/preinstall.te ,内容如下:
修改 system/sepolicy/private/init.te 以及 system/sepolicy/prebuilts/api/31.0/private/init.te,新增:
编译时如果还有其他selinux问题,自行看提示解决。因为我也忘了还修改了哪些。
5) 修改adb认证
修改 frameworks/native/libs/adbd_auth/adbd_auth.cpp,路径中新增 /data/system/adb_keys
修改 frameworks/base/services/core/java/com/android/server/adb/AdbDebuggingManager.java
6)开机时启动adb服务
修改 frameworks/base/services/core/java/com/android/server/adb/AdbService.java
修改 system/core/rootdir/init.usb.rc
7)修改adb连接过期时间
修改 frameworks/base/core/java/android/provider/Settings.java
8)保持adb root 权限
修改 packages/modules/adb/daemon/main.cpp , should_drop_privileges函数返回false
9)其它可能需要修改
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2025-6-6 16:15
被CCTV果冻爽编辑
,原因: