ISW12HTは、海外のEVO3D、CDMA版と同じハード仕様らしい。
同じハード仕様なので海外で作成されているCyanogenModがそのまま動くはずなのだが、GPSの設定が違ったり、HBOOTと呼ばれる起動ファームウェアのバージョンの違いがあり、xdaに掲載されているインストールzipがそのままでは使えないことが多い。
そのため、xdaからダウンロードしたzipを自分が使っているHBOOT1.6用に対応させる手順をメモっておく
参考にした記事:忍者の改造ブログ(http://blog.goo.ne.jp/supersonicninja)
・「要HBOOT1.5なROMをHBOOT1.6対応にする方法」
・「ROM、カーネルのポート方法」
作成したzipは、こちらからダウンロード
準備するもの
1) boot.imgを展開、作成するツール
http://forum.xda-developers.com/showthread.php?t=2073775
この中のunpackbootimg, mkbootimg: https://github.com/osm0sis/mkbootimg/
をダウンロードして、事前にmake してunpackbootimg, mkbootimgを作る
2) xda からダウンロードしたVILLUMINATI-04272014-shooter.zip
3) 適当なlinux。ここでは、CentOSを使っています。
ちなみに海外のEVO3DのCDMA版はshooter, ISW12HTはshooterk と呼んでいて、参考記事だと名称変更するのですがここではshooterのままで設定を行います。
手順)
Linux上で行います。事前に必要なファイルはLinux上へ転送しておきます。ルートで作業します。
1)インストーラの展開
# cd $HOME
# mkdir install
# cd install
# unzip ../VILLUMINATI-04272014-shooter.zip
2)boot.imgを展開する
# cd $HOME
# mkdir boot
# cd ./boot
# ../mkbootimg-master/unpackbootimg -i ../install/boot.img
BOARD_KERNEL_CMDLINE console=ttyHSL0 androidboot.hardware=shooter no_console_suspend=1
BOARD_KERNEL_BASE 48000000
BOARD_NAME
BOARD_PAGE_SIZE 2048
BOARD_KERNEL_OFFSET 00008000
BOARD_RAMDISK_OFFSET 01000000
BOARD_TAGS_OFFSET 00000100
※上記のようにパラメータ情報が表示されるので、メモっておきます。あとで使います。
2)boot.img-ramdisk.gzを展開する
# mkdir ramdisk
# cd ramdisk
# gzip -dc ../boot.img-ramdisk.gz | cpio -i
3)HBOOTのバージョンでマウントポイントが違うところの書き直し
# vi /boot/fstab.shooter
/dev/block/mmcblk0p29 /devlog <--- mmcblk0p28をmmcblk0p29へ
4)HBOOT1.6に対応するために記述を追加する。
# vi init.shooterk.rc
※firmware/miscのところにfirmware/adspを追加、変更する
mkdir /vendor/firmware/misc 0771 system system
mkdir /vendor/firmware/adsp 0771 system system <-- 追加
wait /dev/block/mmcblk0p18
mount vfat /dev/block/mmcblk0p18 /vendor/firmware/misc ro shortname=lower
wait /dev/block/mmcblk0p20 <-- 追加
mount vfat /dev/block/mmcblk0p20 /vendor/firmware/adsp ro shortname=lower <-- 追加
symlink /vendor/firmware/adsp/q6.b09 /vendor/firmware/q6.b09 <-- 追加、miscをadspへ
symlink /vendor/firmware/adsp/q6.b08 /vendor/firmware/q6.b08 <-- 追加、miscをadspへ
symlink /vendor/firmware/adsp/q6.b07 /vendor/firmware/q6.b07 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b06 /vendor/firmware/q6.b06 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b05 /vendor/firmware/q6.b05 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b04 /vendor/firmware/q6.b04 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b03 /vendor/firmware/q6.b03 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b02 /vendor/firmware/q6.b02 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b01 /vendor/firmware/q6.b01 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.b00 /vendor/firmware/q6.b00 <-- miscをadspへ
symlink /vendor/firmware/adsp/q6.mdt /vendor/firmware/q6.mdt <-- miscをadspへ
symlink /vendor/firmware/misc/modem.b09 /vendor/firmware/modem.b09
※rmt_storageの箇所を修正する
#service rmt_storage /system/bin/rmt_storage /dev/block/mmcblk0p26 /dev/block/mmcblk0p27 /dev/block/mmcblk0p19 <-- 先頭に#
# class core <-- 先頭に#
# user root <-- 先頭に#
service rmt_storage /system/bin/rmt_storage /dev/block/mmcblk0p27 /dev/block/mmcblk0p28 /dev/block/mmcblk0p19 <-- 追加
class core <-- 追加
user root <-- 追加
5)boot.img-ramdisk.gzを再作成する(newramdisk.cpio.gz)
# cd ramdisk
# find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz
6) boot.imgの作成、展開した時のパラメータの値を指定する。
また、cmdlineのhardwareはshooterそのままにしておく。(このhardwareの値が各種設定のファイル名と連動している。shooterkにすると関連するファイル名をすべて書き換えることになる)
# cd ..
# ../mkbootimg-master/mkbootimg --kernel boot.img-zImage \
--ramdisk newramdisk.cpio.gz \
--cmdline "console=ttyHSL0 androidboot.hardware=shooter no_console_suspend=1" \
--base 48000000 \
--pagesize 2048 \
--kernel_offset 00008000 \
--ramdisk_offset 01000000 \
--tags_offset 00000100 \
--output boot.img
これで新しいboot.imgの出来上がり
7)新しいboot.imgへ差し替え
# cd ../install
# cp ../boot/boot.img .
8)/META-INF/com/google/android/updater-script を修正
# vi ./META-INF/com/google/android/updater-script
以下の先頭の2行(EVO3D用のアップデート用チェック)を削除する
assert(getprop("ro.product.device") == "shooter" || getprop("ro.build.product") == "shooter" ・・・・
assert(getprop("ro.bootloader") == "1.04.2000" || getprop("ro.bootloader") == "1 ・・・・
・・・
9)gps.confの書き直し
# vi ./system/etc/gps.conf
NTP_SERVER=jp.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
PHONE_TYPE=CDMA
10)buid.propの書き直し
# vi ./system/build.prop
以下は先頭に#をつけてコメントします。
#gsm.sim.operator.alpha=sprint
#gsm.sim.operator.numeric=310120
#gsm.sim.operator.iso-country=us
#gsm.operator.alpha=sprint
#gsm.operator.numeric=310120
#gsm.operator.iso-country=us
#ro.cdma.home.operator.numeric=310120
#ro.cdma.home.operator.alpha=sprint
以下を追加します。最後に追加します。
gsm.sim.operator.alpha = KDDI
gsm.sim.operator.numeric = 44054
gsm.sim.operator.iso-country = jp
gsm.operator.alpha = KDDI
gsm.operator.numeric = 44054
gsm.operator.iso-country = jp
ro.cdma.home.operator.numeric=44054
ro.cdma.home.operator.alpha=KDDI
ro.ril.oem.ecclist=110,118,119,184110,184118,184119,186110,186118,186119
ro.ril.def.agps.mode=2
ro.ril.fast.dormancy.rule=1
ro.ril.disable.fd.plmn.prefix=23402,23410,23411,23420
ro.ril.enable.sdr=0
11)zipの再作成
# zip -r ../VILLUMINATI-04272014-shooterk.zip *
これで出来上がり、あとは、Goo.imからgappsのバージョン 4.4.2 をダウンロードしてISW12HTにリカバリーモードで一緒にインストールする。
ちなみに8/15リリースのVILLUMINATI-08152014-shooter.zipでは、「システム設定」→「画面とライト」がNumberFormatExceptionで落ちる。一つ前のバージョンを使用してみた。
インストールしたROMのバージョン情報、きちんとベースバンドバージョンも認識している。