Android は APK を逆コンパイルし、コンテンツを変更して 2 番目のパッケージに署名します。

1. APK を逆コンパイルし、再署名します。

1. apktool.jar をダウンロードします。ダウンロード アドレス:  iBotPeaches / Apktool / Downloads — Bitbucket

2. Mac コンピューターは、署名に apksigner メソッドを使用するため、環境を構成する必要があります。

     2.1 コマンドライン入力: .bash_profile を開き、開いた環境設定ファイルに追加し、独自の SDK ディレクトリに従って設定します。        

export APK_SIGNER_HOME=/opt/android-sdk/build-tools/28.0.3
export PATH=$PATH:$APK_SIGNER_HOME

        2.2 上記の環境を追加した後、ファイルを閉じて、更新コマンドを実行します:source .bash_profile

3. 逆コンパイルする apk、apktools.jar、署名ファイルを同じフォルダーに置きます。

以下で逆コンパイルと二次署名の操作を開始します。

コマンド ライン cd でテスト ディレクトリに移動します。

1. test.apk パッケージを逆コンパイルすると、成功すると逆コンパイルされたテスト ファイルが生成されます。

java -jar apktool.jar d test.apk

 

2. テストフォルダーがapkコンテンツなので、変更したい操作を実行します 

3. testフォルダー配下のMETA-INFファイルを削除します。

4. パッケージ化コマンドを実行すると、実行後に署名されていない ccc.apk パッケージが生成されます。

apktool b test -o ccc.apk

test是反编译test.apk后生成的文件夹. 
ccc.apk 是你打包的新apk.

 5. 上記で生成された test.apk に署名します。

//签名,只有V1签名
jarsigner -verbose -keystore 签名文件 ccc.apk 签名文件的别名

//签名,V1,保留未签名的旧apk
jarsigner -verbose -keystore 签名文件 -signedjar newccc.apk ccc.apk 签名文件的别名

//V1和V2签名
apksigner sign --ks 签名文件 --ks-key-alias 签名文件的别名 ccc.apk

 6. 子会社の受注

//查看签名信息
keytool -printcert -jarfile ccc.apk

//检查 Apk 是否已签名,两个命令都可以
apksigner verify -verbose -print-certs ccc.apk
apksigner verify -v --print-certs ccc.apk

2. class.dex などのファイルは変更せず、アセットなどのファイルを直接置き換えてください。

アセット ファイルの下のリソースはコンパイルされないため、直接置き換えることができます。

AndroidManifest.xml ファイルを置き換える場合は、ソース ファイルまたは APK を逆コンパイルした後のファイル内で変更し、署名後に APK パッケージにパッケージ化する必要があります。次に、署名された APK を解凍して AndroidManifest.xml を取得します。コンパイルされたファイルなので、AndroidManifest.xml ソースファイルに置き換えると署名に失敗します。

 apk パッケージのファイルを置き換え、削除してから追加します。 

1. 置き換えるファイル、apk、署名ファイルをディレクトリに置きます。

 アセット ディレクトリ内のファイルを変更する場合は、変更したファイルをアセット フォルダーに配置する必要があります。また、パスは APK 内のパスと一致している必要があります。

 一部のコンパイル済みファイルは、ソース ファイルではなく、パッケージ化と署名後に取得する必要があります。例: AndroidManifest.xml

 2. ファイルを以下のコマンドに置き換えます。 

//替换assets目录下文件
aapt r test.apk assets/xxx.json
aapt a test.apk assets/xxx.json

//替换AndroidManifest.xml文件
aapt r test.apk AndroidManifest.xml
aapt a test.apk AndroidManifest.xml

3. 署名コマンドを使用する

apksigner sign --ks 签名文件 --ks-key-alias 签名文件的别名 test.apk

おすすめ

転載: blog.csdn.net/zhao8856234/article/details/131245010