android设备连接电脑无需授权

本文介绍如何去除Android设备连接电脑时的调试授权提示,适用于Android 8.0 user版本。通过修改代码实现免授权调试,包括注释特定配置及调整宏定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:本文主要介绍设备连接电脑后如何去除“一律允许使用这台计算机进行调试”对话框,并且能够正常使用。通过代码的修改达到此效果。

Android8.0 user版本使用adb root(且不用授权adb key)
上面超链接有详细的修改流程。

user版本不同于userdebug和eng,会要求设备连接电脑时进行授权,
在android低版本(Lollipop)在build/make/core/main.mk文件中将以下代码注释即可

## user/userdebug ##
...
  ifeq ($(user_variant),user)
    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
  endif
...

但在高版本中,除了此属性判断外,还有宏开关ALLOW_ADBD_NO_AUTH控制:
/system/core/adb/daemon/main.cpp

int adbd_main(int server_port) {
...
    if (ALLOW_ADBD_NO_AUTH && !android::base::GetBoolProperty("ro.adb.secure", false)) {
        auth_required = false;
    }
...
}

如果auth_required=true,就会进行接下来的授权流程:
auth_required初始为true:
/system/core/adb/adbd_auth.cpp

bool auth_required = true;

是否授权判断:
/system/core/adb/adb.cpp

static void handle_new_connection(atransport* t, apacket* p) {
...
    if (!auth_required) {
        handle_online(t);
        send_connect(t);
    } else {
        send_auth_request(t);
    }
...
}

所以,除了修改ro.adb.secure,还需要修改ALLOW_ADBD_NO_AUTH:
/system/core/adb/Android.mk

LOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=$(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)),1,0)

由于只有userdebug/eng/user的区分,所以可以直接注释后添加LOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=1
也可以加user进行过滤。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值