Xperia Z(SO-02E)向けのCM13.0リリース(追記あり)

0:18 10

SO-02E用のCM12.1が思いの外順調にビルドできたので、その勢いでCM13.0をビルドしました。

やはりhijack-ramdiskでSELinuxを抜けるのに一苦労でしたが、GXでノウハウを積んでいたので今回はずっと気持ちが楽でしたね。また、Zのビルド過程で新しく理解した点もGXの次回ビルドに反映できるかと思います。

データ通信と通話は相変わらず未確認です。CM12.1の方で報告いただきましたが、自分で状況を再現できないと修正しようがないので、SIMを挿した状態の起動直後のlogを取れる方がいたら提供いただけると幸いです。

音出力(+それに伴うプチフリ)とカメラが使えないので常用には向きませんが、まずは初期ビルドを公開します。もっとも、ZのCM13.0はUBL用のアンオフィシャルビルドが最近出たばかりなので、ブートローダーがロックされた端末向けのロムをこの段階で出せるのはかなり良い方かと思います。

ZがAndroid6.0の壁を越えることが出来たので、まずは一安心ですね。

<2016/01/17追記>
初期ビルドで取り切れなかったバグを修正して更新しました。
すぐに修正できるなら一日くらいリリースを待てば良かったですが、何事も結果論、出来ることは早めにしておくに限りますね。

一緒にFMラジオも有効化しました。CM12.1では高機能なCAF版を使っていましたが、CM13からサポートされなくなったのでGoogle製に変更されています。(こちらはUBL用のROMにも載っていないので、私のROMの利点です。)



<2016/01/20追記>
SIMを読み込まないバグを修正しました。
通話は試していませんが、これで主なバグはカメラだけになりました!

<2016/01/21追記>
通話についても動作報告頂けました。
カメラは私だけではどうにもならないので、CMのメンテナが修正案を出すまでお預けです。
(実際、CM13のアンオフィシャルビルドが出ているyuga, huashan, taoshan, 開発中のrhine, shinanoと私が知る限りでは、Xperia系のカメラは今のところ全滅です。 )

詳しいリリース内容はZのCM13.0用サポートページで確認ください。

CM13.0 for Xperia Z with Locked Bootloader

0:17 6
  

Xperia Z用のCM13.0のサポートページです。

最新ビルド

2016/05/08(日)

cm-13.0-20160507-UNOFFICIAL-yuga
cm-13.0-20160507-UNOFFICIAL-yuga (ミラー)

yuga hijack-ramdisk for CM13.0

前回ビルドからの主な変更点
・05/06付(6.0.1_r43)のCMソース使用
・カメラを修正
・FMラジオをcaf製に戻したが再度使用できず

既知の不具合
・FMラジオ
・ガラ機能

過去の更新履歴

2016/02/06(土)

cm-13.0-20160206-UNOFFICIAL-yuga (未リリース)

2016/01/17(日)


・01/13付(6.0.1_r10)のCMソース使用
・音出力を修正
・GPSを修正
・DRMサービスを修正
・FMラジオ有効化
・SIMを読み込まないバグ修正

2016/01/15(金)

cm-13.0-20160115-UNOFFICIAL-yuga
cm-13.0-20160115-UNOFFICIAL-yuga (ミラー)

・イニシャルリリース
・01/13付(6.0.1_r10)のCMソース使用
・sepolicyのバージョンをLollipopレベルまでダウングレード
・内蔵ストレージ・SDカード対応
・Sony製メディアアプリのインストール対応

Xperia Z(SO-02E)向けのCM12.1リリース

1:55 6

今後の目標として挙げたからにはまずは有言実行ということで、ブートローダーがロックされたXperia Z(SO-02E)向けのCM12.1をビルドしました。

既にSomcのストックROMがAndroid 5.1.1のところにCM12.1をビルドしてもやや面白みに欠けますが、何事も下準備が大切なので、CM13.0へ向けてストックカーネルの可用性を把握するのと自分のウォームアップを兼ねて小手調べと言ったところです。

さすがに新しいカーネルは対応が楽で良いですね。ディスプレイHALやメディアHALは無加工で通りましたし、GXで最大の問題であるUID-basedルーティングのコミットも取り込まれているので、開発へのポテンシャルを感じさせます。

もっとも、CMのデバイスツリーはなまじハードウェアが良いためか、mako(Nexus 4)から色々と取り込まれているので、これをストックカーネル向けに変更してバグを取るのは逆に手間がかかりました。

私が確認した範囲では全ての機能が使えるはずですが、作業中にSIMスロットのピンを折ってしまったのでデータ通信は確認できていません。修理代もバカになりませんしどうしたものかと考えていますが、試される方がいれば動作報告いただければ。

詳しい更新内容はZのCM12.1用サポートページで確認ください。

CM12.1 for Xperia Z with Locked Bootloader

1:50 2
 

 


Xperia Z用のCM12.1のサポートページです。

最新ビルド


2016/01/12(火)

cm-12.1-20160111-UNOFFICIAL-yuga
cm-12.1-20160111-UNOFFICIAL-yuga (ミラー)

yuga hijack-ramdisk for CM12.1

前回ビルドからの主な変更点
・01/09付(5.1.1_r33)のCMソースに更新
・hijack-ramdisk作成
・ベースバンドを掴むように
・音出力を修正
・GPSを修正
・各種センサーを修正
・FMを有効化
・CMHardware無効化

