妙哉。
适用于 Android 7 (Nougat) 及以上。
Android 7 以下可通过 root 设备安装系统级 CA 证书。
对于 Windows Subsystem for Android™️ (WSA) 可尝试如下命令行
adb shell settings put global http_proxy 127.0.0.1:8080
打开http://burp/,点击右上角 CA Certificate 下载证书并转到设置安装。
下载Apktool,以 a.apk 为例,执行:
java -jar apktool.jar d a.apk
检查 AndroidManifest.xml 中是否已存在以下属性:
//file: AndroidManifest.xml
<application ... android:networkSecurityConfig="@xml/network_security_config" ...>
如果已存在,定位到 a/res/xml/,打开上述文件中指定的文件,否则,在 AndroidManifest.xml 中添加以上属性后在 a/res/xml 下新建 network_security_config.xml。
向上述已存在文件或新建文件中合并入以下内容:
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
重新定位至 apk 目录,执行:
java -jar apktool.jar b a
Invalid resource directory name …/res navigation 等
更改打包命令为:
java -jar apktool.jar b --use-aapt2 a
定位至 a/dist/ 执行:
keytool -genkeypair -alias key.keystore -keyalg RSA -validity 500000 -keystore key.keystore
jarsigner -keystore key.keystore -signedjar signed.apk a.apk key.keystore
adb install a/dist/signed.apk
INSTALL_FAILED_INVALID_APK: INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2
更改 AndroidManifest.xml:
//file: AndroidManifest.xml
...
<application ... android:extractNativeLibs="true" ...>
</application>
...
重新打包、签名、安装。