SO-01D その4

apkの解析

■ AndroidManifest.xml

バンディクとみんごるの差分では、

<manifest package="com.sony.playstation.NCJA10031_1"
<manifest package="com.sony.playstation.NCJA10093_1"

これくらい。

■ パッケージ名

んで、まぁ、パッケージは被らなければ良いので良いのですけど、命名規則とか気になる。

http://forum.xda-developers.com/showpost.php?p=16520496

上記を読むと、ロケールに依存してバンディクパッケはこんな違いがあるらしい。

usa, r800x: com.sony.playstation.ncua94900_1.apk
europe, r800i: com.sony.playstation.ncea00344_1.apk

NC{ロケール文字}A{5桁}_1

クラッシュバンディクのプロダクトID

日本版はSCPS-10031
米版はSCUS-94900
欧版はSCES-00344

http://www.gamefaqs.com/ps/196986-crash-bandicoot/data

なるほどー

NC{ロケール文字}A{プロダクトID下5桁}_1

という規則ですね。

日本版でも、SCPSやSLPSがあるので、下5桁では被るものがあるかもしれませんが、気にするレベルではないですね。

ちゅう訳で、日本版で変換する場合は、

NCJA{プロダクトID下5桁}_1

というフォーマットで良いということ。

■ assets
- AndroidManifest.xml
- {package}_1.zpak

マニフェストはルートのものと同一。
zpakは、例えば、NCJA10031_1ならば、NCJA10031_1_1.zpakとなる。

zpakの中身は、
- metadata.xml
- assets
  - *.dds
  - editmaps
  - default
    - bitmaps
      - icon.png
- data
  - params.bin
など、わらわらとありますが、metadata.xmlにはゲーム名称やレーティングなど固有情報を埋める必要あり。icon.pngは勿論固有。ddsやparams.binは差分がないので流用可能です。

■ lib
- armeabi
 - libjava-activity.so
 - libzplatform.so

これは恐らくjniアクセスするpsoneネイティブエミュレータなんだろうけど、バンディクとみんごるで差分が出てしまっている。
このエミュで、rtypesは動作していたので問題はないと思うけど、psxperiaで色々と補正をしている節があるので要注意。

■ res
- drawable
 - icon.png 
- values
 - strings.xml
当たり前の差分ちゅうことで。

以上。