既知の不具合
・ガラ機能
・データ通信と通話は確認できていません

hijack-ramdisk考案の経緯

10:57 6

前回の投稿でXperiaはユーザーコミュニティが小さいということを書きましたが、GXの延命で重宝しているhijack-ramdiskにしても突然考案されたわけではなく、その手法自体は他の端末で使われていたものが元になっています。

Bootstrapの手法

オリジナルを辿れば、アイデアの元はClockworkMod Recoveryの開発で有名なKoushが2010年にMotorola Droid X用に作成した"Bootstrap"でしょう。hijack-ramdiskはシェルスクリプトですが、Bootstrapはカーネルモジュール(訂正:ただのバイナリでした)として作られています。処理の内容はほとんど同じで、/systemをカスタムROMで書き換えてしまう点も同じです。

KoushのBootstrapを更に洗練させた手法が、Hashcodeの"Safestrap"です。Safestrapは単体のmodというよりはTWRPのフォークとなっていて、XZDualRecoveryのような形でシステム起動中にプロセスをフックしてリカバリを起動します。そこから内蔵ストレージ内にパーティションを作成することで擬似的なマルチブートを可能にしています。ROMの初期イメージが提供されないような復旧の難しい端末上で、/systemを書き換えることなく安全にカスタムROMを使える点が"Safe"ということなんですね。

Hashcodeは開発者として私が目指したい姿でもあります。彼はブートローダーがロックされた多くのMotorolaデバイス向けにSafestrapと専用のカスタムROMを作成していますし、近年はAmazonのKindle Fire HD/HDXにもSafestrapが使われていました。(もっともKindleはLittle Kernelブートローダーの脆弱性が見つかって以降はアンロック出来るようになりましたが)

不遇なXperia?

常々疑問に思っているのは、三星、LG、Motoなどの端末は割と堅めのセキュリティがある割に、(例えばGalaxyはカーネルモジュールも署名されていると聞きます)それを回避する手法が生み出される一方、Xperiaはブートローダーの欠陥など致命的な脆弱性が見つかってもなかなか革新的な進展がありません。これは、S1BootをはじめSomcの実装が堅牢なのか、単に解析できるだけの人材がコミュニティにいないのか、よく分からないところです。(現に私のような弱小しかhijack-ramdiskを活用していませんし、Xperiaにはもっと開発の余地があると思います。)

私もhijack-ramdiskを洗練させたいと思っているのですが、何も無いところから進展させるのは難しいですね。それこそやる気を出せばせめてHashcodeのSafestrapを移植できそうなものですが、それをする人がいないのが辛いところです。

<参考>



新年の抱負と今後の展望

10:33 2


皆様、明けましておめでとうございます。

私がXperiaを弄るようになって既に3年以上が過ぎましたが、昨年はブログも立ち上げたことですし、これからも細く長く開発を続けて行ければ良いなと思う新年の朝です。
今後の方向性を明確にする意味でも、これからの展望を書き残しておきたいと思います。

なぜ活動するのか

私がAndroid界隈の片隅で活動を続ける最大の理由は、自分の開発知識・技量を高めたいという知的欲求から来ているのですが、このブログの副次的な目標として、自分の勉強の過程でビルドされたROMをたくさん取りそろえたいというのがあります。
それも、BLアンロックできる国際版ではなく、(今のところ)自分しか提供できないであろうBLロックされた国内モデル向けのROMやModを扱った、国内Xperia向けのワンストップサービス的な老舗を目指したいと思っています。
(というのも、私よりよほど経験のある方達が三星やHTCの国内モデルを色々と扱っているのを見ると、Xperia(開発)のファンベースとコミュニティの小ささをどうにかしたいという思いも沸くからです)

不安要素

もっとも、そういう思いと同時に、ファンベースのAndroid開発もそう長くはないという感覚もあります。AOSPが洗練されてセキュリティが固められると共に、サードのメーカーも締め付けを厳しくするので、一般人が口を出す余地がどんどん無くなって自作PC熱が冷めるのと似たような気分になりますね。
そもそも、Somc自体がいつまでもつかも分からないし、最近はコアなファンをどんどん切り離して大衆化しているので、アーリーアドプターにも愛想を尽かされた味気ないコモディティになっていくのでしょう。

私自身も本業の方が忙しくなってきているので、昔のような知識不足を時間と労力で補うやり方は効かなくなってきました。私のリソースの限界やAndroid開発界隈の熱の冷め方を見るに、それほど長くはもたないような気もします。

Android(とXperia)黎明期に精力的に活動されていた方々の今を見ていると、一番輝いていた時期はさぞ楽しかっただろうと羨ましくもありますね。

今後の展望

まあ、あまり不透明な先の話をしても仕方が無いので、今は深く考えず目下の開発を楽しみたいと思います。
GXでMarshmallowに追随するのも辛くなってきましたが、次はZとZ1を順番に攻略していきます。
Z3シリーズへの要望もあることは承知していますが、やはりメインで使っている端末は開発には使いにくいのです。もう一台開発用に揃えるか、来たるS820搭載Xperiaの購入後に引退させてから、となりそうですね。もちろん、それまで私のモチベーションとXperiaのファンベースが維持されていればの話ですが。

ともかく、今しばらくは細かいことは考えずに楽しめるだけ楽しんで知識欲を満たしたいと思います。


happy new year, happy development!