いきなりまとめ
- apktoolでdecompile & recompileしてjarsignerで署名してadb install app.apkしたけどコケた
- Android11からはapk署名スキームv2を使う必要あり
- そのためにはjarsignerではなくapksignerを使う
おさらい
apktoolでdecompile & recompile
まずはデコンパイル。
apktool d targetapp.apk
次にリコンパイル
apktool b targetapp -o output.apk
[備忘録]自分がよくやるデコンパイル・リコンパイルの間の作業
AndroidManifest.xmlの編集
追加:android:networkSecurityConfig="@xml/network_security_config"
追加:android:debuggable="true#
追加:res/xml/network_security_config.xml
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
署名する
署名に使う証明書作成
keytool -genkey -v -keystore test.keystore -alias TEST -keyalg RSA -validity 10000
jarsignerでの署名
jarsigner -verbose -keystore test.keystore app.apk TEST
apksignerでの署名
apksigner sign --ks test.keystore -v --v2-signing-enabled true --ks-key-alias TEST app.apk
※各種ツールの細かい使い方はヘルプ参照。