android 常用命令记录

android 常用命令记录

1.adb shell dumpsys meminfo

查看指定金正名称或者进程id对应的内存信息,这个一般情况我们都是用来获取内存相关信息的

例子:adb shell dumpsys meminfo [packageName/PID]

adb shell dumpsys meminfo com.tencent.mm

    115881 kB:  112332 kB: com.tencent.mm (pid 26335 / activities) 
    87806 kB:  63520 kB: com.tencent.mm (pid 24519)
2.adb shell dumpsys dbinfo com.temcent.mm

查看指定报名应用的数据库信息

3.adb install -r [apk]

安装apk软件,-r替换掉原有的,覆盖安装

4.adb uninstall [apk]

卸载apk软件

5.adb shell screencap

截取屏幕

例子:adb shell screencap -p /mnt/sdcard/1.png

5.adb shell screenrecord

录制屏幕

6.adb shell input text [文本内容]

输入文本内容

例子:adb shell input text ‘Hello world’

这个命令也可以模拟物理按键,虚拟键盘,滑动,滚动等事件。

7.adb forward

设备的端口转发

adb forward [远程端协议:端口号] [设备端协议:端口号]

ida调试的时候会经常用到

8.adb jdwp

查看设备中可以被调试的应用程序进程号

9.adb logcat

查看当前日志信息

adb shell logcat |grep com.temcemt.mm

10.adb shell pm clear [packagename]

清空应用数据

11.am start -n [packagename/packagename.acitivity]

启动对应的acitivty

加入-D 参数可以使用debug方式启动

12.aapt 获取apk信息

apt dump xmltree demo.apk AndroidManifest.xml >1.txt

通过命令,把获取到信息重定向到1.txt文件里面

13 .dexdump

dexdump [dex文件名]

查看dex文件的详细信息

14.cat /proc/[pid]/maps

使用cat命令查看对应pid的内存映射信息,比如加载了哪些so文件,dex文件等等

15.cat /proc/[pid]/status

查看进程对应的状态信息,例如 TracerPid

16.获取当前端口号信息

cat /proc/[pid]/net/tcp | tcp6 | udp | udp6

17.odex反编译成smali
java -jar baksmali.jar x services.odex

反编译odex的过程中会报很多错误,原因都是缺少依赖,缺少什么依赖,我们就将它从手机pull出来,并放在 services.odex同级目录下,等到不缺依赖的时候,反编译也就能完成了。

18.smali转成Dex
java -jar smali.jar as out/ -a 28 -o services.dex
19.dex2oat工具将dex转换成odex
adb push services.dex /data/local/tmp/services.dex
adb shell
export ANDROID_DATA=/data
export ANDROID_ROOT=/system
dex2oat --dex-file=/data/local/tmp/services.dex --oat-file=/data/local/tmp/services.odex  --instruction-set=arm64 --runtime-arg -Xms64m --runtime-arg -Xmx128m
20.readelf 使用

readelf -h hello.o 获取elf文件头信息

ELF 头:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  类别:                              ELF64
  数据:                              2 补码,小端序 (little endian)
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI 版本:                          0
  类型:                              REL (可重定位文件)
  系统架构:                          Advanced Micro Devices X86-64
  版本:                              0x1
  入口点地址:               0x0
  程序头起点:          0 (bytes into file)
  Start of section headers:          64 (bytes into file)
  标志:             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           0 (bytes)
  Number of program headers:         0
  Size of section headers:           64 (bytes)
  Number of section headers:         7
  Section header string table index: 3

readelf -l hello.so 查看程序段头信息


Elf 文件类型为 DYN (共享目标文件)
Entry point 0x0
There are 8 program headers, starting at offset 64

程序头:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000000040 0x0000000000000040
                 0x00000000000001c0 0x00000000000001c0  R      0x8
  LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x000000000000e204 0x000000000000e204  R E    0x10000
  LOAD           0x000000000000fcf0 0x000000000001fcf0 0x000000000001fcf0
                 0x0000000000000bd0 0x0000000000001308  RW     0x10000
  DYNAMIC        0x000000000000fd08 0x000000000001fd08 0x000000000001fd08
                 0x0000000000000250 0x0000000000000250  RW     0x8
  NOTE           0x0000000000000200 0x0000000000000200 0x0000000000000200
                 0x0000000000000020 0x0000000000000020  R      0x4
  GNU_EH_FRAME   0x000000000000def8 0x000000000000def8 0x000000000000def8
                 0x000000000000030c 0x000000000000030c  R      0x4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10
  GNU_RELRO      0x000000000000fcf0 0x000000000001fcf0 0x000000000001fcf0
                 0x0000000000000310 0x0000000000000310  RW     0x8

 Section to Segment mapping:
  段节...
   00     
   01     .note.gnu.build-id .dynsym .dynstr .gnu.hash .hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .plt .text .rodata .eh_frame .eh_frame_hdr 
   02     .fini_array .init_array .dynamic .got .got.plt .data .bss 
   03     .dynamic 
   04     .note.gnu.build-id 
   05     .eh_frame_hdr 
   06     
   07     .fini_array .init_array .dynamic .got .got.plt 

readelf -a hello.so 查看全部信息

21.chmod命令

9 8 7 6 5 4 3 2 1 0

从左到右分别为9-0

第9位表示文件类型,可以设置的值为p,d,l,s,c,b和-

p表示命名管道文件

d表示目录

l表示符号链接文件

s表示socket文件

c表示字符设备文件

b表示块设备文件

-表示普通文件

第86 位,53位,2~0位分别表示文件所有者的权限,同组用户的权限,其他用户权限,取值位rwx

r表示读,可以读取文件内容,对应数字是4

w表示写,可以修改文件内容,对应的数字是2

x表示可以执行,可运行这个程序,对应的数字是1

chmod u=rwx,g=r,o=x filename

u代表所有者,g代表组用户,o代表其他用户

22.aapt dump AndroidManifest.xml 文件内容
aapt dump xmltree applock.apk AndroidManifest.xml > /home/jack/xml.txt
23.使用signapk.jar签名
java -jar signapk.jar textkey.x509.pem testkey.pk8 debug.apk debug.sig.apk

pk8是私钥文件

x509.pem是含有公钥的文件


文章作者: 孙老师
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 孙老师 !
 上一篇
Say hello to x86_64 Assembly [part 2] Say hello to x86_64 Assembly [part 2]
翻译原文地址 Say hello to x86_64 Assembly [part 2]几天前,我写了第一篇博文-介绍x64汇编-Say hello to x64 Assembly [part 1],出乎我的意料,引起了极大的兴趣: Som
2020-01-09 孙老师
下一篇 
Say hello to x86_64 Assembly [part 1] Say hello to x86_64 Assembly [part 1]
翻译原文地址 Say hello to x86_64 Assembly [part 1]介绍Introduction 我们中间有很多开发者,我们每天写了成千上万行代码。有时候甚至是一些不错的代码:)我们每个人都能写出像下面这样的简单代码:
2020-01-08 孙老师
  目录