Проблема с операцией добавления aapt

Итак, у меня есть файл в 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, хеширует class.dex и пытается вставить хэш-значение для замены 12345 в strings.xml. В общем, после изменения он пытается использовать aapt для обновления файла strings.xml в apk, но безрезультатно. Вот часть скрипта.

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, поэтому буду признателен за любую помощь.

Спасибо!


person sbrichards    schedule 14.06.2012    source источник


Ответы (1)


Как насчет перезаписи res/values/strings.xml с помощью старого доброго jar:

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

person Justin Muller    schedule 26.06.2012