Android中常⽤的adbshell命令
注意事项
这⾥写的命令,⽹页可能会重新编辑格式,⽐如我写了两个减号,发布后变成了⼀个减号;
如果这⾥的命令不能正确执⾏,请⼿动输⼊命令,切记切换英⽂状态。
android 常⽤shell命令记录下来备忘
\n 在shell命令中的作⽤是换⾏(⽽\r\n会将⼀个⼆进制⽂件格式从unicode变为混合格式)
& 可以⽤来连接多个命令
-help 可以快速知道⼀个命令怎么⽤的
⽐如adb -help 可以知道adb的⽤法
设置adb环境变量
其实就是将的路径放到Path中,⽬的是cmd直接可以使⽤adb命令
⽐如我的路径G:\tools\adt-bundle\sdk\
我的电脑》⾼级》设置》环境变量》Path》增加G:\tools\adt-bundle\sdk\platform-tools
(注意不要)
##检测环境变量
打开cmd窗⼝,输⼊adb看效果
如果出现⼀堆adb信息说明配置成功
如果出现'adb' is not recognized as an internal or external command
进⼊shell
adb shell
如果有多个设备怎么办?
adb devices查看你的设备;
adb -s xiaomi shell:-s命令表⽰选择设备,这⾥是选择xiaomi设备进shell
ls查看⽂件
ls -l /system/app/Demo.apk
rwxr-xr-x root    root        48550 2016-02-22 21:55 CertificateInstallerProviders.apk
Linux的⽂件基本上分为三个属性:可读®,可写(w),可执⾏(x)。
对rwxr-xr-x 的解读:
rwx(Owner)r-x(Group)r-x(Other)
这个例⼦表⽰的权限是:使⽤者⾃⼰可读,可写,可执⾏;同⼀组的⽤户可读,不可写,可执⾏;其它⽤户可读,不可写,可执⾏。命令中r=4,w=2,x=1,⽐如
chmod 644  system/app/Demo.apk命令执⾏以后,查看这个⽂件发现权限被修改了
ls -l /system/app/Demo.apk
-
rw-r--r-- root    root        48550 2016-02-22 21:55 Demo.apk(将这个apk放在了system下⾯,⽽且还让它具有root权限了)
ls -a 列出当前⽬录下的所有⽂件
##cd切换路径
cd /mnt/sdcard 切换到内存卡
mount挂载
mount -o remount,rw /system 将/system⽬录挂载,设置为可以读写
实例:
127|shell@android:/mnt/sdcard $ mount -o remount,rw /system
mount -o remount,rw /system
mount: Operation not permitted
grep命令查看进程
如果出现mount: Operation not permitted说明没有root权限
su获取ROOT权限
前提是你的⼿机已经root了
su命令表⽰切换ROOT⽤户下运⾏(就是说你有了root权限啦)
下⾯先获取root,获取root成功的时候$变成了#
255|shell@android:/mnt/sdcard $ su
su
root@android:/storage/sdcard0 # mount -o remount,rw /system
mount -o remount,rw /system
此时在执⾏挂载就可以成功
注意:$表⽰普通权限⽤户;#表⽰ROOT权限⽤户。
cp复制⽂件
cp -f /sdcard/SDKLongRrs.apk /system/app/SDKLongRrs.apk##
如果 cp: not found,说明该⼿机中cp命令不存在,换cat复制试试
127|root@android:/storage/sdcard0 # cat  /sdcard/SDKLongRrs.apk> /system/app/SDKLongRrs.apk
右箭头>指明拷贝的⽅向哈
获取md5值
md5 /system/app/SDKLongRrs.apk
获取⼀个⽬录下所有⽂件的md5
md5 /system/app/*
chmod修改⽂件权限
让apk变成可以安装的
chmod 644 /system/app/SDKLongRrs.apk
pm安装apk卸载应⽤
pm install -r /system/app/SDKLongRrs.apk
pm uninstall com.baidu.map.location
安装应⽤
adb install  C:\Users\Administrator\Desktop\Root.apk
这个将电脑桌⾯的Root.apk安装到⼿机上
有可能不成功,直接看信息,对照英⽂原因,⽐如⼩⽶的需要点击允许安装,在⽐如空间不⾜,在⽐如应⽤已经存在⼿机上。卸载应⽤
adb uninstall com.baidu.map.location
(你需要知道应⽤的包名哈、打开界⾯、执⾏如下操作就可以看到包名)
adb shell dumpsys window | grep mCurrentFocus
不⽤root⼿机也能够卸载系统应⽤
这⾥ --user 0就是以root⾝份去执⾏命令
adb shell pm uninstall -k --user 0 com.qihoo.browser
启动应⽤
(1)启动Activity
am start -leplayapp.storerootsuaction/.MainActivity( 你得知道对应的界⾯的Activity路径以及包名哈)
adb shell am start -st.provider/.MainActivity
(2)启动service
<service
android:name=".MyService"
android:description="@string/Desciption"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="service" />
</intent-filter>
</service>
adb shell am startservice service/.MyService
查看正在运⾏的 Services
adb shell dumpsys activity services [<packagename>]
包名是必须的、不需要写完整的包名、⽀持模糊匹配
例如adb shell dumpsys activity services ample
查看正在运⾏的 activity
adb shell dumpsys activity [<packagename>]
包名是必须的、不需要写完整的包名、⽀持模糊匹配
例如adb shell dumpsys activity ample
clear 清除应⽤数据
pm leplayapp.storerootsuaction
##cmd下直接使⽤adb shell命令
如果不进⼊shell的,如何执⾏以上命令
cmd下⾯直接使⽤adb shell 后⾯跟上对应的命令就好
⽐如清除应⽤数据
adb shell pm leplayapp.storerootsuaction
##电脑输⼊⽂字到⼿机
⽐如⼿机要上百度,⼿机打开浏览器,点击地址栏,输⼊法切换到英⽂,cmd命令
adb shell input text "www.baidu"
你会看到⼿机浏览器的⽹址变成百度了
⽂件传输
电脑复制⽂件到⼿机
⽅法1:cmd下⾯使⽤push命令
adb push "C:\Users\Administrator\Downloads\Root.apk" /mnt/sdcard/goodRoot/
将电脑下载⾥⾯的Root.apk复制到⼿机sdcard的goodRoot⽂件夹下⾯
⽅法2:直接使⽤eclipse⾥⾯的File Explorer(对android程序员⽽⾔的哈)
复制⼿机⽂件到电脑
adb pull  /l  C:\Users\linux\l
导出⼿机上的app到电脑上
如何导出 ⼀个apk?⾸先获取包名,然后到它在⼿机上的安装路径,接下来拉取到电脑上.⾸先adb shell dumpsys activity | findstr ResumedActivity获取包名,然后adb shell pm path 包名获取安装路径,接下来adb pull app-path pc-path导出到电脑上。举例⼦:
D:\Program Files\cmder_mini
λ adb shell dumpsys activity | findstr ResumedActivity
adb server version (39) doesn't match this client (41);
* daemon started successfully
mResumedActivity: ActivityRecord{fa0a1d4 u0 com.samsung.android.app.dressroom/.settings.MyWallpapersActivity t2352} ResumedActivity:ActivityRecord{fa0a1d4 u0 com.samsung.android.app.dressroom/.settings.MyWallpapersActivity t2352}
ResumedActivity: ActivityRecord{fa0a1d4 u0 com.samsung.android.app.dressroom/.settings.MyWallpapersActivity t2352}
D:\Program Files\cmder_mini
λ adb shell pm path com.samsung.android.app.dressroom
package:/system/priv-app/DressRoom/DressRoom.apk
D:\Program Files\cmder_mini
λ adb pull /system/priv-app/DressRoom/DressRoom.apk  C:\Users\Administrator\Downloads\DressRoom.apk
/system/priv-app/DressRoom/DressRoom.apk: 1file pulled, 0 skipped. 31.6 MB/s (7197293 bytes in0.217s)
快速获取⽂件路径
打开cmd,将⽂件拖进来,你就可以看到⽂件的路径哈
##eclipse中File Explorer的使⽤
⼿机调试模式连接电脑,使⽤File Explorer可以查看⼿机⽂件;
root以后的⼿机可以查看data下⾯的⽂件
如果已经root,但是data打不开,使⽤以下命令
cmd下⾯
adb shell
shell@android:/ $ su root
chmod -R 755 /data
(R必须⼤写,linux命令区分⼤⼩写的,cmd命令不区分⼤⼩写,shell命令是⼀种linux命令)
##rm 删除命令
rm -r  /mnt/sdcard/AppFolder/a.mp3  移除a.mp3⽂件
删除⽂件夹的时候需要加上-r参数
rm -r  /mnt/sdcard/AppFolder
关闭程序
adb shell am force-stop 包名
⼀次卸载多个应⽤
adb uninstall com.android.a
adb uninstall com.android.b
adb uninstall com.android.c
adb uninstall com.android.d
adb uninstall com.android.e
将这多条命令写成⼀个.bat⽂件,直接点击bat就可以卸载多个应⽤了。
reboot重启⼿机
adb reboot  重启
adb reboot recovery 重启进⼊recovery模式
cat查看⽂件
这个命令可以查看⽂件的内容
批量执⾏多条adb shell命令
adb命令带参数,cmd下⾯带上参数,先获取su,然后做其他事
演⽰在cmd下⾯可以直接使⽤su权限来删除/system/bin/testa⽂件和/system/xbin/testb
adb shell "su -c 'rm -r -f /system/bin/testa'"
adb shell "su -c 'rm -r -f /system/xbin/testb'"
如果是直接⼀条条执⾏shell命令将是下⾯的4条命令
adb shell
su
rm -r -f /system/bin/testa
rm -r -f /system/xbin/testb
如何批量执⾏多条命令呢
写⼀个.bat⽂件,⽂件内容如下:
adb shell "su -c 'rm -r -f /system/bin/testa'"
adb shell "su -c 'rm -r -f /system/xbin/testb'"
pause
busybox pkill -9 ⽗进程
ps
USER        PID    PPID  VSIZE  RSS    WCHAN    PC        NAME
u0_a145  10608 134  292960 26816 ffffffff 4019ca70 hre
u0_a146  10755 134  302420 32152 ffffffff 4019ca70 wo
使⽤kill -s 9 134,就可以⼲掉 PID =134. PID =10608. PID =10755三个进程
查看内存信息
看⼿机内存信息cat /proc/meminfo
查看应⽤的内存信息 dumpsys meminfo 应⽤包名
查看应⽤是否安装
查看应⽤的安装路径 pm path 应⽤包名
获取⼿机上已经安装的所有的程序 pm list packages
过滤grep 和findstr
在windows上直接使⽤findstr来过滤你想要的信息
adb shell ps|findstr baidu
这个命令出⼿机上正在运⾏并且这个名字包含baidu的进程
//下⾯的写法也对
adb shell ps baidu
adb shell ps|findstr -i baidu
对应的android或者linux中的shell命令是grep
ps|gerp  baidu
提⽰ :有的⼿机上没有grep命令,这时候可以采⽤findstr;或者往⼿机⾥放⼀个busybox⽂件,然后使⽤busybox grep命令,效果⼀样查看运⾏的程序
查看⼿机正在运⾏的程序 ps
查看⾃⼰的程序是否在运⾏ ps | grep 应⽤包名
如果没有grep命令,可以放置⼀个busybox⼯具到⼿机
查看360对应的程序是否在运⾏ ps | busybox grep m.qihoo*
删除多个⽂件
cd dir
rm * 删除dir中所有⽂件
adb获取⼿机参数
adb获取⼿机所有参数
adb shell getprop
adb获取iccid
service call iphonesubinfo 4(需要权限android.permission.READ_PHONE_STATE)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。