Android - 如何从一个特定的 apk 中提取资源 LOCALE/LANGUAGE

Android - How to extract resources from apk FOR ONE SPECIFIC LOCALE/LANGUAGE

编辑:

请参阅下面我的回答:apktool 可以。


编辑:

来自 Hanno Binder 的评论:

"显然,-c 选项仅在 p[ackaging] 资源时有效,而不是用于提取它们。"


我尝试使用 'aapt' 工具从 apk 中提取 fr 字符串。

我可以获得这样的所有资源:

.\android-sdks\build-tools.0.2\aapt.exe d --values resources my.apk > resources.all.txt

我只想获取给定语言环境的资源,例如 fr(法语)。关于这一点,aapt 文档指出:

   -c  specify which configurations to include.  The default is all
       configurations.  The value of the parameter should be a comma
       separated list of configuration values.  Locales should be specified
       as either a language or language-region pair.  Some examples:
            en
            port,en
            port,land,en_US

所以我尝试了

.\android-sdks\build-tools.0.2\aapt.exe d -c fr --values resources my.apk > resources.fr.txt

但输出仍然包含 所有 配置 (/locales) 的字符串。

问题:

我该怎么办?

注:

我很确定 apk 确实包含 fr 数据,因为我使用以下方法获取 apk 配置:

.\android-sdks\build-tools.0.2\aapt.exe d --values configurations my.apk > configurations.txt

并且 fr 在配置列表中。 (此外,我在资源中看到了一些 fr 字符串。all.txt)

实现此目的的一种方法是使用 apktool

$ apktool d theApkYouWantToExtractResourcesOf.apk

这将生成一个 ./theApkYouWantToExtractResourcesOf/ 文件夹,其中包含所有资源,包括

./theApkYouWantToExtractResourcesOf/res/values-<language>/

我对法语字符串很感兴趣,并在这里找到了它们:

./theApkYouWantToExtractResourcesOf/res/values-fr/strings.xml

任务完成!