Android系统设置Android adb 开关的方法【转】
本文转载自:http://www.wxtlife.com/2015/11/24/Android-set-adb-status/
想第一时间获取我的最新文章,请关注公众号: 技术特工队
在整机系统开发中,一般系统默认的adb开发是打开的,那么在对外发布的系统中,肯定是不希望默认打开adb的,但是在开发的过程中,肯定希望能够通过某种操作打开adb,便于调试,这就需要在系统的某个部位做一个开关了。那么这篇文章就是说说这边是如何做到在系统中增加一个adb开关。
- 在系统中有一个usb deubg的开关,此开关是打开usb调试的对adb 但是通过默认设置的开发者模式都可以将其打开。
- adb 启动肯定会启动了一个
adbd
服务,那么手动将该服务kill掉就可以关闭adb服务了.当然这样是在adbd启动后可以这么做,但是还是直接默认就不启动服务吧,需要的时候在打开吧。
- adb 启动肯定会启动了一个
开启adbd
服务实际是再系统启动中 init.rc
文件中启动的,里面有很很多部分有调用start adbd
或者restart adbd
这部分是Android启动流程中zygote(受精卵)启动的,这部分涉及整个安卓的启动流程,以及init.rc
文件的定义和使用大家可以查看网上资料。
首先要将所有系统中start adbd
和restart adbd
的部分将其注释掉,不使用系统默认启动方式。一般都是在init.rc
文件中,在使用find . -iname "init*.rc" | xargs grep "adbd"
将系统中所有有关adbd服务的都将其搜索出来,避免遗漏。
再开看看init.rc
文件中的adbd服务是怎么定义的:
1
2
3
4
5
6
|
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
socket adbd stream 660 system system
disabled
seclabel u:r:adbd:s0
|
实际上它是定义了一个sbin/adbd
文件为adbd服务,在init.rc
文件中定义服务,那我们就使用init.rc
文件中的触发器来控制adbd服务的打开与关闭。定义一个属性persist.sys.adbd.on
来标记adb的开关状态,定义触发器内容如下:
1
2
3
4
5
|
on property:persist.sys.adbd.on=1
start adbd
on property:persist.sys.adbd.on=0
stop adbd
|
看字面上的意思也可以大致看出来当property系统属性persist.sys.adbd.on
改变的时候在init.rc中能够收到改变的消息。且当属性值为1的时候,则会调用start adbd
,当为0的时候则会调用stop adbd
,因为adbd是一个服务,通过start和stop即可控制,这样通过程序中设置property属性即可切换adb的状态了。
大致的实现过程就是这样了,口才文采不行,表达不好,见谅。
这里面需要了解一些Android启动过程,以及init文件定义等。
提示:要设置系统属性需要系统权限才行,所以这种也只是自己开发系统应用才起作用。
关于权限相关的文章参考http://blog.csdn.net/a345017062/article/details/6254402
Android系统设置Android adb 开关的方法【转】的更多相关文章
- Android系统设置— android.provider.Settings
android.provider.Settings Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS); sta ...
- Android 网络调试 adb tcpip 开启方法
查看ip地址:adb shell ifconfig 1.连接USB数据线,打开usb调试,使用windows的“运行”命令行方式:(此方法需配置adb环境变量,也可直接进入adb工具目录执行\andr ...
- Android无法连接adb的解决方法
今天在折腾乐蛙时发现无法链接ADB了,但是手机却显示USB调试模式! 然后想起了大蛋曾经告诉我CM的解决方法,于是你懂得,俺差点就把菊花给卖了呢(/Д`)~゚。 adb shell rm -r /da ...
- Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...
- Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法:
Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法: 1. 基本作用: Activity的 onSaveInstan ...
- 【转】Android开发调试工具ADB的使用
原文网址:http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html ADB(Android Debug Bridge)是Android S ...
- Android 获取WIFI MAC地址的方法
1. 经常用法,调用Android的API:WifiManager <uses-permission android:name="android.permission.ACCESS_W ...
- android中获取root权限的方法以及原理(转)
一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...
- Android注入事件的三种方法比较
方法1:使用内部APIs 该方法和其他所有内部没有向外正式公布的APIs一样存在它自己的风险.原理是通过获得WindowManager的一个实例来访问injectKeyEvent/injectPoin ...
随机推荐
- 表单禁用复制、粘贴、及右击菜单(contextmenu、oncopy、oncut、onpaste、onselectstart)
禁用右键菜单,可以使用oncontextmenu属性: <textarea oncontextmenu="return false"></textarea> ...
- ios 处理内存警告
iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息.收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露 ...
- Angular 组件通讯、生命周期钩子 小结
本文为原创,转载请注明出处: cnzt 文章:cnzt-p http://www.cnblogs.com/zt-blog/p/7986858.html http://www.cnblogs ...
- ivy 入门
ivy 入门 http://www.blogjava.net/aoxj/archive/2009/03/31/263012.html https://www.cnblogs.com/end/archi ...
- 关于Memcached的CAS和Set方法造成Socket泄漏的问题
为了解决多并发下写Memcached的冲突方案,我们项目组引入了CAS机制.类同于Java并发包中的CAS(Compareand set)原子操作,用来处理同一个Item被多个线程更改的并发问题.Me ...
- 全文索引--自己定义chinese_lexer词典
本文来具体解释一下怎样自己定义chinese_lexer此法分析器的词典 初始化数据 create table test2 (str1 varchar2(2000),str2varchar2(2000 ...
- 浅谈xss原理
近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象.然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了. 能够说小菜也算懂了一些.不敢藏私, ...
- Distributed Management Task Force----分布式管理任务组
http://baike.baidu.com/link?url=Y9HGLs8Qj6pXbbgY6xPdfiGDsQO8Eu1e80B4giQtQ_hAfGNF59byxnLoERYri4Duw7Gw ...
- iOS Webview 与 app交互
有时候我们在内嵌的webview中希望点击一个链接之后,触发iOS原生事件,而不是webview内页面跳转(因为webview的跳转很生硬,而ajax+js模拟则不如原生segue平滑). 有时候我们 ...
- Jupyter notebook 使用Turorial
The cell magics in IPython http://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/note ...