歡迎您光臨本站 註冊首頁

enable開啟adb 調試 不提示對話框的流程分析

←手機掃碼閱讀     火星人 @ 2020-06-04 , reply:0

需求解讀  

由於定製rom給用戶具體需求如下:

  • 入工廠測試app自動打開adb調試模式,退出就關閉,防止客戶的用戶安裝其它應用(直接通過改變Settings.Global.ADB_ENABLED欄位)

  • 打開usbdebug不提示彈出框

  • 禁止調試圖標出現在通知狀態欄

過程分析
 

通過欄位關閉和開啟usb調試模式

通過開啟開發者模式最終發現開啟或者關閉是改變如下欄位:

 Settings.Global.putInt(getContentResolver(),Settings.Global.ADB_ENABLED, 0);


打開USBdebug不彈框流程  

當adb_enable為0時會關閉adb調試模式,為1是會有彈框提示點擊確認時會默認打開usb調試模式;通過代碼查找發現在frameworksaseservicesusbjavacomandroidserverusbUsbDeviceManager.java中監聽

在這裡插入圖片描述

發送消息handler消息

在這裡插入圖片描述

獲取消息,進入如下方法

在這裡插入圖片描述

調取mDebuggingManager.setAdbEnabled(mAdbEnabled);目前就以ENABLED為例

在這裡插入圖片描述

收到消息創建線程:

在這裡插入圖片描述

監聽

在這裡插入圖片描述

發送handler消息,得到相應的key

在這裡插入圖片描述

進一步調取

在這裡插入圖片描述

啟動對應的activity,標記為對應的activity報名和類名

在這裡插入圖片描述

修改frameworksasepackagesSystemUIsrccomandroidsystemuiusbUsbDebuggingActivity.java
屏蔽授權彈框

在這裡插入圖片描述

禁止通知狀態欄usb顯示  

/device/rockchip/xxxx/system.prop 添加 欄位persist.adb.notify=0
實現完成


[火星人 ] enable開啟adb 調試 不提示對話框的流程分析已經有234次圍觀

http://coctec.com/docs/program/show-post-236890.html