adb常用命令详解
2016-10-27 17:53
253 查看
自己在学习adb的时候,对adb的一些整理。
注意:
最好在高版本模拟器上,低版本模拟器不支持部分命令。
各手机之间或许会稍有不同。
1.window命令行下的adb 指令
a.查看链接终端设备: adb devices
b.进入设备终端:adb -s 设备号 shell
adb -s emulator-5554 shell-----进入emulator-5554模拟器注意:只要有多台设备,只要执行adb ,那么adb后一定跟 :-s 设备
c.往手机存放文件 adb [-s 设备号] push pc文件路径 手机path
adb -s emulator-5554 push e:\asm.jar /data/local/tmp-----将e盘下asm.jar存放到emulator-5554下的/data/local/tmp目录下(如果需要重命名那么:/data/local/tmp/asm2.jar)。如果目的目录已有文件,那么覆盖。
d.从手机取文件存放到电脑: adb [-s 设备号] pull phone文件路径 pc_path
adb -s emulator-5554 pull /data/local/tmp/asm2.jar e:\asm3.jar------将emulator-5554模拟器下的/data/local/tmp/asm2.jar文件存放到e盘,并重命名为asm3.jar,如果不想重命名保持原名e:\asm2.jar或者只写目录e:\
。如果目的目录已有文件,那么覆盖。
e.安装应用:adb install[ -r 重新安装并保留原数据][-f 安装到手机内存 /data目录][-s 安装到sdcard /sdcard目录] apk 路径 ;
adb -s emulator-5554 install -f e:\2048.apk-------将e盘下2048.apk安装到模拟器emulator-5554下的/data/app下(-f指定安装到/data/app下),该目录代表用户程序。需要说明的是:在安装过程中,系统会首先将2048.apk先拷贝到/data/local/tmp下,拷贝完成自动安装,安装会把2048.apk从/data/local/tmp拷贝到/data/app下,安装完毕/data/local/tmp下2048.apk会自动删除。
adb -s emulator-5556 install -s e:\MyTest.apk -------将e盘下MyTest.apk安装到emulator-5556下的/mnt/asec目录下(-s指定安装到/mnt/asec下),该目录也带表用户程序。需要说明的是:在安装过程中,系统会首先将MyTest.apk拷贝到/mnt/sdcard/tmp下,拷贝完毕后自动安装,安装会把/mnt/sdcard/tmp下MyTest.spk拷贝到/mnt/asec下,安装完毕,/mnt/sdcard/tmp下MyTest.apk会自动删除。
adb -s emulator-5556 install -r -s e:\MyTest.apk-------------在这里-r,表示,如果已经安装过该apk那么就重新安装一次,并保留原数据
卸载应用:adb uninstall packname
adb -s emulator-5554 uninstall com.example.test------MyTest.apk安装后,包名是com.example.test,在卸载的时候直接卸载包名。不需要指定包所在路径。不要把包名和apk名搞混。如果有多个模拟器需要指定哪个模拟器。
pm命令:在window命令行下使用adb,但是用adb进入设备(模拟器或手机)后使用的是pm:进入的是哪个设备,pm就操作的哪个设备,因此在pm下不用指定设备。
pm卸载应用:pm uninstall -k packname
pm uninstall -k tiny.com.puzzle.number 卸载pm所在手机或模拟器的tiny.com.puzzle.number 不论是在/mnt/asec还是/data/app 都可以直接卸载,不用指定tiny.com.puzzle.number的路径。-k 表示保留该应用的一些数据文件和缓存文件
pm只安装用户应用:pm install -r -f -s 手机文件路径; -r重新安装保留原数据, -f安装到手机内部,-s安装到sd卡
有apk放于:/data/local/tmp/MyTest.apk,那么可以利用pm安装该apk
pm install /data/local/tmp/MyTest.apk 默认安装到/data/app/目录下
pm查看packname的apk安装路径:pm path packname
pm path com.example.test 显示:/data/app/com.example.test-2.apk
f.冻结应用,开机启动项
组件:包名/主Activity的全名,如:com.example.test/com.example.test.MainActivity
冻结:pm disable packname | 组件
你想禁止开机启动项,可以把应用给disable
pm disable com.example.test 命令执行后,无法启动MyTest这个应用了。点击启动时,会提示这个应用没有安装到手机上,或跟本没有这个应用的图标了。
解冻:pm enable packanme | 组件
pm enable com.example.test 命令执行后,可以自动MyTest这个应用了,该应用的图标显示
清除数据:pm clear packname;
pm.clear com.example.test 清除应用的缓存数据 需要注意的是:低版本的模拟器可能不支持该命令,你需要直接输入pm,查看下该模拟器版本pm都有什么命令
g.启动应用
adb shell am start -n 组件名*************************************校验失败
h.monkey测试:monkey -v -p packname 点击数
window命令行下:adb -s emulator-5556 monkey -v -p com.example.test 500
指定模拟器 猴子测试 被测的应用的包名 测试多少次
shell下:monkey -v -p com.example.test 500
i.端口转发forward
adb forward tcp:1100 tcp:1200
j.重启手机:adb reboot
k.关机 :adb shell half
l.重启到恢复模式:adb reboot recovery
m.重启引导模式:adb reboot bootloader
n.ctrl+c 退出设备回到window下命令行)
o.进入手机时,需要按输入su进入root权限
p.获取手机详细参数:adb -s 设备号 shell getprop 获取手机参数
2.linux 指令,也就是用adb shell进入设备后的操作指令
--.pm setInstallLocation 0 1 2 设置应用安装的默认目录 0 auto 1 手机内存 2 sdcard
--.pm getInstallLocation 查看应用安装的默认目录
--.getprop 获取手机参数
--.cat /proc/cpuinfo 获取手机cpu信息
--.ls 列出目下所有文件 -l 详细信息 *
ls 列出当前目录下所有文件和文件夹
ls -l 列出当前目录下所有问价和文件夹的详细信息 ,包括:文件权限,用户组,日期,文件名
--.df 查看磁盘空间
df path:后面跟路径:如df /data/app 表示查看/data/app的磁盘空间,
df:后面可以什么都不跟,直接df 表示查看所有的磁盘空间
--.md5sum 获取文件md5码 md5sum /system/app/1.apk****************************校验失败
--.halt 关机 不是所有手机都有此指令**************************校验失败
--.reboot 重启手机
--.id 获取当前用户信息,获取uid 和gid
--:使用模拟器时:uid=0(root) gid=0(root)
--.gzip ,压缩成包
--.gzip /data/local/tmp/test1.apk 结果:test1.apk.gz
--.ungzip ****************************************校验失败
--.mount 查看磁盘信息
--.mv 移动文件,重命名文件 mv /data/local/tmp/1.apk /data/local/tmp/2.apk
--.rm 删除文件 rm -r 删除文件夹
删除文件:rm /data/data/com.example.test/files/private.txt
删除文件夹:rm -r /data/data/com.example.test/files
--.mount -o remountn rw /system 挂载/system为可读可写
解释:如果直接去chmod 777 system ,那么会提示system :Read-only file system
这时就需要用到mount,将system修改为可读写的,也就是修改其权限:mount -o remount rw /system ,可以对system文件进行读写操作。
这时 再chmod 777 system 就不会报错 就会把system的权限修改为 -rwxrwxrwx
--.mkdir 创建文件夹 创建多级文件 mkdir -p path
mkdir /data/local/tmp2
mkdir /sdcard/nihao
--.echo "11" > /sdcard/a.txt;创建文件a.txt 并写入 “11”
echo "fdsfsfsf" > /data/local/tmp2/a.txt 创建文件a.txt 并写入“fdsfsfsf”
echo "sssssssssss" > /data/local/tmp2/a.txt 若文件已存在,则会覆盖原有的内容
--.cat path 查看文件内容;
cat /data/local/tmp2/a.txt 显示:ssssssssss 也就是a.txt里面的文本内容。不能查看目录,只能查看文件的内容
--.cat 文件1 > 文件2 将 文件1复制一份到文件2 中
cat /data/local/tmp2/a.txt > /data/local/tmp2/b.txt 将a.txt中内容复制到b.txt中,若b.txt不存在就创建,存在就覆盖。不能赋值目录,只针对文件
--.cp path1 path2 复制文件
cp /data/local/tmp2/a.txt /data/local/tmp2/ccc.txt
--.touch "filepath" 创建空文件
touch /data/local/tmp2/d.txt 在/data/local/tmp2/目录下创建一个空文件
--.chmod 777 filepath ;修改文件或文件夹的读写权限。(修改文件夹的时候,文件夹前面不能有“/”)
文件权限的十位解释:
第一位:d代表目录,-代表文件,l代表快捷方式
2-4位:代表该文件内部。权限值1,为三位之和,r=4 w=2 x=1 -=0 权限值=r+w+x
第二位(4):r代表该文件内可读,-代表该文件内不可读
第三位(2):w代表该文件内可写,-代表该文件内不可写
第四位(1):x代表该文件可执行,-代表该文件内不可执行
5-7位:代表同组内。权限值2,为三位之和,r=4 w=2 x=1 -=0 权限值=r+w+x
第五位(4):r代表同组内对该文件可读,-代表同组内对该文件不可读
第六位(2):w代表同组内对该文件可写,-代表同组内对该文件不可写
第七位(1):x代表同组内对该文件可执行,-代表同组内对该文件不可执行
8-10位:代表不同组。权限值3,为三位之和,r=4 w=2 x=1 -=0 权限值=r+w+x
第八位(4);r代表不同组内对该文件可读,-代表不同组内对该文件不可读
第九位(2);w代表不同组内对该文件可写,-代表不同组内对该文件不可写
第十位(1);x代表不同组内对该文件可执行,-代表不同组内对该文件不可执行
三组权限值的并列,即为该文件的权限值:权限值1权限值2权限值3
现有文件权限
-rw-rw---- private.txt
-rw-rw-r-- readable.txt
-rw-rw-rw- rw.txt
-rw-rw--w- writeable.txt
命令:chmod 777 private.txt
结果:-rwxrwxrwx private.txt
解释:777=-权限值1(7)权限值2(7)权限值3(7)=(4+2+1)(4+2+1)(4+2+1)=(r w x)(r w x)(r w x)=-rwxrwxrwx
chmod 426 private.txt
-r---w-rw- private.txt
解释:426=-权限值1(4)权限值2(2)权限值3(6)=(4+0+0)(0+2+0)(4+2+0)=(r - -)(- w -)(r w -)=-r---w-rw-
--.chown 0.0 filepath 赋所属用户及用户组,也就是修改用户组
文件权限 用户组 ........ 文件名
-rw-rw---- u0_a49 u0_a49 private.txt
-rw-rw-r-- u0_a49 u0_a49 readable.txt
-rw-rw-rw- u0_a49 u0_a49 rw.txt
-rw-rw--w- u0_a49 u0_a49 writeable.txt
组分类: 权限值
app 10000+ 比如10023 表示为u0_a23 10049 --u0_a49 所以这种形式的都是app类别的
shell 2000
system 1000
root 0
修改文件所属用户组,数字是uid
chown 2000 private.txt uid=2000
chown 1000 readable.txt uid=1000
chown 0 rw.txt uid=0
chown 10002 writable.txt uid>=10000
修改后:
文件权限 用户组 文件名
-rw-rw---- shell u0_a49 private.txt
-rw-rw-r-- system u0_a49 readable.txt
-rw-rw-rw- root u0_a49 rw.txt
-rw-rw--w- u0_a02 u0_a49 writeable.txt
--.ps 看进程信息;列出所有进程信息
包括:
USER PID PPID USIZE RSS WCHAN PC Packname
root 1 0 296 208 c0098770 0000e840 /init
..........................
--.结束进程
--ps ,查看所有进程信息
--找到想要结束的进程的pid
--kill pid 结束进程
--.sleep 5;进程睡眠
直接 sleep 8 当前命令行就sleep8秒,然后才能继续输入命令
3.root 下的操作
--.获取手机联系人数据库
--.adb -s emulator-5554 shell 进入模拟器
--.cat /data/data/com.android.providers.contacts/databases/contacts2.db > /data/local/tmp/1.db 进入应用的包,找到数据库,复制一份到/data/local/tmp下,并命名为1.db
--.adb pull /data/local/tmp/1.db e:\1.db 回到window命令行,将/data/local/tmp/1.db给拉到e盘上进行查看
--.获取手机短信数据库
--.adb -s emulator-5554 shell 进入模拟器
--.cat /data/data/com.android.providers.telephony/databases/mmssms.db > /data/local/tmp/3.db 进入应用的包,找到数据库,复制一份到/data/local/tmp下,并命名为3.db
--.adb pull /data/local/tmp/3.db e:\3.db 回到window命令行,将/data/local/tmp/3.db给拉到e盘上进行查看
--.将一个应用安装为系统应用
原理:将应用apk存放到/system/app下即可。
举例:将MyTest.apk 安装到 模拟器emulator-5554的系统应用
实现步骤:
--进入到模拟器
--adb -s emulator-5554 shell
--因为system和app默认是只读的,因此需要修改其权限,并重新挂载system为可读写
--mount -o remount rw /system 将system挂载为可读写
--chmod 777 system 将system修改权限为可读写执行
--cd /system 进入system目录
--chmod 777 app 将app修改权限为可读写执行
--退出模拟器
--ctrl + c
--将MyTest.apk拷贝到/system/app下
--adb -s emulator-5554 push e:\MyTest.apk /system/app
--拷贝成功,即安装成功。此时/data/data/下就有了MyTest.apk的包名。
--. 卸载系统应用
以录音机为例:
a. pm path packanme 找到系统应用安装目录
所有的包都在/data/data/下,在该目录下找到包名:cd /data/data 找到录音机包名 com.android.soundrecorder 找到该包名的应用的apk的所在路径pm path com.android.soundrecorder 获得路径/system/app/SoundRecorder.apk
b. rm apk_path;
由于系统system只读,因此用mount命令将其挂载,修改为可读写
在根目录下:mount -o remount rw /system
删除该路径apk:rm /system/app/SoundRecorder.apk
c.rm -r /data/data/packname
删除 /data/data/下包名的数据
rm -r /data/data/com.android.soundrecorder -r表示删除文件夹
d.pm uninstall packname 系统应用和用户应用都可以
卸载应用:pm uninstall com.android.soundrecorder
注意:
最好在高版本模拟器上,低版本模拟器不支持部分命令。
各手机之间或许会稍有不同。
1.window命令行下的adb 指令
a.查看链接终端设备: adb devices
b.进入设备终端:adb -s 设备号 shell
adb -s emulator-5554 shell-----进入emulator-5554模拟器注意:只要有多台设备,只要执行adb ,那么adb后一定跟 :-s 设备
c.往手机存放文件 adb [-s 设备号] push pc文件路径 手机path
adb -s emulator-5554 push e:\asm.jar /data/local/tmp-----将e盘下asm.jar存放到emulator-5554下的/data/local/tmp目录下(如果需要重命名那么:/data/local/tmp/asm2.jar)。如果目的目录已有文件,那么覆盖。
d.从手机取文件存放到电脑: adb [-s 设备号] pull phone文件路径 pc_path
adb -s emulator-5554 pull /data/local/tmp/asm2.jar e:\asm3.jar------将emulator-5554模拟器下的/data/local/tmp/asm2.jar文件存放到e盘,并重命名为asm3.jar,如果不想重命名保持原名e:\asm2.jar或者只写目录e:\
。如果目的目录已有文件,那么覆盖。
e.安装应用:adb install[ -r 重新安装并保留原数据][-f 安装到手机内存 /data目录][-s 安装到sdcard /sdcard目录] apk 路径 ;
adb -s emulator-5554 install -f e:\2048.apk-------将e盘下2048.apk安装到模拟器emulator-5554下的/data/app下(-f指定安装到/data/app下),该目录代表用户程序。需要说明的是:在安装过程中,系统会首先将2048.apk先拷贝到/data/local/tmp下,拷贝完成自动安装,安装会把2048.apk从/data/local/tmp拷贝到/data/app下,安装完毕/data/local/tmp下2048.apk会自动删除。
adb -s emulator-5556 install -s e:\MyTest.apk -------将e盘下MyTest.apk安装到emulator-5556下的/mnt/asec目录下(-s指定安装到/mnt/asec下),该目录也带表用户程序。需要说明的是:在安装过程中,系统会首先将MyTest.apk拷贝到/mnt/sdcard/tmp下,拷贝完毕后自动安装,安装会把/mnt/sdcard/tmp下MyTest.spk拷贝到/mnt/asec下,安装完毕,/mnt/sdcard/tmp下MyTest.apk会自动删除。
adb -s emulator-5556 install -r -s e:\MyTest.apk-------------在这里-r,表示,如果已经安装过该apk那么就重新安装一次,并保留原数据
卸载应用:adb uninstall packname
adb -s emulator-5554 uninstall com.example.test------MyTest.apk安装后,包名是com.example.test,在卸载的时候直接卸载包名。不需要指定包所在路径。不要把包名和apk名搞混。如果有多个模拟器需要指定哪个模拟器。
pm命令:在window命令行下使用adb,但是用adb进入设备(模拟器或手机)后使用的是pm:进入的是哪个设备,pm就操作的哪个设备,因此在pm下不用指定设备。
pm卸载应用:pm uninstall -k packname
pm uninstall -k tiny.com.puzzle.number 卸载pm所在手机或模拟器的tiny.com.puzzle.number 不论是在/mnt/asec还是/data/app 都可以直接卸载,不用指定tiny.com.puzzle.number的路径。-k 表示保留该应用的一些数据文件和缓存文件
pm只安装用户应用:pm install -r -f -s 手机文件路径; -r重新安装保留原数据, -f安装到手机内部,-s安装到sd卡
有apk放于:/data/local/tmp/MyTest.apk,那么可以利用pm安装该apk
pm install /data/local/tmp/MyTest.apk 默认安装到/data/app/目录下
pm查看packname的apk安装路径:pm path packname
pm path com.example.test 显示:/data/app/com.example.test-2.apk
f.冻结应用,开机启动项
组件:包名/主Activity的全名,如:com.example.test/com.example.test.MainActivity
冻结:pm disable packname | 组件
你想禁止开机启动项,可以把应用给disable
pm disable com.example.test 命令执行后,无法启动MyTest这个应用了。点击启动时,会提示这个应用没有安装到手机上,或跟本没有这个应用的图标了。
解冻:pm enable packanme | 组件
pm enable com.example.test 命令执行后,可以自动MyTest这个应用了,该应用的图标显示
清除数据:pm clear packname;
pm.clear com.example.test 清除应用的缓存数据 需要注意的是:低版本的模拟器可能不支持该命令,你需要直接输入pm,查看下该模拟器版本pm都有什么命令
g.启动应用
adb shell am start -n 组件名*************************************校验失败
h.monkey测试:monkey -v -p packname 点击数
window命令行下:adb -s emulator-5556 monkey -v -p com.example.test 500
指定模拟器 猴子测试 被测的应用的包名 测试多少次
shell下:monkey -v -p com.example.test 500
i.端口转发forward
adb forward tcp:1100 tcp:1200
j.重启手机:adb reboot
k.关机 :adb shell half
l.重启到恢复模式:adb reboot recovery
m.重启引导模式:adb reboot bootloader
n.ctrl+c 退出设备回到window下命令行)
o.进入手机时,需要按输入su进入root权限
p.获取手机详细参数:adb -s 设备号 shell getprop 获取手机参数
2.linux 指令,也就是用adb shell进入设备后的操作指令
--.pm setInstallLocation 0 1 2 设置应用安装的默认目录 0 auto 1 手机内存 2 sdcard
--.pm getInstallLocation 查看应用安装的默认目录
--.getprop 获取手机参数
--.cat /proc/cpuinfo 获取手机cpu信息
--.ls 列出目下所有文件 -l 详细信息 *
ls 列出当前目录下所有文件和文件夹
ls -l 列出当前目录下所有问价和文件夹的详细信息 ,包括:文件权限,用户组,日期,文件名
--.df 查看磁盘空间
df path:后面跟路径:如df /data/app 表示查看/data/app的磁盘空间,
df:后面可以什么都不跟,直接df 表示查看所有的磁盘空间
--.md5sum 获取文件md5码 md5sum /system/app/1.apk****************************校验失败
--.halt 关机 不是所有手机都有此指令**************************校验失败
--.reboot 重启手机
--.id 获取当前用户信息,获取uid 和gid
--:使用模拟器时:uid=0(root) gid=0(root)
--.gzip ,压缩成包
--.gzip /data/local/tmp/test1.apk 结果:test1.apk.gz
--.ungzip ****************************************校验失败
--.mount 查看磁盘信息
--.mv 移动文件,重命名文件 mv /data/local/tmp/1.apk /data/local/tmp/2.apk
--.rm 删除文件 rm -r 删除文件夹
删除文件:rm /data/data/com.example.test/files/private.txt
删除文件夹:rm -r /data/data/com.example.test/files
--.mount -o remountn rw /system 挂载/system为可读可写
解释:如果直接去chmod 777 system ,那么会提示system :Read-only file system
这时就需要用到mount,将system修改为可读写的,也就是修改其权限:mount -o remount rw /system ,可以对system文件进行读写操作。
这时 再chmod 777 system 就不会报错 就会把system的权限修改为 -rwxrwxrwx
--.mkdir 创建文件夹 创建多级文件 mkdir -p path
mkdir /data/local/tmp2
mkdir /sdcard/nihao
--.echo "11" > /sdcard/a.txt;创建文件a.txt 并写入 “11”
echo "fdsfsfsf" > /data/local/tmp2/a.txt 创建文件a.txt 并写入“fdsfsfsf”
echo "sssssssssss" > /data/local/tmp2/a.txt 若文件已存在,则会覆盖原有的内容
--.cat path 查看文件内容;
cat /data/local/tmp2/a.txt 显示:ssssssssss 也就是a.txt里面的文本内容。不能查看目录,只能查看文件的内容
--.cat 文件1 > 文件2 将 文件1复制一份到文件2 中
cat /data/local/tmp2/a.txt > /data/local/tmp2/b.txt 将a.txt中内容复制到b.txt中,若b.txt不存在就创建,存在就覆盖。不能赋值目录,只针对文件
--.cp path1 path2 复制文件
cp /data/local/tmp2/a.txt /data/local/tmp2/ccc.txt
--.touch "filepath" 创建空文件
touch /data/local/tmp2/d.txt 在/data/local/tmp2/目录下创建一个空文件
--.chmod 777 filepath ;修改文件或文件夹的读写权限。(修改文件夹的时候,文件夹前面不能有“/”)
文件权限的十位解释:
第一位:d代表目录,-代表文件,l代表快捷方式
2-4位:代表该文件内部。权限值1,为三位之和,r=4 w=2 x=1 -=0 权限值=r+w+x
第二位(4):r代表该文件内可读,-代表该文件内不可读
第三位(2):w代表该文件内可写,-代表该文件内不可写
第四位(1):x代表该文件可执行,-代表该文件内不可执行
5-7位:代表同组内。权限值2,为三位之和,r=4 w=2 x=1 -=0 权限值=r+w+x
第五位(4):r代表同组内对该文件可读,-代表同组内对该文件不可读
第六位(2):w代表同组内对该文件可写,-代表同组内对该文件不可写
第七位(1):x代表同组内对该文件可执行,-代表同组内对该文件不可执行
8-10位:代表不同组。权限值3,为三位之和,r=4 w=2 x=1 -=0 权限值=r+w+x
第八位(4);r代表不同组内对该文件可读,-代表不同组内对该文件不可读
第九位(2);w代表不同组内对该文件可写,-代表不同组内对该文件不可写
第十位(1);x代表不同组内对该文件可执行,-代表不同组内对该文件不可执行
三组权限值的并列,即为该文件的权限值:权限值1权限值2权限值3
现有文件权限
-rw-rw---- private.txt
-rw-rw-r-- readable.txt
-rw-rw-rw- rw.txt
-rw-rw--w- writeable.txt
命令:chmod 777 private.txt
结果:-rwxrwxrwx private.txt
解释:777=-权限值1(7)权限值2(7)权限值3(7)=(4+2+1)(4+2+1)(4+2+1)=(r w x)(r w x)(r w x)=-rwxrwxrwx
chmod 426 private.txt
-r---w-rw- private.txt
解释:426=-权限值1(4)权限值2(2)权限值3(6)=(4+0+0)(0+2+0)(4+2+0)=(r - -)(- w -)(r w -)=-r---w-rw-
--.chown 0.0 filepath 赋所属用户及用户组,也就是修改用户组
文件权限 用户组 ........ 文件名
-rw-rw---- u0_a49 u0_a49 private.txt
-rw-rw-r-- u0_a49 u0_a49 readable.txt
-rw-rw-rw- u0_a49 u0_a49 rw.txt
-rw-rw--w- u0_a49 u0_a49 writeable.txt
组分类: 权限值
app 10000+ 比如10023 表示为u0_a23 10049 --u0_a49 所以这种形式的都是app类别的
shell 2000
system 1000
root 0
修改文件所属用户组,数字是uid
chown 2000 private.txt uid=2000
chown 1000 readable.txt uid=1000
chown 0 rw.txt uid=0
chown 10002 writable.txt uid>=10000
修改后:
文件权限 用户组 文件名
-rw-rw---- shell u0_a49 private.txt
-rw-rw-r-- system u0_a49 readable.txt
-rw-rw-rw- root u0_a49 rw.txt
-rw-rw--w- u0_a02 u0_a49 writeable.txt
--.ps 看进程信息;列出所有进程信息
包括:
USER PID PPID USIZE RSS WCHAN PC Packname
root 1 0 296 208 c0098770 0000e840 /init
..........................
--.结束进程
--ps ,查看所有进程信息
--找到想要结束的进程的pid
--kill pid 结束进程
--.sleep 5;进程睡眠
直接 sleep 8 当前命令行就sleep8秒,然后才能继续输入命令
3.root 下的操作
--.获取手机联系人数据库
--.adb -s emulator-5554 shell 进入模拟器
--.cat /data/data/com.android.providers.contacts/databases/contacts2.db > /data/local/tmp/1.db 进入应用的包,找到数据库,复制一份到/data/local/tmp下,并命名为1.db
--.adb pull /data/local/tmp/1.db e:\1.db 回到window命令行,将/data/local/tmp/1.db给拉到e盘上进行查看
--.获取手机短信数据库
--.adb -s emulator-5554 shell 进入模拟器
--.cat /data/data/com.android.providers.telephony/databases/mmssms.db > /data/local/tmp/3.db 进入应用的包,找到数据库,复制一份到/data/local/tmp下,并命名为3.db
--.adb pull /data/local/tmp/3.db e:\3.db 回到window命令行,将/data/local/tmp/3.db给拉到e盘上进行查看
--.将一个应用安装为系统应用
原理:将应用apk存放到/system/app下即可。
举例:将MyTest.apk 安装到 模拟器emulator-5554的系统应用
实现步骤:
--进入到模拟器
--adb -s emulator-5554 shell
--因为system和app默认是只读的,因此需要修改其权限,并重新挂载system为可读写
--mount -o remount rw /system 将system挂载为可读写
--chmod 777 system 将system修改权限为可读写执行
--cd /system 进入system目录
--chmod 777 app 将app修改权限为可读写执行
--退出模拟器
--ctrl + c
--将MyTest.apk拷贝到/system/app下
--adb -s emulator-5554 push e:\MyTest.apk /system/app
--拷贝成功,即安装成功。此时/data/data/下就有了MyTest.apk的包名。
--. 卸载系统应用
以录音机为例:
a. pm path packanme 找到系统应用安装目录
所有的包都在/data/data/下,在该目录下找到包名:cd /data/data 找到录音机包名 com.android.soundrecorder 找到该包名的应用的apk的所在路径pm path com.android.soundrecorder 获得路径/system/app/SoundRecorder.apk
b. rm apk_path;
由于系统system只读,因此用mount命令将其挂载,修改为可读写
在根目录下:mount -o remount rw /system
删除该路径apk:rm /system/app/SoundRecorder.apk
c.rm -r /data/data/packname
删除 /data/data/下包名的数据
rm -r /data/data/com.android.soundrecorder -r表示删除文件夹
d.pm uninstall packname 系统应用和用户应用都可以
卸载应用:pm uninstall com.android.soundrecorder
相关文章推荐
- Android开发adb常用命令详解
- android logcat 命令详解 和 adb 常用命令
- 常用adb命令详解
- ADB 常用命令及详解
- Android adb常用命令详解
- 常用adb操作命令详解
- Logcat命令详解 和 adb 常用命令
- adb 常用命令详解
- Android 调试桥(adb)常用命令详解(转)
- adb shell am/pm 常用命令详解与使用
- Windows常用网络命令及命令实例详解(上)
- 常用网络命令及命令详解
- Windows操作系统 常用网络命令使用技巧详解
- Linux netstat 命令常用选项详解
- tar,rmp命令常用参数及tar参数详解
- linux tar 命令常用 及压缩详解
- U-Boot的常用命令详解
- Windows操作系统常用网络命令使用技巧详解
- U-Boot的常用命令详解
- Windows常用网络命令及命令实例详解(上)