docomo Galaxy S II (SC-02C)用に Cyanogenmod9 をビルドしてみました。
海外版 Galaxy S II 用の Cyanogenmod 9 はこちらからダウンロードできます。
META-INF/com/google/android/updater-script
の先頭付近にて SC-02C に対する許可を与えればインストールができ、
ほとんどの機能を使うことができます。
しかし、docomo の端末に最適化されたものではないため、
- 電池のもちが悪い
- センサが正しくない値を返す
そこで、docomo の端末で快適に使えるようビルドしてみました。
ここではそのビルド方法をまとめます。
変更したのは主に下記の通りです
- docomo端末用の変更を kernel に追加する(こちらで入手できる2.6系のカーネルを参考に)
- センサのライブラリを日本の端末のものを利用するよう変更
- その他(APN設定、フォント、エリアメール対応など)
なお、この方法では端末内のバイナリを利用するため、
ビルド済みのものを配布することはしません。
端末には、最新の公式android 4.0.3 (IML74K.OMLPG) をあらかじめ入れておきます。
また、64bit の Ubuntu を、androidをビルドできるよう設定しておきます(本ページでは省略)。
adb コマンドが使える必要もあります。
さらに、Ubuntu からadbコマンドで端末の中身を取り出せるよう、
/etc/udev/rules.d/51-android.rules に
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8:685e", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
と記述しておきます。
以上の準備のもと、以下の様に作業を進めます。
mkdir ~/cm9work
cd ~/cm9work
repo init -u git://github.com/CyanogenMod/android.git -b ics
ここで
gedit .repo/local_manifest.xml
を起動し、下記の内容を記述して保存します。
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="bitbucket" fetch="https://bitbucket.org/" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" />
<project name="teamhacksung/buildscripts" path="buildscripts" remote="github" />
<project name="neuralassembly/cm9_device_samsung_sc02c" path="device/samsung/sc02c" remote="bitbucket" revision="master" />
<project name="neuralassembly/cm9_kernel_samsung_smdk4210jp" path="kernel/samsung/smdk4210jp" remote="bitbucket" revision="master" />
</manifest>
そして、下記の様にダウンロードを開始します。
repo sync -j16
ダウンロードが終了したら、下記の様にproprietaryなバイナリの準備を行います。
海外端末のバイナリは NIGHTLY ビルドから、 SC-02C のバイナリは adb により端末から吸い出します。
あらかじめ Ubuntu に IML74K.OMLPG な端末を接続し、adb で認識できるようにしてから
作業を進めます。
mkdir device/samsung/sc02c/cm9
cd device/samsung/sc02c/cm9
wget http://download.cyanogenmod.com/get/jenkins/4513/cm-9-20120717-NIGHTLY-galaxys2.zip
(その時点で入手できる最新のものを利用するのが良いと思います)
unzip cm-9-20120717-NIGHTLY-galaxys2.zip
cd ..
./extract-files.sh
しばらく待つとバイナリの準備は完了します。
そこで、下記の様にビルドを開始します。
cd ~/cm9work
./buildscripts/samsung/build.sh sc02c
ビルド完了したときにできるファイルは
out/target/product/sc02c/cm-9-xxxxxxxx-UNOFFICIAL-sc02c.zip
です。これを clockworkmod リカバリで焼くことになるので、
あらかじめ内部SDカード領域にコピーしておきます。
また、gapps-ics-20120429-signed.zip もどこかで見つけて
内部SDカード領域にコピーしておきます。
ここから先は実際に焼く作業になります。失敗した場合の
戻し方を予め調べてから実行してください。
まず、 Up2_SU_CWM_KJ4-2.tar をどこかで見つけ、
Odin v.3.04 でPDAにセットして焼きます。
(ここでは clockworkmod リカバリを起動したいだけなので、
色々なやり方があると思います)
この時点で clockworkmod リカバリ しか起動しなくなるので、
Volume Up + HOME + 電源長押しで clockworkmod リカバリ を起動します。
このリカバリの決定ボタンはホームボタンであることに注意します。
wipe data/factory reset
install zip from sdcard→chooze zip from internal sdcard
の順で実行し、cm-9-xxxxxxxx-UNOFFICIAL-sc02c.zip を
インストールすると、リカバリも含めて新しくなります。
ここで下記のように一旦リカバリを終了します。
Go Back→power off
そして再びVolume Up + HOME + 電源長押しで最新の clockworkmod リカバリを起動します。
この最新のリカバリで下記の順で選択し、もう一度同じファイルを焼きます。
今度は決定は電源ボタンなので注意。
install zip from sdcard→chooze zip from internal sdcard
終わったら gapps-ics-20120429-signed.zip も焼きます。
終わったら
Go Back→reboot system now
で再起動、でおしまいです。
まあ本当は JCROM が使える docomo 端末を増やしたかった
だけなんですけどね。
[備考]
海外モデルの場合、
https://github.com/CyanogenMod/android_kernel_samsung_smdk4210
を kernel/samsung/smdk4210 に、
https://github.com/CyanogenMod/android_device_samsung_galaxys2
を device/samsung/galaxys2
にセットし、ターゲットは galaxys2 を指定します。
0 件のコメント:
コメントを投稿