2012年9月15日土曜日

Nexus7にParanoid Andorid 2.12をインストール

Paranoid Android 2.12がリリースされたのでアップデートしました。今回は新バージョンの上書きインストール(所謂Dirty flash)ではなく、CWMリカバリからシステムパーティションだけフォーマットしてからインストールしてみました。sdcardフォルダの中身だけ残して初期化とかしたいんですが、まだ正しいやり方を見つけられていません。

さて、気になる更新内容ですが、Paranoid PreferencesがバージョンアップしてSuperUser権限をほとんど要求しなくなり、動作が早くなったそうです。確かに以前よりもきびきびしている印象です。残念ですが、以前のバージョンとは設定バックアップの形式が若干変わったのか、バックアップした設定のリストアはうまくいきませんでした。

個人的に今回のアップデートの一番素晴らしいところはTabletUIのメニューボタンを最近使ったアプリボタンと別にする設定が追加されたことです。以前は、有志の方が作成されたパッチを使う必要がありましたが、今後はそういう必要はありません。これからは迷わずTabletUIを使っていくことになりそうです。


2012年9月9日日曜日

Nexus7用stock ROMをDeOdexする

Stock romのダウンロードはここから。

そのままでは必要なファイルにアクセスできない。system.imgをunpackして全ファイルを取り出すのは以前のメモを参照。ここだけまだwindowsでは実現できてない。

deodexはcustom-rom-creator-studio(crcs)を使用。リンク先からダウンロード。toolsはちょっと古いものがあるので、最新版をダウンロードして入れ替えた。
SignAPK.jarだけ見つからないのでtoolsの物を使用。あとはリンク先から最新版の配布先をたどってダウンロード。zipalign.exeはAndroid SDKのtoolsからコピー。

crcsを起動して、system.imgから取り出したファイルをbase romとして指定。あとはMainMenu -> Project -> Deodex All Apk and Jar Files でdeodexして完了。

Framework/uiautomator.jarだけエラーが出た。原因は調査中。今のところ使用予定のないファイルなので後回し。

前回、自分用のgappsを作った時はdeodexされているstock romをダウンロードしたが、これからは必要なファイルは自分で用意できるようになった。

2012年9月7日金曜日

Nexus7にParanoid Android 2.1をインストール

ついにParanoid Android 2.1の正規版が公開されました。Ver. 1.xからVer. 2.xへのバージョンアップということで大幅に変更があったようです。
2.0公開直後にバグ修正が入ったようでNexus7版は最初から2.1です。些細なことですが、バグ修正くらいならVer. 2.01でいいと思います。

さて、気になる更新内容ですが、今回の目玉であるParanoid Preferences.apkのバージョンアップにより、システムアプリ、ユーザーアプリのそれぞれについてデフォルトのUIをカスタマイズできるようになりました。
以前、「Nexus7にParanoid Android 1.991aをインストール&設定メモ」に書きましたが大抵のアプリは似たような設定にカスタマイズされるのでなかなか便利です。ただ、いくつかのアプリについてデフォルトの設定が反映されていませんでした。

タブレットUIのカメラのバグ修正がされたようですが、私はnexus7のカメラをほとんど使わないので未確認です。タブレットUIの通知がかなり使いやすくなっていました。ただ、最近使ったアプリボタンとメニューボタンが一個になってしまうのが使いにくくて、私は使っていません。1.992のときは、この二つのボタンを分けるパッチが公開されていたので、近々公開されるのではないかと思っています。

「他にもたくさんある」らしいんですが、よくわかりません。バグ修正がたくさんあったらしいんですが、CM関連のバグって、掲示板等を見ないと見つからないので把握していません。

とにかく大切なことは、Ver. 2.1も安定しているし、とても使いやすいということです。



2012年9月6日木曜日

一足先にNexus7でParanoid Android 2.0を体験する

Paranoid Android 2.0がついに公開されました。と言ってもGalaxy Nexus (maguro)版のみですが。Paranoid Androidは「ほぼオープンソース(笑)」なのでソースが公開されていないParanoidPreferences.apkさえ入手できればあとは自力で何とかできます。早速maguro版からPreferencesだけ抜き出してみました。

Paranoid Android 2.0は以前ビルドに成功しているので安心。repo syncを実行して最新版のソースに更新後、ビルドしました。
gappsは最近自作した物を使用。

バックアップ後、リカバリを起動、zipからインストールでROMとgappsをインストール。キャッシュのワイプはしましたが、データは初期化しませんでした。
再起動。あまり心配していませんでしたが、この瞬間はまだ緊張します。前回指摘し忘れましたが、2.0から起動時にアプリの最適化中とかメッセージと進捗状況が数字で表示されますね。以前はブートアニメしか表示されないので、起動するかやきもきさせられましたが、今後はそういう心配はなさそうです。

再起動後、ParanoidPreferences.apkを公開されたmaguro版から抜き出して/system/appにコピー、パーミッションの変更を忘れずに。

新しいPreferencesは予告どおり、システムアプリ、ユーザーアプリのデフォルトUIを指定できます。今バージョンからTablet UIのバグが大量に修正されたようなのでデフォルトはTabletにしてみました。今のところ非常に快適です。

