安卓user版本adb不弹授权窗口

本文指导如何在用户版本的设备上关闭adb授权弹窗,并确保adbshell连接正常工作。涉及修改build、device和system文件,调整默认属性,如ro.adb.secure和ADB授权策略。


debug版本是默认开adb且,不会弹授权确认窗口
user版本在代码中打开adb后,会弹出确认窗口,需要点击才能连接使用,去掉此窗口需要几个步骤

user版本adb不用弹窗

  1. user版本adb不弹窗,注意只做这一步不够,否则是不弹窗了,但是adb shell连接不上
    build/make/core/main.mk
   ADDITIONAL_DEFAULT_PROPERTIES += security.perf_harden=1
 
   ifeq ($(user_variant),user)
-    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
+    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0
   endi
  1. user版本开adb功能
    device/xxx不同平台目录不一样/common/DeviceCommon.mk
 ifeq ($(TARGET_BUILD_VARIANT),user)
-  PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.sys.usb.config=ptp
+  PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.sys.usb.config=ptp,adb
  1. user版本adb不用授权
    system/core/adb/Android.mk
@@ -350,7 +350,7 @@ LOCAL_CFLAGS := \
     -D_GNU_SOURCE \
     -Wno-deprecated-declarations \
 
-LOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=$(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)),1,0)
+LOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=$(if $(filter user userdebug eng,$(TARGET_BUILD_VARIANT)),1,0)

ADB授权

ADB(Android Debug Bridge)是一种允许计算机与 Android 设备进行通信的命令行工具,常用于设备调试、文件传输等操作。在使用 ADB 与 Android 设备进行通信时,需要进行授权,以确保设备的安全性。以下为你详细介绍安卓 ADB 授权的相关内容。

授权原理

当计算机首次通过 ADB 连接 Android 设备时,设备会生成一个公钥 - 私钥对。设备将公钥发送给计算机,计算机将其存储在本地的 ~/.android/adbkey.pub 文件中。同时,设备会在屏幕上弹出授权提示框,询问用户是否允许该计算机进行调试。用户确认授权后,设备会将该计算机的公钥添加到信任列表中,之后该计算机就可以与设备进行通信。

授权步骤

  1. 开启设备的 USB 调试模式
    打开设备的 “设置” 应用。
    找到 “关于手机” 或 “关于设备” 选项。
    连续点击 “版本号”,直到提示 “您已处于开发者模式”。
    返回 “设置” 主界面,找到 “开发者选项”。
    在 “开发者选项” 中,开启 “USB 调试” 开关。
  2. 连接设备到计算机
    使用 USB 数据线将 Android 设备连接到计算机。确保数据线正常工作,并且设备和计算机之间建立了稳定的连接。
  3. 安装 ADB 工具
    如果你还没有安装 ADB 工具,可以按照以下步骤进行安装:
    Windows 系统:从 Android SDK 平台工具 下载压缩包,解压后将其中的 adb.exe、fastboot.exe 等文件所在的目录添加到系统的环境变量 PATH 中。
    Linux 系统:在基于 Debian 或 Ubuntu 的系统中,可以使用以下命令安装:
sudo apt-get install android-tools-adb android-tools-fastboot

macOS 系统:使用 Homebrew 进行安装:

brew install android-platform-tools
  1. 进行授权
    打开计算机的命令行终端,输入以下命令检查设备是否被识别:
adb devices

如果设备未被授权,命令行输出可能如下:

List of devices attached
0123456789ABCDEF        unauthorized

在 Android 设备上,会弹出一个授权提示框,询问是否允许该计算机进行调试。点击 “确定” 或 “允许” 按钮,完成授权。
再次在命令行中输入 adb devices 命令,此时设备应该显示为已授权状态:

List of devices attached
0123456789ABCDEF        device

常见问题及解决方法

设备未被识别:检查 USB 数据线是否正常工作,尝试更换数据线或 USB 端口。确保设备的 USB 调试模式已开启。
授权提示框未弹出:可以尝试在命令行中输入 adb kill-server 命令停止 ADB 服务,然后再输入 adb start-server 命令重新启动服务。或者在设备的 “开发者选项” 中,点击 “撤销 USB 调试授权”,然后重新连接设备进行授权。
授权失败:检查计算机的 ~/.android/adbkey.pub 文件是否存在,并且权限设置是否正确。如果问题仍然存在,可以尝试删除该文件,然后重新连接设备进行授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅得不敢出门

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值