6

ダウンロードした各 APK ファイルに追加の (ユーザーごとの) データを含めたいと考えています。つまり、サーバーに既存の APK ファイルがあり、次のことを行いたいと考えています。

  • /res/user_info.xml既存の APK のファイルを動的に生成された XML ファイルに置き換える
  • ユーザーがパッケージをダウンロードする前に、パッケージ全体を更新して再署名する

詳細情報: aapt、apktool、jarsigner などを使用して実行できることはわかっています... 問題は、ドキュメントが非常に貧弱であり、APK ファイルを再パックするための実用的な手法を見つける (または開発する) ことができなかったことです。たとえば、私が何をしてもaapt、常に XML ファイルをルート パス ( ) に配置します。/また、APK ファイルを再び有効にするために、どのリソースを更新する必要があるのか​​もわかりません。また、 の既存の XML ファイル/res/はコンパイルされます。自分の XML ファイルでもコンパイルする必要がありますか? はいの場合、どうすればよいですか?いいえの場合、XML ファイルを に入れる必要があります/res/raw/か?

質問: APK 内の XML ファイルを置き換えて再パッケージ化するにはどうすればよいですか? どのような手順が必要で、どのツールを使用すればよいですか?

4

1 に答える 1

5

この記事では、apk ファイルを解凍してパックする基本的な手順を見つけることができます。

基本的に;

= apktool.bat d -s sample.apk .\sample\apk のリソースのみをデコードするために使用します (この状況では、ソース部分をデコードする必要はありません)。

= 必要なリソースを追加/編集/置換します。

=apktool.bat b .\sample\ .\sample_edited.apk変更された apk をビルドするために使用します。

= まだ持っていない場合は、apk に署名するための RSA 2048 キーを生成します。keytool -genkey -v -keystore my.keystore -alias myandroidalias -keyalg RSA -keysize 2048 -validity 20000

= 生成された鍵で apk に署名jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my.keystore .\sample_edited.apk -signedjar .\sample_signed.apk myandroidalias

= 署名付き apk を 4 バイト境界に合わせますzipalign.exe -v 4 .\sample_signed.apk .\sample_aligned.apk( zipalign は android-sdk に付属しています)

于 2012-11-08T22:54:19.637 に答える