CM13.0 for Xperia Z Ultra with Locked Bootloader

2:22 2
 

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

最新ビルド

2016/06/12(日)

cm-13.0-20160605-UNOFFICIAL-togari
cm-13.0-20160605-UNOFFICIAL-togari (ミラー)

togari hijack-ramdisk for CM13.0

前回ビルドからの主な変更点
・イニシャルリリース
・06/05付(6.0.1_r43)のCMソース使用
・NFC(グローバル版の場合)有効化
・内部・外部ストレージ有効化
・自動回転有効化
・Bluetooth有効化
・Doze有効化

既知の不具合
・Wi-Fi
・モバイル通信
・ベースバンド読み込み
・音出力
・カメラ
・FMラジオ

GXの/data領域を拡張するAromaインストーラー型ツール

17:55 7


以前のエントリで、GXはeMMC上に2GBの/dataパーティションが決め打ちされており、残りのスペースが内蔵ストレージとして扱われていることを説明しました。このため、サイズの大きなARTのキャッシュが/dataに溜まることでAndroid5.0以降ではすぐに空き容量低下となってしまうわけですが、XDAでeMMC上のパーティション構成をTWRP上から弄るというページを見つけたので、そのコマンドを自動化して簡単に実行できるようなAromaインストーラー型のツールを作りました。

鈴の音情報局blogさんに協力頂いて、今年の頭には完成していたのですが、忙しさにかまけて公開をすっかり忘れていました。今更GX用のツールを公開したところで旬は逃しているのですが、コマンドの使い方やAromaインストーラーの書き方など全体の手順は将来的にも活用できる内容なので、興味のある方は中身を見て参考にして頂ければ。

使い方と注意点

注意事項はツール実行時に表示されますが、このツールはROMのデータ領域と内蔵ストレージを全て消去して新しいパーティションを作るので、実行前に/dataと/sdcardを完全にバックアップして下さい。2GB, 4GB, 6GB, 8GB, 10GBのオプションから任意のサイズの/dataパーティションを作成してext4でフォーマットします。

ツール実行後の初回起動時に、システムによって内蔵ストレージ内にPicturesなどの空フォルダが自動で作成されますが、このまま使用するとパーミッションの関係でフォルダ内にファイルを作れないという問題が起こるので、ファイラーなどから手動で空フォルダを削除してバックアップを書き戻して下さい

免責

本ツールはGX用にパーティションの開始位置、終了位置を決め打ちしてコマンドを書いているので、他の端末上で実行してハードブリックしても責任は負えません。(パーティション構成を弄るということは、つまりブートローダーやTrimAreaのパーティションを破壊することも可能ということです)
また、必ず事前にバックアップしてから実行して下さい。ファイルを失っても責任は負えません。

もっとも、万が一、GX上で何かしら問題が起こったとしても、flashtoolからpartition-image.sinを焼けば元のパーティション構成に復帰するので、(ブートローダーやTAを破壊しない限り)どうにかはなります。

画像

  


ダウンロード

GX_PartitionResizer


<参考>
[HOW-TO][ROOT][4NOOBS] Resize sdcard0 and internal storage to maximize space for apps | Sony Xperia T, TL, TX, V


2016年5月のGX向けCM13.0リリース

2016年5月のGX向けCM13.0リリース

17:55 0
半年ぶりにGX向けのCM13.0をビルドしました。

昨年末の段階ではCMもまだまだ不安定でしたが、Nのリリースも目前に控えている中で随分と安定してきた印象です。今回は、半年分の更新を取り込んだのと、カメラを有効化しました。相変わらずWi-Fiの通信周りが不安定ですが、これはもう少し時間を掛けて迂回策を考えます。とりあえずは使えるというレベルのリリースです。
色々と細かいバグが多いので、GXもそろそろ寿命かなと感じていますが、限られた時間を使うならもっと新しい端末へ労力を割きたい気もしてきましたね。

