usb debugging的实现机制
来源:互联网 发布:淘宝装修案例 编辑:程序博客网 时间:2024/05/03 13:07
在settings中,有一个控制是否允许远程调试的选项usb debugging,当这个开关为off的时候,无法使用adb,也不能把**当作ms-storage来使用。 java中能访问的设定保存在/data/data/com.android.providers.settings/databases/settings.db里面。
字段名字叫做 adb_enabled。用户操作settings来修改设定时,实际上就是改变这个字段。
android进程system server中起了一个线程在一直监视db的这个字段。
根据这个字段的值来修改system propertity,其实也就是修改linux的环境变量
persist.service.adb.enable
代码如下
- class ServerThread extends Thread {
- private static final String TAG = "SystemServer";
- private final static boolean INCLUDE_DEMO = false;
- private static final int LOG_BOOT_PROGRESS_SYSTEM_RUN = 3010;
- private ContentResolver mContentResolver;
- private class AdbSettingsObserver extends ContentObserver {
- public AdbSettingsObserver() {
- super(null);
- }
- @Override
- public void onChange(boolean selfChange) {
- boolean enableAdb = (Settings.Secure.getInt(mContentResolver,
- Settings.Secure.ADB_ENABLED, 0) > 0);
- // setting this secure property will start or stop adbd
- SystemProperties.set("persist.service.adb.enable", enableAdb ? "1" : "0");
- }
- }
在linux的启动配置文件init.rc中有这样的配置 - # adbd is controlled by the persist.service.adb.enable system property
- service adbd /sbin/adbd
- disabled
- # adbd on at boot in emulator
- on property:ro.kernel.qemu=1
- start adbd
- on property:persist.service.adb.enable=1
- start adbd
- on property:persist.service.adb.enable=0
- stop adbd
从这里我们可以看出来其实设定adb_enabled与否其实就是在控制是否启动adbd这个daemon。
- usb debugging的实现机制
- usb debugging的实现机制
- usb debugging的实现机制
- usb debugging的实现机制
- usb debugging的实现机制 转载
- USB热插拔机制实现
- usb热插拔实现机制
- USB debugging 菜单在哪里
- Android USB debugging 功能失效
- enable usb debugging by code
- USB系统的主从机制
- USB的插入检测机制
- Secure USB debugging in Android 4.2.2
- USB充电插拔与USB Debugging connect提示
- USB充电插拔和usb Debugging connect提示
- USB设备的插入检测机制
- usb总线枚举的实现
- Debugging
- 在用户态实现linux内核链表机制
- java的艰难怎么度过?
- ExtJS中子页面调用父页面元素有感
- AS使用Random函数创建随机数
- usb debugging的实现机制
- usb debugging的实现机制
- Android开发学习笔记-3 Activity-2 Activity和Intent关系
- 各家JDBC driver的现行版本及使用用法[转]
- DOS基础命令(二)
- u-boot移植到mini2440,u-boot版本2008.10
- 第一个Nginx filter模块
- Linux安装 oracle 11g r2
- Inside the C++ Object Model 学习笔记 第三章 Data语义学
- 09.框架的概念及用反射技术开发框架的原理.