Sino16918
首先介绍一下什么叫ADB命令:
ADB的全称为Android Debug Bridge,就是起到调试桥的作用。ADB是android sdk(Android专属的软件开发工具包)里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如DEFY). 它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至模拟器或android设备
写这个帖子就是为了普及一下ADB几个常用命令,虽然网上这东西很多,但是我想,跟DEFY结合起来使用,大家会记得更牢靠。
工欲善其事必先利其器,所以要使用ADB,就得先搭好平台。(有个机油说添加系统变量,我想,这个还是适合有一定基础的人用哦,在这里我就不说添加变量的方法了)。但是Androidsdk那么大……难道把它都下载下来?答案必须是否定的。不知道使用过defy教程给出的root工具的同学是否注意到,在defy_tools\OneClickRoot+Recovery文件夹下,有adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll三个文件,其实使用ADB命令,这三个文件就足矣,想必大家都有,所以这里就不提供了。
对于没有的,如果你安装的有豌豆荚,那么,请移步豌豆荚的根目录C:\Program Files\WandouJia,你会发现也有这三个文件。不难得出,ADB的运用是十分广泛的。无论从DEFY获取root权限到日常豌豆荚的使用,都离不开它。
当然,光有了这个还是不能直接使用的,我们要在电脑端装好对应的ADB驱动。刷过机的同学在安装摩托提供的驱动的时候其实已经装好的,如果没有的,自己去找,或者用豌豆荚直接连接手机装驱动即可。确保驱动装好的方法是将手机【设置】-【程序】-【安装和调试】-USB调试开,在开机状态链接至电脑后右键单击计算机(XP中是我的电脑)进入管理-设备管理器,看到下图所示即可。
下面进入正题。如何才能进入ADB命令窗口呢?最为简单的方法就是,在adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll三个文件所在的窗口内,同时按住【shift】+【鼠标右键】,选择【在此处打开命令窗口】。如图
当然,也可以在命令提示符窗口(cmd.exe)下进入。按住【徽标键】+【R】打开运行,输入cmd,
然后输入:cd C:\Program Files(x86)\WandouJia(或是其他包含三个文件的目录),如下图(注意cd与路径之间有空格,我的系统为64位,所以豌豆荚默认安装在C:\Program Files (x86)文件夹下,32位系统默认是C:\Program Files目录)。
进入该窗口以后,即可使用一下提供的各种命令。当然,如果你不知道都有什么命令,可以打一行
1. adb ?
就会打印出所有可用的命令供参考。
以下是所有可用的ADB命令:
Android DebugBridge version 1.0.20
-d
- directs command to the only connected USB device
returns an error if more than one USB device is
present.
-e
- directs command to theonly running emulator.returns an error if more than one emulator is running.
-s <serialnumber> –directs command to the USB device or emulator withthe given serial number
-p <product name or path> – simple product namelike ’sooner’, or
a relative/absolute pathto a product
out directory like ‘out/target/product/sooner’.
If -p is not specified, the ANDROID_PRODUCT_OUT
environment variable is used, which must
be an absolute path.
devices
– list all connecteddevices
device commands:
adb push <local> <remote> – copy file/dir todevice
adb pull <remote> <local> – copy file/dir fromdevice
adb sync [ <directory> ] – copy host->deviceonly if changed
(see ‘adb help all’)
adbshell – run remote shell interactively
adb shell <command> – run remote shell command
adb emu<command> – run emulator console command
adb logcat [ <filter-spec> ] – View device log
adb forward <local> <remote> – forward socket connections
forward specs are one of:
tcp:<port>
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
adb jdwp
– list PIDs of processes hosting a JDWP transport
adb install [-l] [-r] <file> – push this package file to the device and installit
(‘-l’ means forward-lock the app)
(‘-r’ means reinstall the app, keeping its data)
adb uninstall [-k] <package> – remove this app package from the device
(‘-k’ means keep the data and cache directories)
adbbugreport – return all information from the device
that should be included in a bug report.
adbhelp – show this help message
adbversion – show version num
DATAOPTS:
(nooption) – don’t touch the data partition
-w – wipe the data partition
-d – flash the data partition
scripting:
adb wait-for-device –block until device is online
adbstart-server – ensure that there is a server running
adb kill-server – kill the server if it is running
adbget-state – prints: offline | bootloader | device
adbget-serialno – prints: <serial-number>
adbstatus-window – continuously print device status for a specified device
adbremount – remounts the /system partition on the device re
ad-write
adbroot – restarts adb with root permissions
networking:
adb ppp <tty> [parameters] – Run PPP over USB.
Note: you should not automatically start a PDP connection.
<tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
[parameters] – Eg. defaultroute debug dump local notty usepeerdns
adb sync notes: adb sync [ <directory> ]
<localdir> can be interpreted in several ways:
- If <directory> is not specified, both /system and /data partitions willbe updated.
- If it is “system” or “data”
, only the corresponding partition
is updated
第一课就此结束,在以后的课程中,会尝试使用ADB命令,解决一些实际的问题~
Sino16918
第一课,说了如何配置简单的ADB环境以及如何进入ADB环境,并列举了所有可用的命令,本节课,打算说下最基本的如何验证设备是否正确链接,以及如何使用reboot命令重启设备。
首先进入【设置】-【程序】-【安装和调试】-USB调试开,然后将手机连接至电脑。这点至关重要,否则ADB无法识别。上节课中在设备管理器中查看驱动是否安装正确是一种方法,其实使用ADB时候可以直接利用命令来查看设备是否链接好,以确保便于其他命令的操作。进入ADB环境后,输入
1. adb devices
即可当前所有链接的设备,如图,只插着一台DEFY,所以只显示了一个设备。
如果此处显示如下图,则说明你的手机未正确链接,或者驱动没有装好,或者USB借口松动等原因,重新检查前面的步骤,链接正确即可。
手机连上了我们能做些什么呢,当然,要从最简单的开始说。当你的手机突然死机了,我想大部分人都会选择抠电池来重启手机,但是这样子对手机好不好呢?这个我也不清楚,但是拿电脑来类比下,就觉得应该是有害而无利的。所以adb的reboot命令此时就发挥效力了。
当你手机死机了,恰好后盖又是那种不太容易抠开的,而身边恰好又有一台有ADB环境的电脑的时候,把手机链接电脑(当然,是在打开了USB调试的前提下)。按照之前的方法进入ADB命令窗口,输入
1. adb reboot
死了的机子就会立马快速重启,恢复生机。如图
本节课说的东西比较少,下次会说一些更实用的。
为方便看不懂此系列课程的机油方便的解决密码遗忘的问题,特奉上【解答组】御法度(Tony)出品的密码移除工具,使用方法见包内说明文档。在法度兄指导下经鄙人修改后,本工具同样适用于bootmenu模式。本工具仅供应急使用,不可用来偷窥他人隐私等从事其他违法背德行径。此工具经本人测试可以使用,如有问题请及时联系作者或本人,一经使用,则表示同意本声明。对于使用本工具操作不当造成的损失,作者及本人不承担任何责任,特此声明!(用过工具的可以来说下效果)
小工具下载地址:小工具暂停下载
大家还是自己看着弄吧
Sino16918
在论坛里常常碰到求助的,说访问限制的密码忘记了,或者是锁屏密码忘记了,导致有些程序(如短信,通讯录等重要程序)打不开,影响正常使用。又嫌麻烦,不愿意刷机。是不是就没有办法解决了呢?答案也是否定的。别忘了,ADB还有个shell命令呢。(本教程针对DEFY机型,其他
机型方法类似,但个别地方有细微变动,恕不细说)
首先介绍下什么是shell。
Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
而本节课要说的内容,恰好跟adb shell命令有关。
首先我们要知道的是,MIUI的访问限制的密码是图形密码,它储存在根目录的/data/system路径下,名字为access_control.key如下图
当你忘记密码的时候,首先想到的是进入RE管理器删除该文件,但是假如RE管理也被访问限制了呢?此时ADB命令就又大显神威了。
将手机链接至电脑,熟悉的进入ADB命令行界面,只需输入
1. adb shell rm /data/system/access_control.key
密码什么的顿时被搞定,重新去试试被限制的程序,可以打开了吧?再去看看访问限制的菜单,发现已经自动停用了~!
同理,锁屏密码也是位于该目录下
假如是在屏幕未锁定的情况下忘记了锁屏的密码,赶紧在屏幕锁住之前到RE管理器的/data/system/下找到gesture.key(图形密码)或者password.key(数字及密码),删除之。假如是一不小心在锁屏的状态下忘记了密码,可以将手机连接至电脑,进入ADB执行
1. adb shell rm /data/system/gesture.key
可以删除锁屏图形密码;
执行
1. adb shell rm /data/system/password.key
可以删除锁屏数字密码两种加密方式
开屏,是不是不需要输入密码了呢?再看设置菜单里,密码已经被重置为无。
我觉得这是ADB命令里最有用的一个地方了。
当然,以上都是建立在USB调试模式开启的状况下。如果你悲剧的没有开启,如下图所示
那么可以通过其他途径删除密码。
重启手机,亮蓝灯的时候按音量下进入【bootmenu】菜单,选择【Tools】
将手机连接至电脑,然后选择【ADB Daemon】开启adb
可以发现手机已经链接,此时就可以通过adb shell命令来删除密码了
按照课程一给出的方法,进入ADB环境,
依次输入
1
. adb shell
2. mount /data/
3. rm /data/system/access_control.key
4. reboot
当然,以上是进入shell里完成的,也可以逐条执行,效果是一样的
1. adb shell mount /data/
2. adb shell rm /data/system/access_control.key
3. adb reboot
同理锁屏密码(图形、数字字母密码)也可以通过此方法删除,只不过是将access_control.key换成gesture.key或者password.key罢了。小米机型需要注意的是,在使用shell命令前,请先输入adb root ,取得root权限(多谢java豆子)
当然删除密码的途径不只此一种,如果你手机端安装的有终端模拟器,那就更方便了,无论你是否开启了调试模式,只要赋予终端模拟器root权限,然后输入
1. su
2. rm /data/system/access_control.key
即可快速删除访问限制密码,锁屏密码同理。
本课多谢御法度、郁闷得撞墙、团支书以及7楼的兄弟指点,希望对广大机油有帮助!请勿将本课程知识用来窥探他人隐私等其他违法背德行径!转帖请标明出自MIUI社区,并附上本帖连接。