今月か来月頭にはソースも公開しようと思っていますので、どなたかやる気のある方にメンテしてもらえればと考えています。

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

To International Readers (Apologies and Announcement)

20:57 3

To international readers,

First of all, thank you for your interests in visiting this blog, and also to encouraging me (and enquerying in a polite manner). I understand some of your eager towards android development especially for hayabusa/TX. I feel sorry to you since you've been patiently waiting for my new builds and I haven't been able to reply you back for a long time.
It's a balance between my interests in android and my regular work; it's been a busy time for me the last few months but I will try to update timely for the coming months.

Since I haven't been to xda forums so long, I'm not sure about the current progress on TX development there. Are they still working on CM13.0 builds for UNLOCKED blue devices? My interests are solely in building CM13.0 for LOCKED hayabusa which requires extra effort so situation is slightly different in here and xda. (It's easy for me to build working CM13.0 for UNLOCKED blue but I don't own the unlockable international devices)

I'm releasing CM13.0 for locked Z/ZR now and I'm hoping to get my hands on building CM13.0 for hayabusa next(since it's been quite long since I last built a rom for it). Please note I'm neither professional in C nor Java so progress may be slow  especially for fixing wi-fi permission issues (because it fundamentally needs kernel-side fix but I am not allowed to on LOCKED devices). I will try to update at least once a month from now on.

My current schedules in priority
・Building CM13.0 for locked hayabusa(fix for camera and wi-fi sudden freeze)
・Building CM13.0 for locked Z Ultra and Z1
・Releasing CM13.0 device tree source for locked fusion3 devices
・(on request)Building CM12.1 for fusion3(yuga,dogo) that fixes the mobile data

again, thanks you for your interests in my blog but please remember I'm doing this for my own purpose and although I'm able to help you in English I don't do so much as my policy is that everyone makes self-help efforts since all the information is given in my blog(in Japanese).

2016年5月のZ・A向けCM13.0リリース

20:56 1

さて、こちらのブログも数ヶ月放置してしまって、その間に頂いた問い合わせや応援などにもお答えできず本当に申し訳ないと思っているのですが、久々にGWで余裕が出来たのでROMを更新しようと思います。

気付いたらGX用のROMを年末から更新していないのでこちらもすぐに取りかかりたいのですが、Zを手に入れてからそちらに掛かりきりになってしまってなかなか触れないでいます。家人に使わせていたC6833を回収したので、Rhineプラットフォームも開発用の実機が揃ってきたのですが、一人で色々と触ろうとして手が回らなくなるパターンですね。

今回は、LBのZとA(ZR)用にCM13.0をビルドしました。以前まとめた古いカメラ用バイナリがAndroid 6.0以降で使えない問題は、CMのメンテナが互換用のライブラリを作ってくれたので修正されています。FMラジオが再び使えないようになっている以外はほぼ常用できるレベルに達していると思います。Aの実機は手元に無いので、おそらく動くだろうという推測でビルドしていますが、もし試される方がいれば結果を教えて下さい。

今後の予定としては、まずは数ヶ月分の更新を取り込んで古い端末用にビルドしたいと思います。更新も月一程度のペースには戻していきたいところです。

今後の予定
・GX向けのLB用CM13.0のビルド(カメラとWi-Fiの修正)
・Z Ultra、Z1向けのLB用CM13.0のビルド
・fusion3用のCM13.0用デバイスツリーの公開
・(要望があれば)fusion3(yuga,dogo)用のCM12.1の通信を修正したものをビルド
・色々と書きたいノウハウはあるものの、IaaS系に関心分野が移りつつあって時間がない
・POBox Plus等の移植もしたいが、わざわざ移植するほど魅力的に感じないので難しいかも


詳しいリリース内容はZとAのCM13.0用サポートページで確認ください。
CM13.0 for Xperia A (ZR) with Locked Bootloader

CM13.0 for Xperia A (ZR) with Locked Bootloader

20:56 14
Xperia A用のCM13.0のサポートページです。

最新ビルド

2016/05/08(日)

cm-13.0-20160508-UNOFFICIAL-dogo
cm-13.0-20160508-UNOFFICIAL-dogo (ミラー)

dogo hijack-ramdisk for CM13.0

前回ビルドからの主な変更点
・イニシャルリリース
・05/06付(6.0.1_r43)のCMソース使用
・実機が手元にないので、動作報告をお願いします

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

過去の更新履歴

2016/02/06(土)

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

Xperiaのオープンソース開発におけるカメラ問題

19:05 6

Xperia向けのCM13で一番難航しているのがカメラ機能であることは前の記事で触れましたが、Cyanogenmodのnightly公式配信が中々始まらないのもこのためです。

そのうち改善されていくのでしょうが、実はXperiaのカスタムROMにおけるカメラ問題は根が深く、これをまとめている記事も見かけないので一度整理しておこうと思います。


自社技術保護に熱心なSoMC

SonyがXperiaのカメラ性能に自信を持っていることはプロモーションを見てもよく分かりますが、Sonyは技術保護のためにカメラ機能に端末固有のDRMキーを要求するようにしています。スマートフォンメーカーの中では一眼レフやミラーレス機も真面目に作っているだけあって、(実際に現像された写真の見栄えが良いかは別として、)暗所性能や色のりは評価できると思いますが、そういう画像処理(BIONZ for mobile)を担当するバイナリやライブラリを他端末に移植して外部から呼び出されないようにするための処置ですね。




この動きはZ1世代のRhineプラットフォームから起こっていて、当時はカスタムROMを焼くためにブートローダーをアンロックしたらカメラが使えなくなったと散々ユーザーからSoMCの公式フォーラムに文句が出ました。
具体的な症状は、プレビューまではできるがフォーカスしようとするとカメラが落ちるというもので、Z1のグローバルモデルの4.2.2でこの問題が起こっていました。さすがに不評だったためかZ1が4.3にアップグレードされたときに、カメラにDRMキーを要求しないようにSoMCが仕様を変更したのですが、4.4以降ではこの仕様が元に戻されています。

この部分の処理はエラーログを追うとよく分かります。

DRMキーをTAパーティションから取得するCredentialManagerが(ここではソケットの作成で)エラーを起こす
E/CredMgrDinLib(1676): SendAndReceive socket failed
E/CredMgrDinLib(1676): SendAndReceive() ended. result 1 - CREDMGR_RESULT_GENERIC_ERROR

CredentialManagerとカメラをつなぐcacaoプロセスが、DRMキーを受け取れないためにchokoballの作成に失敗する
E/cacao(1676): 1137370710 cacao_chokoball.cpp               (3704) 12370 E [CKB] ckb preCompile fail. keymgr credmgr generic error.
W/cacao(1676): 1137370745 cacao_chokoball.cpp               (3713) 12370 W [CKB] Post process preLoad(0xffffff91)
E/cacao(1676): 1134871177 cacao_chokoball.cpp                (852) 12373 E [CKB] ckb create fail.
E/cacao(1676): 1134871243 cacao_chokoball.cpp                (893) 12373 E [CKB] ckb is not ready.

cacaoプロセスが開始できないので、カメラ機能を司るcaladbolgがフォーカス時にエラーを吐く
E/caladbolg(1676): 1134871299 excal_focus_detector.cpp           (177) 12372 E [EXC] [FocusDetector  ] Cacao start Fail <ffffff90>
E/caladbolg(1676): 1134953273 excal_idt_ctrl.cpp                 (688) 12371 E [EXC] [IdtCtrl        ] Received error event from FocusDetector
E/caladbolg(1676): 1134953307 excal_idt_ctrl.cpp                 (692) 12371 E [EXC] [IdtCtrl        ] Call returnBuffer for HwFocusStats 0xb7b54c98
カカオやらチョコボールやらカラドボルグやらSoMCの開発者はプロセスのネーミングがかわいいですね。


オープンソース開発における問題

SoMCが技術保護に熱心なのは分かりましたが、こうなると困るのはカスタムROMを作成する一般開発者です。
カスタムROMを焼くためにブートローダーをアンロックする以上、DRMキーは失われて使い物にならないカメラが残ります。この仕様はZ2、Z3のShinanoプラットフォームにも引き継がれたので、長らくCMのメンテナの間で問題になっていました。

CM12.1までは、その場しのぎの処置として、DRMキーが要求されないZ1のプロプライエタリバイナリとそれに合うようにカーネルを変更してカメラが使えるように工夫されていましたが、CM13でカメラ起動に求められる関数が大きく変更されると、4.3のバイナリでは対応できなくなり、問題が表面化したというわけです。

今のところ、CMのメンテナとしては、どのみちカーネルバージョンを3.10に上げれば、3.4カーネル向けのバイナリとカーネルの変更は使えなくなるので、いっそのこと小手先のハックはやめて、SoMCが開発中の3.10向けのAOSP用カメラバイナリが提供されるのを待とうという結論に達したようです。

CMのメンテナが3.10カーネルありきの方向で納得してしまうと困るのは、カーネルを変更できないLB用ROMを作っている私やZ以前のROMを作っている開発者です。私が1年半前にZ1f用のCMをビルドしたときはTAパーティションからDRMキーを読み出すDRMサービスの修正で躓いたのですが、今ならこちらは解決できるとして、カメラ起動に足りない関数を自前で用意してエラーを追い切るほどの技量はないのでどうしたものかと考えています。

XperiaはSony Ericsson時代からのオープンソース開発への積極性とSonyによる買収後の自社技術保護のクローズ性が両立しているので、なんとも煮え切らずに歯がゆい思いです。もっとも、FreeXperiaのJerpeleaが入社して以降は、先述のSonyの技術を除いたAOSP向けカメラフレームワークの開発や3.10カーネルの作成などオープンソース開発へのやる気も見せています。惜しむらくはそういった活動の恩恵を受けられるのがブートローダーをアンロックしたモデルだけということです。なかなか思うようにはいかないものです。


白黒付けがたいスマートフォンのオープンソース開発

余談ですが、XDAでは上記の技術保護の仕組みを破るmodが公開されています。しかし、Cyanogenmodの公式配信に真っ黒なクラックを載せるわけにはいかないので、アンオフィシャルビルドで使えれば良い程度の認識です。もっとも、LGの署名脆弱性を突いてカーネルに任意の有効な署名をできるようにしたOpen BumpがCM公式で採用されているところを見ると、線引きなど曖昧なものです。メーカーとしてはこういったユーザーの趣味的な開発を不正な改造行為と切って捨てることは容易いですが、コアなファンのいないビジネスは面白みに欠けるのではないかとも思いますし、白黒付けがたい問題ではあります。

<参考>
Xperia Z1、現時点ではブートローダーをアンロックするカメラが機能しなくなる、Sony Mobileが公式サイトで注意を呼びかけ | juggly.cn

BUG!Camera broken after bootloader unlock! - Support forum

[dev][cam][improvements & auto-focus dev… | Sony Xperia Z1

Change I8a63f407: msm: camera: Use Sony Rhine camera stack from 4.3 | review.cyanogenmod Code Review

Change Ic1b2696d: Use rhine 4.3 camera stack | review.cyanogenmod Code Review

Change Ie15c02cc: Remove stock camera stuff | review.cyanogenmod Code Review

Experimental AOSP camera available for experienced developers – Developer World

GitHub - sonyxperiadev/camera at aosp/LA.BF64.1.2.2_rb4.7

Official CM11/CM12 builds now possible thanks to Open Bump : LGG3

Sony credentials restore after unlocking the… | Sony Xperia Z5