自作のgappsも今回が初テストになりますが快適に動作しているようです。

2012年9月5日水曜日

Nexus7用にgapps.zipを自作する。

CM10等のROM用の最新のgappsはgapps-jb-20120726-signed.zipですが、これを使用していると妙にエラーメッセージが出ます。致命的な問題ではないのですが、快適とは言い難いのでStock ROMから必要なファイルを抜き出して自分用gappsを作ることにしました。

Stock ROMのapkはOdex化されているので、異なるROMだと動作しないかもしれない。De-Odexすればいいんだけど自力で全部やるのは大変。既にde-odex&zipalignされているROMをxdaのここからダウンロード。

必要なファイルは基本的にはgapps-jb-20120726-signed.zipと同じだが若干異なる部分がある。

以下のファイルは存在しない

/system/app/ChromeBookmarksSyncAdapter.apk
/system/app/GenieWidget.apk
/system/app/GoogleCalendarSyncAdapter.apk 
/system/app/Microbes.apk
/system/app/QuickSearchBox.apk
/system/lib/libflint_engine_jni_api.so
/system/lib/libmicrobes_jni.so
/system/lib/libpicowrapper.so
/system/tts/lang_pico/*.*

ChromeBookmarksSyncAdapter.apkはそもそもJellyBeanのデフォルトブラウザがChromeなのでStockには含まれていないと思われる。私はChromeを使うので不要。GenieWidget.apk (News & weather widget?)、Microbes.apk (live wall paper)は私は使わないので問題無し。
AOSPのカレンダーアプリ(calendar.apk)にはgoogleカレンダーとの同期機能がない。GoogleCalendarSyncAdapter.apkが同期機能を提供。StockにインストールされているCalendarGoogle.apkは単体で同期が出来るため不要。その代わりCalendar.apkを削除、CalendarGoogle.apkをインストールする。念のため、CalendarProvider.apkもstockのものと置き換える。
QuickSearchBox.apkはVelvet.apkに名前が変わったらしい。こちらを代わりにインストール。
/system/lib以下と/system/tts以下はText-to-speechとlive wall paper関連らしいがやはり不要。

Gallery2.apkを削除してStockのGalleryGoogle.apkをコピーするとpicasaやgoogle+との同期ができるらしい。
OptionとしてFacelock関連のファイルはフロントカメラ搭載機種かどうかを判定して必要なファイルをコピーするようになっているがNexus7専用にするつもりなので

/system/app/FaceLock.apk
/system/lib/libfacelock_Jni.so
/system/vendor/pittpatt/*.*

をコピーした。

以上でgappsの作成は終了。終了後、もっとちゃんとしたものが既に作成されているのを発見。悔しいので、iWnn関連ファイルとiWnnのapkも同時にインストールすることにする。fallback_fonts.xmlも入れ替えることにした。

2012年9月4日火曜日

Nexus7を文鎮化から復旧

Nexus7がリカバリすら起動しなくなりました。 直前に自作ROM&gappsをインストールするはMounts and Storage >format /systemしたりしているので心当たりがありすぎて原因が分からない状態です(笑)。なんでそんなことをしたかというとユーザーデータ削除しないでsystem以下を削除したかったから。まあ半分予想してたんですが、googleのロゴが出た画面で停止します。電源とボリューム下を長押しでリセットと同時に電源+ボリューム上下を押してブートローダーへ。PCとUSBで接続。以下を実行。

fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot flash recovery recovery-clockwork-touch-6.0.1.0-grouper.img


実行後、ブートローダーからリカバリモードを起動。

fastboot -w update image-nakasi-jro03d.zip

この時点でユーザーデータは削除されます。自動的に再起動。なんか久しぶりにXが出てくる起動画面を見た。起動を確認したら電源オフ。電源&ボリューム上下を押してリカバリに入りました、がリカバリ死亡。

fastboot flash recovery recovery-clockwork-touch-6.0.1.0-grouper.img

再実行w。実行後リカバリを起動。

adb push hogehoge-rom.zip /sdcard/
adb push gapps.zip /sdcard/

最後の"/"は多分必須。一回忘れたらうまくいきませんでした。
ここからはいつものCWMリカバリからのROMインストールと同じです。一度Stock ROMをインストールしているので色々ワイプするのをお忘れなく。

結局原因は不明ですが、少なくとも自作ROMは起動しないものだったようです(滝汗)。一度に複数ステップ怪しいことをやるのはやめた方がよさそうですね。

VMware playerにインストールしたUbuntuのディスク拡張

Paranoid Androidのbuildにccacheを使用したら80分かかっていたビルドが25分になりました。ところがディスク空き容量が大幅に減少(当たり前なのですが)。
Paranoid Androidのbuildに使ってるのはポータブルPCでディスク空き容量が256GBと若干少ないのですが、思い切って50GBから80GBまで拡張することにしました。
私がいつも参考にさせていただいているのは電脳羊(Android Dream)さんのこの記事です。
スクリーンショットもたくさんあるのでこれ以上書くことないです。

しかし、.repo以下がかなり巨大。なんか間違えたかも。