安卓shell命令

安卓shell命令

2023年7月6日发(作者:)

Android中常用shell命令详解

设置adb环境变量

其实就是将的路径放到Path中,目的是cmd直接可以使用adb命令

比如我的路径G:

我的电脑》高级》设置》环境变量》Path》增加G:toolsadt-bundlesdkplatform-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/

rwxr-xr-x root root 48550 2016-02-22 21:55

Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。

对rwxr-xr-x 的解读:

rwx(Owner)r-x(Group)r-x(Other)

这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。

命令中r=4,w=2,x=1,比如

chmod 644 system/app/命令执行以后,查看这个文件发现权限被修改了

ls -l /system/app/

-rw-r–r– root root 48550 2016-02-22 21:55 (将这个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

如果出现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/ /system/app/##

如果 cp: not found,说明该手机中cp命令不存在,换cat复制试试 127|root@android:/storage/sdcard0 # cat /sdcard/> /system/app/

> /system/app/ <

右箭头>指明拷贝的方向哈

获取md5值

md5 /system/app/

获取一个目录下所有文件的md5

md5 /system/app/*

chmod修改文件权限

让apk变成可以安装的

chmod 644 /system/app/

pm安装apk卸载应用

pm install -r /system/app/

pm uninstall on

cmd安装apk卸载应用

adb install C:

这个将电脑桌面的安装到手机上 有可能不成功,直接看信息,对照英文找原因,比如小米的需要点击允许安装,在比如空间不足,在比如应用已经存在手机上

adb uninstall on(你需要知道应用的包名哈)

启动应用

(1)启动Activity

am start -n ootsuaction/.MainActivity( 你得知道对应的界面的Activity路径以及包名哈)

adb shell am start -n er/.MainActivity

1

2

(2)启动service

1.

2. android:name=".MyService"

3. android:description="@string/Desciption"

4. android:enabled="true"

5. android:exported="true">

6.

7.

8.

9.

1

2

3

4

5

6

7

8

9 adb shell am startservice ice/.MyService

查看正在运行的 Services

1. adb shell dumpsys activity services []

2. 包名是必须的、不需要写完整的包名、支持模糊匹配

3. 例如adb shell dumpsys activity services e

1

2

3

查看正在运行的 activity

1. adb shell dumpsys activity []

2. 包名是必须的、不需要写完整的包名、支持模糊匹配

3. 例如adb shell dumpsys activity e

1

2

3

clear 清除应用数据

pm clear ootsuaction

cmd下直接使用adb shell命令

如果不进入shell的,如何执行以上命令

cmd下面直接使用adb shell 后面跟上对应的命令就好

比如清除应用数据

adb shell pm clear ootsuaction 电脑输入文字到手机

比如手机要上百度,手机打开浏览器,点击地址栏,输入法切换到英文,cmd命令

adb shell input text ""

1

你会看到手机浏览器的网址变成百度了

文件传输

电脑复制文件到手机

方法1:cmd下面使用push命令

adb push “C:” /mnt/sdcard/goodRoot/

将电脑下载里面的复制到手机sdcard的goodRoot文件夹下面

方法2:直接使用eclipse里面的File Explorer(对android程序员而言的哈)

复制手机文件到电脑

adb pull /sdcard/ C:

快速获取文件路径

打开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命令)

点击这里查看chmod 755的含义

rm 删除命令

rm -r /mnt/sdcard/AppFolder/3 移除3文件

删除文件夹的时候需要加上-r参数

rm -r /mnt/sdcard/AppFolder

关闭程序

adb shell am force-stop 包名

一次卸载多个应用

1. adb uninstall d.a

2. adb uninstall d.b 3. adb uninstall d.c

4. adb uninstall d.d

5. adb uninstall d.e

1

2

3

4

5

将这多条命令写成一个.bat文件,直接点击bat就可以卸载多个应用了。

reboot重启手机

adb reboot 重启

adb reboot recovery 重启进入recovery模式

cat查看文件

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

保存为bat文件,直接点击执行.(windows系统下)。

(pause表示不关闭cmd窗口,这样就可以看到执行的结果了)

查看进程加载的库

可以根据进程id,查看进程加载了哪些库,cat /proc/pid/maps

kill 干掉进程

adb shell am force-stop

作用:强制关闭一个应用程序

举例:adb shell am force-stop

adb shell am force-stop比使用 kill -9 要方便

参考/s/blog_

ps可以查看到进程的pid

kill -s 9 pid干掉指定pid的进程 批量干掉进程

busybox pkill -9 父进程

ps

USER PID PPID VSIZE RSS WCHAN PC NAME

u0_a145 10608 134 292960 26816 ffffffff 4019ca70 S

u0_a146 10755 134 302420 32152 ffffffff 4019ca70 S

使用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

1 这个命令找出手机上正在运行并且这个名字包含baidu的进程

1. //下面的写法也对

2. adb shell ps baidu

3. adb shell ps|findstr -i baidu

1

2

3

引用块内容

对应的android或者linux中的shell命令是grep

ps|gerp baidu

1

引用块内容

提示 :有的手机上没有grep命令,这时候可以采用findstr;或者往手机里放一个busybox文件,然后使用busybox grep命令,效果一样

查看运行的程序

查看手机正在运行的程序 ps

查看自己的程序是否在运行 ps | grep 应用包名

如果没有grep命令,可以放置一个busybox工具到手机

查看360对应的程序是否在运行 ps | busybox grep *

删除多个文件

cd dir

rm * 删除dir中所有文件 adb获取手机参数

adb获取手机所有参数参考这个

adb shell getprop

adb获取iccid

service call iphonesubinfo 4(需要权限_PHONE_STATE)

adb获取imei

adb -d shell dumpsys iphonesubinfo

adb获取androidid

androidid藏在这里[me]: [android-b33f3ac550112627]

命令:getprop me

adb获取serialno

命令:getprop no或者getprop no

adb获取imei

service call iphonesubinfo 1

更多信息参考这个

/questions/27002663/adb-shell-dumpsys-iphonesubinfo-not-working-since-android-5-0-lollipop

使用”读取proc的方式”获取正在运行的进程 // 1,遍历”/proc”文件夹下面的文件夹,其中有些”文件夹名称”就是进程id(PID)

ls /proc

// 2,cat命令获取对应进程的名字(cat /proc/PID/cmdline)

cat /proc/1/cmdline 得到结果/init

查看进程具体的信息

(实例:12073是要查看的进程的PID)

cat /proc/12073/maps 查看进程的文件结构

cat /proc/12073/status 查看进程的状态

通过文件查看app安装信息

在/data/system/文件中,找到你应用相关内容

我在小米上使用cat /data/system/命令得到以下数据

1.

2. .....

3.

1

2

3

显然name就是包名,codePath就是安装的路径 使用shell启动和终止模拟器

adb shell stop//停止

adb shell start//启动

多设备选择

adb devices//显示处于调式模式的devices

adb -s emulator-5554 shell//表示选择5554模拟器的进入shell

x的安装

查看进程优先级

假设要查看程序.a的进程优先级

adb shell(进入shell)

ps|grep .a(列出这个进程)

u0_a37 28155 164 909516 36900 ffffffff b75baa27 S .a

1

cat /proc/28155/oom_adj(获取这个进程的adj值)

adj值则在ProcessList中定义,adj的取值范围[-17,16],取值越大说明优先级越低。adj取值说明参考这里 dumpsys 查看内存,cpu,电量信息

1)查看所有内存信息

命令:dumpsys meminfo

2)查看某个包的内存信息

命令:dumpsys pkg_name

3)查看CPU信息

命令:adb shell dumpsys cpuinfo

4)查看电量信息

命令:dumpsys battery

参考这里:Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息

findstr 和grep过滤搜索

1)cmd下搜索包名为的进程

adb shell ps|findstr /i “”

2)shell下面搜索

先使用adb shell进去,然后使用grep命令过滤

ps|grep “”

查看最上层成activity名字

adb shell dumpsys activity | findstr "mFocusedActivity"

1 查看最上层窗口信息

adb shell dumpsys window windows | findstr mCurrent

1

修改host翻墙

1,电脑下载一个android版本的hosts,地址/hosts/

2,将hosts放入手机中

1. adb push C:UsersAdministratorDownloadsAndroid安卓跟Linux系列hosts /data/local/tmp/

2. 3138 KB/s (154351 bytes in 0.048s)

1

2

3,修改hosts文件(需要root权限)

1. C:UsersAdministrator>adb shell

2. shell@android:/ $ su

3. su

4. shell@android:/ # mount -o remount,rw /system

5. mount -o remount,rw /system

6. shell@android:/ # cat /data/local/tmp/hosts>/system/etc/hosts

7. cat /data/local/tmp/hosts>/system/etc/hosts

8. shell@android:/ # ls -l /system/etc/hosts

9. ls -l /system/etc/hosts

10.

11.

-rw-r--r-- root root 154351 2016-09-28 17:53 hosts

shell@android:/ #

1

2

3

4

5 

6

7

8

9

10

11

修改完毕,手机随便连接一个wifi或者打开数据流量就可以上google和facebook等等网站了。

查看端口

显示已连接的端口:netstat -ntup

显示正监听的端口:netstat -ntupl

查询端口进程应关系cat /proc/net/tcp6

如果查询14752端口被那个进程占用?

(1)16进制39A0=10进制14752;

(2)39A0对应的进程ID(也叫uid)是10096

sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode

0: 00000000:39A0 00000000:0000 0A 00000000:00000000 00:00000000 00000000 10096 0 8887 1 00000000 100 0 0 2 -1

(3)使用ps命令

在android中,uid大于10000的是应用程序创建的用户。 ps的第一列是uid,大于10000的uid会以u0_a开头,10096 显示为u0_a96,最后一列就是进程名。

adb发送广播

adb shell am broadcast -n /.MyBroadcast

adb shell am broadcast -a “MyBroadcastAction”

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688592076a153115.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信