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进⼊shelladb shell
如果有多个设备怎么办?
adb devices查看你的设备;
adb -s xiaomi shell:-s命令表⽰选择设备,这⾥是选择xiaomi设备进shellls查看⽂件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/安装apk卸载应⽤pm install -r /system/app/
pm uninstall oncmd安装apk卸载应⽤adb install C:
这个将电脑桌⾯的安装到⼿机上
有可能不成功,直接看信息,对照英⽂找原因,⽐如⼩⽶的需要点击允许安装,在⽐如空间不⾜,在⽐如应⽤已经存在⼿机上adb uninstall on(你需要知道应⽤的包名哈)启动应⽤(1)启动Activity
am start -n ootsuaction/.MainActivity( 你得知道对应的界⾯的Activity路径以及包名哈)1adb shell am start -n er/.MainActivity2(2)启动service123456789
adb shell am startservice ice/.MyService查看正在运⾏的 Services123adb shell dumpsys activity services [
cmd下⾯直接使⽤adb shell 后⾯跟上对应的命令就好
⽐如清除应⽤数据
adb shell pm clear ootsuaction电脑输⼊⽂字到⼿机⽐如⼿机要上百度,⼿机打开浏览器,点击地址栏,输⼊法切换到英⽂,cmd命令1adb shell input text ""你会看到⼿机浏览器的⽹址变成百度了⽂件传输电脑复制⽂件到⼿机
⽅法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命令)
rm 删除命令rm -r /mnt/sdcard/AppFolder/3 移除3⽂件
删除⽂件夹的时候需要加上-r参数
rm -r /mnt/sdcard/AppFolder关闭程序adb shell am force-stop 包名⼀次卸载多个应⽤12345adb uninstall uninstall uninstall uninstall uninstall d.e将这多条命令写成⼀个.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/mapskill ⼲掉进程查看内存信息看⼿机内存信息cat /proc/meminfo
查看应⽤的内存信息 dumpsys meminfo 应⽤包名查看应⽤是否安装查看应⽤的安装路径 pm path 应⽤包名
获取⼿机上已经安装的所有的程序 pm list packages过滤grep 和findstr引⽤块内容在windows上直接使⽤findstr来过滤你想要的信息1adb shell ps|findstr baidu这个命令找出⼿机上正在运⾏并且这个名字包含baidu的进程123//下⾯的写法也对adb shell ps baiduadb shell ps|findstr -i baidu引⽤块内容对应的android或者linux中的shell命令是grep1ps|gerp baidu引⽤块内容提⽰ :有的⼿机上没有grep命令,这时候可以采⽤findstr;或者往⼿机⾥放⼀个busybox⽂件,然后使⽤busybox grep命令,效果⼀样查看运⾏的程序查看⼿机正在运⾏的程序 ps
查看⾃⼰的程序是否在运⾏ ps | grep 应⽤包名
如果没有grep命令,可以放置⼀个busybox⼯具到⼿机
查看360对应的程序是否在运⾏ ps | busybox grep *删除多个⽂件cd dir
rm * 删除dir中所有⽂件adb获取⼿机参数使⽤”读取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/命令得到以下数据123
显⽰正监听的端⼝: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:0000 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/1688593775a153185.html
评论列表(0条)