ArchLinuxでAndroidビルド

久々にAndroidビルドの需要が自分の中で高まった。何年も前にP-01D向けCyanogenmodのビルドにチャレンジした事はあるが、その時のソースコードは人の作ったものだったので、今回は自分でやってみたい。自分で試行錯誤したい。 大抵Ubuntu向け記事ばかりだが(そもそも公式の文書がUbuntu向け)急にUbuntuホストを用意するのも面倒。手元のArchLinuxでそのままやりたい。というわけで、一先ずソース修正の類は何もせず、Pixel用でビルドしてみる。 それっぽいパッケージ群のインストール。必要なもののみかどうかは自信無い。

$ yay -S base-devel
$ yay -S git gperf zip curl zlib lib32-glibc ccache mesa libxslt unzip jdk8-openjdk rsync
$ yay -S multilib-devel # lib32-ncurses5-compat-libsに必要
$ yay -S lib32-ncurses5-compat-libs # 実際必要かどうかは不明
$ yay -S ncurses5-compat-libs
$ yay -S python2

repoコマンドのインストール、pythonリンク作成、git初期設定。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ ln -s /usr/bin/python2 ~/bin/python
$ ln -s /usr/bin/python2-config ~/bin/python-config
$ git config --global user.email "hoge@fuga.com"
$ git config --global user.name "hoge"

Androidソースコードの入手。バージョンは8.0.0の最新にしてみる。

$ mkdir ~/git/aosp/android-8.0.0_r36
$ cd ~/git/aosp/android-8.0.0_r36
$ repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r36 # すぐ終わる
$ repo sync # めっちゃかかる

ビルド。

$ source build/envsetup.sh
$ lunch # 好きなデバイスを選択。今回はsailfish向けにしていた
$ make -j2

エラー出るので修正。pythonが無いよって言うけど、まさかパス決め打ちじゃないよね…?

/bin/bash: prebuilts/clang/host/linux-x86/clang-3859424/bin/clang++: /usr/bin/python: bad interpreter: No such file or directory
$ cd /usr/bin
$ sudo ln -s /usr/bin/python2 python
$ sudo ln -s /usr/bin/python2-config python-config

Jack serverと通信できないみたいなエラーが出るのでぐぐって対応。

Communiction error with Jack server (52). Try 'jack-diagnose'
$ ./prebuilts/sdk/tools/jack-admin stop-server
Stopping background server
No Jack server running. Try 'jack-admin start-server'
$ ./prebuilts/sdk/tools/jack-admin start-server

メモリがいっぱいになる件。

Out of memory error (version 1.3-rc6 'Douarn' (4418000 22a11d4b264ae70e366aed3025ef47362d1522bb
by android-jack-team@google.com)).
Java heap space.   
Try increasing heap size with java option '-Xmx<size>'.
$ ./prebuilts/sdk/tools/jack-admin stop-server
Stopping background server
$ ./prebuilts/sdk/tools/jack-admin cleanup-server
$ export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
$ ./prebuilts/sdk/tools/jack-admin start-server

あとはビルドが終わるまでひたすら待ち。Pixelデバイスが手元に無いので動作確認すら取れない。どうしよう…買うか…?

SO-02Gを初期化しました

買った当初はKitKatだったのだけど、無事Lolipopのアップデートが降ってきたので、アップデートしたのでした。

 

アップデートした時に、一度初期化しようか迷ったんだけど、面倒だったのでスルーしちゃった。本当は初期化して最初からやり直したかったんだけど、某LINEとかいうクソアプリのトーク履歴のお話とかで、やり直すのが面倒だったのですよ。

 

で、まぁなんだか動作も不安定になってきたし、電池の減りも素早くなってきたので、一発初期化して様子見るか~って感じで、今日やりました。

 

特に難しいことはない、今日やったので、これから様子を見るという事で。

SO-02Gに貼っているガラスフィルムを交換した

メインで使っているケータイ、SO-02Gに使っているガラスフィルムがバッキバキになっていたので交換しました。マジにバッキバキです。

 

・表面

上部スピーカーの脇が浮いている

上部スピーカーの脇が浮いている

 

・背面

バッキバキである

バッキバキである

 

角なんてこんな状態。

ボロボロという言葉が似つかわしい

ボロボロという言葉が似つかわしい

 

 

さて、今回購入したガラスフィルムはこちら。

今回購入したもの

今回購入したもの

 

表裏1枚ずつ買いました。

 

パカっと開いた状態

パカっと開いた状態

右側にフィルム、左下にアルコールシートやスクレーパーなど、左上の空間には何も無い。

普通の内容物だ

普通の内容物だ(LiLiEと書いてある白い紙がスクレーパー)

 

ちなみに、フィルムが収まっているケース(?)の中には、

無駄にメーカーロゴシールが

無駄にメーカーロゴシールが

何に使えと言うのか…

 

 

貼り直しました(表面)

貼り直しました(表面)

貼り直しました(背面)

貼り直しました(背面)

 

ちなみに、非常に見えにくいですが、ズレと浮きがあります。

位置ズレ、少しの浮き

位置ズレ、少しの浮き

 

この写真では上方向(USB端子側)に貼付け位置がズレているように見えますが、そもそも穴の位置がズレていて、穴とカメラ・LEDランプの位置を揃えてしまうと、下側(電源ボタン側)にフィルムがはみ出してしまいます。なので少しずらして貼り付けました。

また、なんだかほんの少しだけ穴のところが浮いています。写真では非常にわかりにくいですが、実際に見ると結構気になりますね。ちなみに、背面フィルムはこうですが、表面はズレも浮きも全く無しに貼り付けられました。

 

ちなみに、SO-02G本体付属のクレードルには普通に入ります。薄さの為せる技って感じですね。入ってほんとに良かった。

 

 

僕が買った時はどちらも798JPYでしたが、在庫が切れて販売主が変わったのか、少し値上がりしています。レビューにもあるように、あまり強くはないみたいなので、複数枚買うのが良いでしょう。