第一类:查询命令:
1. 查询安装apk版本
adb shell "dumpsys package (package-name) | grep version"
2. 查询apk签名
(1). 首先把apk进行解压,查找以xx.rsa结尾的问题件后,在终端执行以下命令
keytool -printcert -file xxx.apk
(2). Eerror:keytool不是内部命令.
在jdk/bin目录文件夹中找到keytool.exe拖动到终端后执行,如下所示"C:\Program Files\Java\jre1.8.0_191\bin\keytool.exe" -printcert -file xxx.apk
(3). 签名含义
简单的说,Android系统中要求,如果system没有安装签名,则无法安装到Android系统中,也可以防止apk被掉包;Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
(4). MD5、SHA1、SHA256
MD5(MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)
3. 签名分类及含义
(1). Android系统源码目录build/target/product/security目录中有四组默认签名供Android.mk在编译APK使用
testkey:普通APK,默认情况下使用。
platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。
shared:该APK需要和home/contacts进程共享数据。
media:该APK是media/download系统中的一环。应用程序的Android.mk中有一个LOCAL_CERTIFICATE字段,由它指定用哪个key签名,未指定的默认用testkey.对于使用eclipse编译的apk,可以使用signapk.jar来手动进行签名,其源码在build/tools/signapk下,编译后在out/host/linux-x86/framework/signapk.jar,也可以从网上下载使用方法:以platform为例:javasignapkplatform.x509.pemplatform.pk8input.apkoutput.apk(platform.x509.pemplatform.pk8在build/target/product/security获取)
(2). android系统源码:
4. 查询package安装路径
adb shell pm path <package-name>
5.查询应用路径
adb shell pm list packages -f xxx.apk
第二类:安装命令
1. 覆盖安装
adb install -r <package-name>(把文件直接拉到cmd里面)
2. 低版本覆盖高版本安装
adb install -r -d <package-name>(把文件直接拉到cmd里面)
第三类:其他命令
1. Android—root
adb reboot bootloader
fastboot flashing unlock
fastboot reboot
adb disable-verity
adb reboot
adb root
adb remount
adb reboot
2. 关机
adb shell reboot -p
3. 进入recovery模式
adb reboot recovery