1. adb shell getprop ro.product.cpu.abi
查看手机cpu的abi类型。
在AndroidStudio的项目中,如果app对某些.so包有使用,就要在app的build.gradle中添加ndk配置:
/**
* 1. armeabi: (32位) 第5代、第6代的ARM处理器,早期的手机用的比较多。
* 2. armeabiv-v7a: (32位) 第7代及以上的 ARM 处理器。
* 2011年15月以后的生产的大部分Android设备都使用它.
* 3. arm64-v8a: (64位) 第8代、64位ARM处理器,现在大部分的手机和平板cpu都是这种类型,
* 例如:小米9,华为p30, 三星A6+,平板(华为M5、M6)
* 4. x86: (32位) 平板、模拟器用得比较多。
* 5. x86_64: (64位) 64位的平板。
* 6. mips: (32位)
* 7. mips64: (64位)
*/
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
2. adb devices
查看当前连接设备,但可能是不可用的,后面会有状态提示。
3. adb tcpip 5555 和 adb connect 手机IP地址:端口号5555
无线调试,需要电脑和手机在同一个局域网。
执行命令也需要连接数据线,等提示 connected to 手机IP地址:端口号5555
之后就可以断掉数据线。
4. keytool -printcert -jarfile xxxxxx.apk
查看apk文件的签名列表。没有会提示Not a signed jar file
。
或者使用 jarsigner -verify -verbose -certs xxxxxx.apk
5. keytool -genkey -alias <别名> -keyalg RSA -validity 40000 -keystore <xxx.keystore>
生成签名文件指令,需要输入很多信息,至少需要输入一个。最后选择是否为当前国家,输入 yes 即可。
6. keytool -list -v -keystore <xxx.keystore>
查看签名文件的一些信息,需要输入密码。
7. jarsigner -verbose -keystore <xxx.keystore> -signedjar <签名后apk> <原apk> <xxx.keystore别名>
对apk签名指令。参数顺序一定要写对。
8. apksigner 签名
注意将 sdk\build-tools\34.0.0
配置为环境变量,可以全局使用。
8.1 --ks签名
apksigner verify -v -print-certs xxx.apk
验证签名。
apksigner sign --ks <签名文件> --ks-key-alias <签名别名> xxx.apk
签名,成功的结果就是原apk文件。应该也可以指定输出到别的文件。签名前最好也做zipalign
对齐。
apksigner sign --ks moqi.keystore --ks-key-alias moqi
apksigner sign --ks zmap.jks --ks-key-alias key0
zipalign -p -f -v 4 input.apk output.apk
对齐,一定要在签名前做。
zipalign -c -v 4 output.apk
验证对齐。
8.2 keystore --> pk8+.x509.pem
将.keystore签名文件转为 .pk8 + .x509.pem:
先得到pkcs12格式的 tmp.p12 文件
keytool -importkeystore -srckeystore your.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
将PKCS12 dump成pem
openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem
查看tmp.rsa.pem,并新建一个 your.x509.pem
的文件,将下面的-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----部分复制到其中,包含这两行提示。
pk8生成也需要tmp.rsa.pem中内容,新建一个 private.ras.pem
文件,将 -----BEGIN PRIVATE KEY----- 到 -----END PRIVATE KEY----- 部分复制到其中,包含这两行提示。
最后利用private.ras.pem
生成your.pk8
openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out your.pk8 -nocrypt
8.3 --key --cert 签名
apksigner sign --key your.pk8 --cert your.x509.pem --out output.apk input.apk
apksigner sign --key moqi.pk8 --cert moqi.x509.pem
9. 获取最上层显示Activity
adb -s <设备ID> shell dumpsys activity activities | grep mResumedActivity
附
附: 部分手机的cpu类型
机型 | 类型 | cpu.abi |
---|---|---|
小米9 | 手机 | arm64-v8a |
华为M5 | 平板 | arm64-v8a |
海信A1 | 手机(淘汰手机) | arm64-v8a |
Vivo IQOO Neo3 | 手机 | arm64-v8a |
华为Mate9 | 手机 | arm64-v8a |