adb shell 是什么,如何进入

adb shell 是什么,如何进入,第1张

一,从 *** 作系统开始

windows、linux、Mac、ios、android、meego..

这个世界上有这么多 *** 作系统呀,看起来风格迥异,相差很多。

但其实它们之间的关系,没有那么远。

它们其实有一个共同的祖先:unix

。。。(中间省过10000字)

经过N多版本的进化,它们的原理并没有什么本质的区别,主要区别是内存的管理和人机交互方式。

二,什么是adb shell

上面的第一部分看起来与第二部分一点儿关系都没有。。。汗~

先说什么是shell, *** 作系统运行的本身其实并不需要人来控制。

但人需要告诉 *** 作系统做什么,这个交互程序,就被称为shell。

这里我把shell分成三种:

•图形shell:

这种shell有很多种,windows的Explorer.exe,Linux的Gnome/Kde ....

在windows看到的桌面,开始菜单,也是一种图形shell

终端Shell:

终端Shell除了windows下的cmd.exe已经弱化到残废的地步,其他的 *** 作系统都是比较强悍的

终端Shell最大的特点是字符 *** 作,没有图形,试想,如果你的 *** 作系统显卡驱动崩溃了,绘图功能不举了,这就是最后的稻草了。

事实上,几乎所有的显卡驱动都是在终端Shell下编写,然后用于绘制图形Shell....

特别是在linux\mac\android下面,终端Shell是灰常的强大的。

如:bash\zsh\....

•其他Shell:

还有很多,与本文无关,不讨论。

OK, 说到这儿,大家都应该明白了,adb shell ,其实就是连接到咱们的KF(android)的终端shell。举个例子,我们可以在RE管理器里把一个文件从/sdcard/ 复制到/sbin..

*** 作还是比较麻烦的,但在adb shell中可以这么做:

cp /sdcard/a.txt /sbin/

二,如何在windows下进入adb shell

这个小节真的不想写,因为windows下的终端Shell工具本身太残废了。。。

不过太多人使用windows了,无奈之中,好吧。。。

大家还记得一键Root的那个程序吧,其实看了本文之后,稍加研究,大家应该可以理解那个批处理中的所有命令。

OK,我们开始进入adb shell吧。。。

1. 进入windows的终端Shell:要进入KF的终端shell ,我们要从 *** 作系统的shell来连接。

从上一小节我们就知道了,linux/mac下用“终端”程序就好而windows, windows键+R , 然后输入 cmd 按回车,出来个小小窗口,黑黑的,这个可爱的窗口就是windows的Shell了。

2. 连接到KF的shell:这个步骤非常简单,直接进入到我们的adb.exe程序所在目录,执行adb shell就可以。

相信看了上面这句话,有人会迷失。。。说实际 *** 作吧:

在本帖附件下载那个adb.zip,解压到c盘的kf目录。然后在小黑窗口输入:

1.C:\Users\Tony>

1.c:>cd c:\kf

1.c:\cf>adb shell

1.* daemon not running. starting it now *

1.* daemon started successfully *

1.$

复制代码

三,如何在linux/mac下进入adb shell

把附件解压,如果你是Linux:

cp -r .android ~

./adb-linux shell

如果你是mac:

cp -r .android ~

./adb-mac shell

没错,就是这么简单,而且,无需安装任何驱动,也不会有任何问题。

OK,这样你就进入到KF的终端shell中了,本文就到这里了。

=================================================================

下面展示一下这个shell的一起 *** 作:

1.使用root用户,拥有最高权限:

1.su root

1.

1.让整个系统文件都可以有权限 *** 作:

1.mount -o remount,rw rootfs /system

1.

1.复制一个文件到另一个地方:

1.cp /xx/xx.xx /oo/

1.

1.删除一个文件:

1.delete /oo/xx.xx

1.

1.重启:

1.reboot

复制代码

一些连接问题:

(费话:windows这个坑爹的系统,问题多多,我不知道如果要把windows下全部的 *** 作写出来要多少字。。。)

为什么adb shell命令会返回error: device not found?

这个问题竟然是你的碗豆荚之类的软件给kindle安装的驱动导致的。

