2012年5月22日火曜日

apkファイル内部を書き換える

すでに完成しているpackage.apk内のリソースファイルやsoファイルを手動で入れ替えたい場合の話。

package.apkはzipファイルなので、アーカイバで展開。
ここではpackageフォルダに展開したとします。
変更したいファイルを置き換え。

\sdkをインストールしたフォルダ\tools へ移動
apkbuilder.batというのがあるはず。

>apkbuilder.bat
A command line tool to package an Android application from various sources.
Usage: apkbuilder [-v][-u][-storetype STORE_TYPE] [-z inputzip]
[-f inputfile] [-rf input-folder] [-rj -input-path]

-v Verbose.
-d Debug Mode: Includes debug files in the APK file.
-u Creates an unsigned package.
-storetype Forces the KeyStore type. If ommited the default is used.

-z Followed by the path to a zip archive.
Adds the content of the application package.

-f Followed by the path to a file.
Adds the file to the application package.

-rf Followed by the path to a source folder.
Adds the java resources found in that folder to the application
package, while keeping their path relative to the source folder.

-rj Followed by the path to a jar file or a folder containing
jar files.
Adds the java resources found in the jar file(s) to the application
package.

-nf Followed by the root folder containing native libraries to
include in the application package.

とのこと。
今回の場合は

apkbuilder.bat package.apk -rf packageフォルダ [-nf nativeファイルフォルダ]

-nfで指定したフォルダはpackage\lib以下に置くのと同じ動作になるようです。
package\lib以下に同じ構成で同じファイル名のものがあるとエラーになるので、
package\lib以下を直接書き換えれば-nfを使用する必要はないかと思います。

0 件のコメント:

コメントを投稿