CyanogenMod 4.4.2のソースを入手してビルドする
4.4.4でビルドすると、機内モード解除した際、3GのままになりLTEに移行しない現象が発生d2att版の4.4.2では、この現象が出ていないので、4.4.2のビルド環境を作って試してみる。1)4.4.2のダウンロードrepo init で 以下のコマンドでダウンロードする。$ repo init -u git://github.com/CyanogenMod/android.git -b refs/tags/cm-11.0-XNPH22R-bacon-03d77315eaしかし、repo syncしてもすべてが4.4.2にならない。AOSPのライブラリだけだった。default.xmlをみてもすべて4.4.2の指定になっていない。しかたないので、repo sync後、git単位で4.4.2に変更する。戻すコマンドはこれ。$ git checkout cm-11.0-XNPH22R-bacon-03d77315eaまずは .git があるディレクトリを洗い出し、sed, awkなど用いてgitを実行するスクリプトを作成する$ find . -name .git -type f -printf "$PWD/%p\n" | sed -e "s/.git//g" | awk '{printf("cd %s\ngit checkout cm-11.0-XNPH22R-bacon-03d77315ea \n\n", $0)}' > git_442.sh中身は、こんな感じ。この中に不要なディレクトリがあったらエディタで削除する$ cat git_442.shcd /mnt/nfs/cm-11-442/abi/cpp/git checkout cm-11.0-XNPH22R-bacon-03d77315eacd /mnt/nfs/cm-11-442/art/git checkout cm-11.0-XNPH22R-bacon-03d77315eacd /mnt/nfs/cm-11-442/dalvik/git checkout cm-11.0-XNPH22R-bacon-03d77315eacd /mnt/nfs/cm-11-442/tools/external/gradle/・・・実行すると以下のエラーメッセージが出る箇所がある。これは、AOSPからひっぱってきているソースなので無視する。error: pathspec 'cm-11.0-XNPH22R-bacon-03d77315ea' did not match any file(s) known to git.参考)ビルド時のバージョンが入っている箇所build/core/version_id.mkbuild/core/version_defaults.mkビルドした際のバージョンメッセージが 4.4.2 になっているか確認しておくビルド時メモ)メモ1)Term.apkに必要なランタイムが足りないエラーvendor/cm/get-prebuils を実行してもlibjackpal-androidterm4.soがダウンロードされない。(libjackpal-androidterm4.so ... Term.apkに必要なランタイム)他のビルドバージョンからコピーする例)$ cp ../cm-10.2/vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so vendor/cm/proprietary/lib/armeabi/メモ2)overlayファイルでコンパイルエラーdevice/samsung/qcom-common/overlay/frameworks/base/core/res/res/values/arrays.xml:25: error: Error: No resource found that matches the given name (at '^index_1' with value '@string/reboot_soft').make: *** [/mnt/nfs/cm-11-442/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk] Error 1make: *** Deleting file `/mnt/nfs/cm-11-442/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk'overlayのarray.xmlは削除、リブート時のメニューの定義が記載されているだけなので不要。メモ3)d2lteRIL.javaのコンパイルエラー4.4.4では正常に終わるが、4.4.2ではコンパイルエラーになる。このd2lteRILクラスを使っていない(クォルコムを使用)のでファイルd2lteRIL.javaは削除。BoardConfig.mk も修正しておく。## RIL# BOARD_RIL_CLASS := ../../../device/samsung/d2dcm/ril