需要强制安装下载压缩包里usb_driver里带的驱动。

然后把附件压缩包里的.android 文件夹放到你的用户目录,如 C:\Users\Tony

第一步,要坚信,amazon的工程师面对一台成砖的机器,拥有的软件和工具基本上与我们拥有的相同,至少在修砖这个事情上是的,所以,请相信我们折腾出来的:无砖不能修。

第二步, 先下载一些可能需要的程序和包

1. 调试工具:

windows下: fastboot.exe adb.exe usb_driver

linux/mac: fastboot adb-linux/adb-mac

2. 系统的引导程序及强制提升权限的expolit

boot.img

updaterecovery.img

stockrecovery.img

zergRush

3. 一颗勇于学习和探索的心。

(上面所有的文件附件中会有打包下载,包括windows/linux/mac版)

第三步,分以下情况来 *** 作

1. 输入法安装失败的:(一直卡在开机LOGO无法进入系统)

1) 把KF连到电脑上, 装好驱动,确保adb shell可以使用

2) 临时再次提升权限后,修复settings.db的权限:

adb zergRush /data/local/tmp/.

adb shell "chmod 777 /data/local/tmp/zergRush"

adb shell "./data/local/tmp/zergRush"

adb wait-for-device

adb shell "chown system.sytem /data/data/com.android.providers.settings/databases/settings.db"

adb shell "chmod 660 /data/data/com.android.providers.settings/databases/settings.db"

adb reboot

3) 机器重启就会发现,一切OK了

2. 刷机过程出错之一:一直出现那个美丽的刷机菜单。

adb(Android Debug Bridge)是Android SDK中一个通用的调试工具。我们可以通过这个工具管理设备或手机模拟器的状态。adb其实是一个客户端-服务器端程序, 其中客户端是你用来 *** 作的电脑,服务器端是android设备。

adb可以进行的 *** 作包括:

1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

2、在设备上运行shell命令;

3、管理设备或手机模拟器上的预定端口;

4、在设备或手机模拟器上复制或粘贴文件。

adb的安装

电脑上需要安装客户端,设备上不需要安装,客户端包含在sdk里,只需要在手机上打开选项settings--applications--development--USBdebugging。

对于Mac和Linux用户,下载好的sdk解压后,可以放~或者任意目录。然后修改~/.bash_profile文件,设置运行环境指向sdk的tools目录。

具体是打开~/.bash_profile文件(如果没有此文件也可以自行添加),在里面加入一行:

export PATH=${PATH}:<你的sdk目录>/tools

然后就可以使用adb命令了。

嫌安装麻烦的同学其实也可以省去上面安装步骤,直接输入完整路径来使用命令。

对于windows xp用户,需要先安装usb驱动,然后如果你只打算使用adb而不想下载整个sdk的话,可以下载这个单独的adb工具包,下载后解压,把里面的adb.exe 和 AdbWinApi.dll 两个文件放到系统盘的windows/system32 文件夹里就可以了。

adb的常用命令

1、安装应用到模拟器:

adb install <path_to_apk></path_to_apk>

比较郁闷的是,Android并没有提供一个卸载应用的命令,只能自己手动删除:

adb shell

cd /data/app

rm app.apk

2、进入设备或模拟器的shell:

adb shell

通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:

adb shell [command]

如:adb shell dmesg会打印出内核的调试信息。

3、发布端口:

你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:

adb forward tcp:5555 tcp:8000

4、复制文件:

你可向一个设备或从一个设备中复制文件,复制一个文件或目录到设备或模拟器上:

adb push <source><destination></destination></source>

如:adb push test.txt /tmp/test.txt

从设备或模拟器上复制一个文件或目录:

adb pull <source><destination></destination></source>

如:adb pull /addroid/lib/libwebcore.so .

5、搜索模拟器/设备的实例:

取得当前运行的模拟器/设备的实例的列表及每个实例的状态:

adb devices

6、查看bug报告:

adb bugreport

7、记录无线通讯日志:

一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

adb shell

logcat -b radio

8、获取设备的ID和序列号:

adb get-product

adb get-serialno

9、访问数据库SQLite3

adb shell

sqlite3


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7321372.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存