Rk3568 Andorid 11 新增adb检测,只有使用客户私钥的设备才能链接adb

news/2025/1/17 18:04:15/

adbadb_3">Rk3568 Andorid 11 新增adb检测,只有使用客户私钥的设备才能链接adb

问题描述

在进行Rk3568 Android 11 的定制中 遇到一个安全类的问题,客户需要管理用户使用adb,只有使用指定公私钥的设备才能链接adb,防止设备被私自修改文件或滥用。

最终修改的文件是在

device/rockchip/common/device.mk
frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.java

新增文件

//为客户提供的公钥
device/rockchip/common/adbkey.pub

解决思路

首先让客户将其电脑下的公私钥提供给我们,然后再mk文件中将ro.adb.secure=1 把adb校验机制打开,然后将客户提供的adbkey.pub复制到根目录下名字改为adb_keys,但是这样会有一个问题,打开校验之后会有一个弹窗,如果点击了是的话 会将电脑的adbkey保存到设备中,会更新我们复制进去的key,导致每个电脑只要点击了确定之后都会可以连接,所以我们要将这个弹窗给去掉,并且默认不给予同意。

修改方案如下

diff --git a/device/rockchip/common/device.mk b/device/rockchip/common/device.mk
index b89552c4d2..7930b7add2 100644
--- a/device/rockchip/common/device.mk
+++ b/device/rockchip/common/device.mk
@@ -764,7 +764,7 @@ PRODUCT_TAGS += dalvik.gc.type-preciseifeq ($(strip $(BUILD_WITH_UMS)),true)PRODUCT_PROPERTY_OVERRIDES +=               \ro.factory.hasUMS=true                  \
-    persist.sys.usb.config=mass_storage,adb
+    persist.sys.usb.config=hidPRODUCT_COPY_FILES += \$(LOCAL_PATH)/init.rockchip.hasUMS.true.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(TARGET_BOARD_HARDWARE).environment.rc
@@ -773,7 +773,7 @@ ifeq ($(strip $(BUILD_WITH_CDROM)),true)PRODUCT_PROPERTY_OVERRIDES +=                 \ro.factory.hasUMS=cdrom                   \ro.factory.cdrom=$(BUILD_WITH_CDROM_PATH) \
-    persist.sys.usb.config=hid,mass_storage,adb 
+    persist.sys.usb.config=hid PRODUCT_COPY_FILES += \$(LOCAL_PATH)/init.rockchip.hasCDROM.true.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(TARGET_BOARD_HARDWARE).environment.rc
@@ -1483,9 +1483,10 @@ PRODUCT_PROPERTY_OVERRIDES += sys.mouse.presentation=1-
+PRODUCT_PROPERTY_OVERRIDES += ro.adb.secure=1PRODUCT_COPY_FILES += \
-     $(LOCAL_PATH)/display_settings.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display_settings.xml
+     $(LOCAL_PATH)/display_settings.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display_settings.xml \
//将客户提供的公钥copy到设备根目录
+      $(LOCAL_PATH)/adbkey.pub:root/adb_keys# build libmpimmz for rknnPRODUCT_PACKAGES += \
diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.java
index b1241b160d..30ae85f32c 100644
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.java
@@ -78,7 +78,7 @@ public class UsbDebuggingActivity extends AlertActivityString fingerprints = intent.getStringExtra("fingerprints");mKey = intent.getStringExtra("key");-        if (fingerprints == null || mKey == null) {
//将弹窗默认直接关闭
+        if (fingerprints == null || mKey == null || true) {finish();return;}

最终效果

修改完之后,使用adb shell 连接设备会有以下报错,将不能连接
在这里插入图片描述

将客户提供的公私钥内置到我的电脑上之后的效果,公私钥保存在一般是保存在C:\Users\用户名.android下,我们将其替换之后
在这里插入图片描述
将客户的key替换到上述目录之后的效果
在这里插入图片描述

总结

在这个问题的处理阶段中,我是先去了解adb验证机制,然后在原生的验证机制内修改部分,然后达到自己想要的效果。

每日赠言

马上就要过年了,祝大家蛇年大吉,新的一年工作顺利,身体健康。


http://www.ppmy.cn/news/1563939.html

相关文章

360AI平台资源可视化建设

1.引言 在当前高性能计算(HPC)、人工智能训练以及大规模分布式系统的快速发展中,计算集群成为了核心基础设施。然而,集群规模的不断扩张和复杂性的提升使得资源利用和优化变得愈发重要。集群资源可视化作为一种直观且高效的分析手…

《机器学习》——PCA降维

文章目录 PCA降维简介什么是主成分分析? 主成分的选择与维度确定降维的数学过程PCA降维求解步骤降维后的效果和应用场景中的优势PCA模型API参数Attributes属性PCA对象的方法 PCA降维实例导入所需库导入数据集对数据进行处理创建PCA模型并训练查看训练结果对降维数据…

淘宝 URL 采集商品详情数据的常见方法

一、通过淘宝开放平台(如果有资质) 注册成为淘宝开发者 访问淘宝开放平台官方网站,按照要求填写开发者信息,包括企业或个人身份验证等步骤。这一步是为了获取合法的 API 使用权限。 了解商品详情 API 淘宝开放平台提供了一系列…

ubuntu Android : adb logcat 过滤多个log

指定字符串的log,可以用下面的形式,注意加-E和单引号: adb shell " logcat | grep -E strings1|strings2 " 参考:Android : adb logcat 过滤多个log 用adb shell “ logcat | grep -E ‘strings1| strings2 ‘ “ 形…

Chapter 3-11. Detecting Congestion in Fibre Channel Fabrics

Link Failure — Link Reset Failed Nonempty Recv Queue (LR Rcvd B2B) Direction — Ingress Congestion方向 - 入口拥塞 Severity — Severe严重程度 - 严重 LR Rcvd B2B stands for Link Reset (LR) primitive received but ingress frames are still queued. LR Rcvd B…

uniApp开通uniPush1.0个推,SpringBoot集成uniPush1.0个推

uniApp开通unipush1.0个推,SpringBoot程序集成 一、APP开通unipush1.0个推(商户App源码仅支持1.0个推) 1.app模块配置开通推送 2.应用开通推送 3.开通后点击消息推送菜单会看到如下页面 完成以上步骤后 此时android 仅支持在线推送。 4.配置各厂商离线推送 暂未…

VirtualBox环境中vscode报错:提取扩展时出错。Failed to fetch

问题现象: VSCode切换到扩展并筛选特色时(为了触发联网),提示提取扩展时出错。Failed to fetch 拔网线复现不了,完全没有网络VSCode只会提示离线 虚拟机内Edge浏览器访问https://marketplace.visualstudio.com/直接报ERR_CONNECTION_REFUSED…

yt-dlp脚本下载音频可选设置代理

import yt_dlp# 配置:是否使用代理 use_proxy = True # 设置为 False 可关闭代理# 代理地址 proxy_url = socks5://127.0.0.1:1089URLS = [https://www.bilibili.com/video/BV1WTktYcEcQ/?spm_id_from=333.1007.tianma.6-2-20.click&vd_source=dcb58f8fe1faf749f438620b…