0

したがって、デスクトップの res/values/ にファイルがあり、その中にstrings.xmlがあり、このstrings.xmlには次のものが含まれています。

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <string name="hello">Hello World, SHAHashActivity!</string>
  <string name="app_name">SHA-Hash</string>
  <string name="sha">12345</string>
  <string name="app_path">67890</string>

</resources>

それを含むスクリプトがあり、変更しようとしているapkの名前に関してユーザー入力を受け取り、apkを解凍し、classes.dexをハッシュし、ハッシュ値を挿入してstrings.xmlの12345を置き換えようとします。全体として、一度変更されると、aapt を使用して apk 内の strings.xml ファイルを更新しようとしますが、役に立ちません。以下はスクリプトの一部です。

export hash=`/usr/bin/openssl sha1 apk/classes.dex | sed "s|SHA1(apk/classes.dex)= ||g"`
sed -i '' -e"s/12345/$hash/g" res/values/strings.xml
./aapt a -v SHA-Hash.apk res/values/strings.xml

sed を使用して文字列ファイルをローカルで更新すると機能し、変更されますが、aapt を使用して apk で更新することはできません。

aapt を適切に使用して、既存の /res/values/strings.xml をコンピューター上のものに置き換えるコマンドについてのアイデアはありますか? aapt に関するドキュメントがあまり見つからないので、助けていただければ幸いです。

ありがとう!

4

1 に答える 1

0

res/values/strings.xml普通の古いものを使って上書きするのはどうですかjar:

jar vuf SHA-Hash.apk res/values/strings.xml

于 2012-06-26T21:06:30.210 に答える