用户版AOSP构建中ADB设备无法自动授权的解决咨询
解决AOSP User版本ADB自动授权问题
针对你遇到的问题,以下是具体的排查和修复步骤:
1. 调整adbkey.pub的目标路径
User版本中,/data分区可能存在加密或权限限制,导致adbd启动时无法读取该路径下的adb_keys。建议将公钥文件放到**/system/etc/adb_keys**(系统只读分区,adbd默认会优先读取此路径的授权文件),修改.mk文件:
ifeq ($(TARGET_BUILD_VARIANT),user) PRODUCT_COPY_FILES += device/XX/YY/adbkey.pub:$(TARGET_COPY_OUT_SYSTEM)/etc/adb_keys endif
2. 配置文件权限与所有者
确保/system/etc/adb_keys的权限符合adbd的读取要求,在.mk中添加权限配置:
PRODUCT_FS_CONFIGS += $(TARGET_COPY_OUT_SYSTEM)/etc/adb_keys:0644:root:root
此配置设置文件权限为644,所有者和组均为root,保证adbd进程可正常读取。
3. 验证SELinux上下文(若需要)
即使已设置androidboot.selinux=permissive,仍需确保文件的SELinux上下文正确。在设备对应的sepolicy目录下添加file_contexts文件,内容:
/system/etc/adb_keys u:object_r:system_file:s0
并在.mk中引入sepolicy目录:
PRODUCT_SEPOLICY_DIRS += device/XX/YY/sepolicy
4. 确认ADB相关系统属性
在.mk中添加以下属性,确保ADB功能正常启用:
PRODUCT_PROPERTY_OVERRIDES += \ ro.adb.secure=1 \ ro.adb.enable=1
ro.adb.secure=1:启用安全模式,adbd会读取授权文件验证连接ro.adb.enable=1:确保ADB功能处于开启状态
5. 编译验证
重新编译后,检查out/target/product/YY/system/etc/adb_keys:
- 文件存在且内容与本地
~/.android/adbkey.pub完全一致 - 使用
ls -l查看权限为-rw-r--r-- root root
完成以上步骤后,重新刷入系统,USB连接设备即可实现ADB自动授权。
内容的提问来源于stack exchange,提问作者Tuncay Yıldırım
相关产品推荐
相关产品推荐

