debug版本是默认开adb且,不会弹授权确认窗口
user版本在代码中打开adb后,会弹出确认窗口,需要点击才能连接使用,去掉此窗口需要几个步骤
user版本adb不用弹窗
- 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
- 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
- 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 文件中。同时,设备会在屏幕上弹出授权提示框,询问用户是否允许该计算机进行调试。用户确认授权后,设备会将该计算机的公钥添加到信任列表中,之后该计算机就可以与设备进行通信。
授权步骤
- 开启设备的 USB 调试模式
打开设备的 “设置” 应用。
找到 “关于手机” 或 “关于设备” 选项。
连续点击 “版本号”,直到提示 “您已处于开发者模式”。
返回 “设置” 主界面,找到 “开发者选项”。
在 “开发者选项” 中,开启 “USB 调试” 开关。 - 连接设备到计算机
使用 USB 数据线将 Android 设备连接到计算机。确保数据线正常工作,并且设备和计算机之间建立了稳定的连接。 - 安装 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
- 进行授权
打开计算机的命令行终端,输入以下命令检查设备是否被识别:
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 文件是否存在,并且权限设置是否正确。如果问题仍然存在,可以尝试删除该文件,然后重新连接设备进行授权。