Unofficial port of AOKP for Nexus7 (2013) LTE

AOKP の rezorg/deb 用がなかったので自分で port してみました。JLS36G ベースです。

ビルド環境は Gentoo (amd64) と、 Nexus7 実機です。

ソース

コチラに置きました。
github どころか git コマンドも初めてでうまくいっているかわからないんだけど…。

How to Build

repo って何?とか git って何って人はその辺から調べてもらうとして…

AOKP ソースの取得

repo コマンドで AOKP のソースをとってきます。このとき flo ( Wi-Fi モデル) と asus をとってくるのがポイント。

$ mkdir ~/src/mydroid
$ cd ~/src/mydroid
$ repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr2 -g all,-notdefault,flo,asus
deb 用のソースの取得

その後、拙作のソースをとってきます。

$ cd ~/src/mydroid/device/asus/
$ git clone https://github.com/koron393/device_asus_deb.git deb
$ cd ~/src/mydroid/vendor/
$ rm -rf aokp
$ git clone https://github.com/koron393/vendor_aokp.git aokp

今回は元々ある vendor/aokp を削除して対応していますが、 vendor/aokp/ 以下は vendor/aokp/product/deb.mk と vendor/overlay/deb が必要なだけなので、それを取り出してコピーしてやるだけでもいいかも。

追記
もしくは local_manifests ディレクトリにこんな感じで書くといいのかな?
$ cd ~/src/mydroid
$ cat ./.repo/local_manifests/aokp_deb.xml
<manifest>
  <remote name="github"
           fetch="git://github.com/" />
  <remove-project name="AOKP/vendor_aokp" />
  <project path="device/asus/deb" name="koron393/device_asus_deb" remote="github" revision="master" />
  <project path="vendor/aokp" name="koron393/vendor_aokp" remote="github" revision="jb-mr2" />
</manifest>
プロプライエタリなファイルの取得

今度はプロプライエタリなバイナリ達をとってきます。ここにあります。


これらの tgz なファイルはソースツリーのルート (今回は ~/src/mydroid ) においてあげます。
その後解凍して、

$ for i in *.tgz
> do
> tar zxf $i
> done


できた sh ファイルを実行します。

$ for i in *.sh
> do 
> ./${i}
> done


次に実機から必要なファイルを吸い出します。実機と開発機を接続し (adb が動くものとします)

$ cd ~/src/mydroid/device/asus/deb/
$ ./extract-files.sh


必要なファイルが adb pull でどんどん吸い出されていくはずです。

いよいよ make

JDK とかもろもろ必要なツールさえそろっていれば、こんな感じで動くはずです。

$ cd ~/src/mydroid/
$ . build/envsetup.sh
$ breakfast deb
$ brunch deb


結構時間かかります。調べ物をしたり仮眠をとるなりして待ちましょう。

for Gentoo users

ちなみに Gentoo な人は

$ eselect java-vm set user sun-jdk-1.6

もしくは

$ sudo eselect java-vm set system sun-jdk-1.6

して、 build/core/config.mk に以下のパッチを当てないと動きだしませんのでご注意。

diff --git a/core/config.mk b/core/config.mk
index 184a17c..1a2003b 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -344,10 +344,10 @@ ifeq ($(BUILD_OS),darwin)
 HOST_JDK_TOOLS_JAR :=
 else
 HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh)
-ifeq ($(wildcard $(HOST_JDK_TOOLS_JAR)),)
-$(error Error: could not find jdk tools.jar, please install JDK6, \
-    which you can download from java.sun.com)
-endif
+##ifeq ($(wildcard $(HOST_JDK_TOOLS_JAR)),)
+##$(error Error: could not find jdk tools.jar, please install JDK6, \
+##    which you can download from java.sun.com)
+##endif
 endif

 # Is the host JDK 64-bit version?

スクリーンショットとか


ロック画面と AOKP 壁紙



ビルド情報とか



設定画面

成果物

こちらに置いておきます。


adb でデフォルト root だとゲームが…!というぱずどらーな方は以下も有用です。こちらの boot.img をフラッシュするなりして、そんでもって su バイナリを消すなりすればパズドラも動くことを確認しました。

謝辞

ソースの扱いは AOSP/CM/AOKP の扱いに準じます。

今回の port には kelvie氏のCM10.2 port と AOKP-team の AOKP flo port をだいぶ参考に (というかほぼ写し) させていただきました。

感謝いたします。

サポート等

当方カーネル構築等の多少のスキルしか持ちあわせておらず、コードを読むスキルを持ち合わせていないため、基本的にいたしません…というか出来ないと思って下さい。が、バグレポートは歓迎いたします。ここに書くよりは Twitter の方が反応しやすいです。

ところで、誰か XDA に書いてきてくれるとかいう人はいませんかね…(笑)

つーか、 deb 用が公開されないのは実は flo 用で全部動くとかいうオチじゃ…ないよね?(´・ω・`)
# カーネル以外試してません…