Xperia X10 mini proのカスタムROM事情 2011/10/27版

この記事は「Xperia X10 mini proのカスタムROM事情 2012/04/23版」で置き換えられています。
———————————–
最近のXperia X10 mini proのカスタムROM事情

Android 2.3ベースのカスタムROMが主流となっています。
また、kernel部分については、標準kernelもしくはZombie Panic Kernelという2択です。
Zombie Panic Kernelの導入方法についてはXperia X10 mini proのkernelを書き換えるを参照してください。

Android 2.3ベースのカスタムROMは、おもに4種類、とその亜種2つ、という感じです。
・Ginger DX Pro
・Flame.E
・GinTonic SE
・MiniCM7 pro
この4種類のどれかを使っておけば、無難といったところでしょう。

なお、ドコモユーザは現状リリースされているカスタムROMを使う際は十分に注意が必要です。
ドコモSIMが入っていると、APNとしてmopera.netを問答無用で選択した状態で、なおかつ、データ通信が有効になっているため、初回起動時に「FOMAパケット通信料[一般]」扱いのパケット通信が発生してしまいます。最短で手順を進めたとしても30円程度の料金がかかりますので注意してください。
回避するには、初回起動時はSIMを抜き、「データ通信を有効にする」のチェックをはずした状態で電源を切り、SIMを指し、設定を行ってください。

GingerDX pro
Eyama氏がdoixanh氏のGinder DXをX10 mini proに移植したもの。
Zombie Panic kernelを使用すること前提のパッケージ内容。
標準kernel(stock kernel)を使用するには同時配布のモジュール集も追加でインストールする必要がある。

Flame.E
Eyama氏がいままで他のカスタムROMに携わった経験を活かして組み上げたもの。
Zombie Panic kernelを使用すること前提のパッケージ内容。
標準kernel(stock kernel)を使用するには同時配布のモジュール集も追加でインストールする必要がある。

GinTonic.SE
slade87氏がdoixanh氏のGinderDXをベースにX10 mini proに移植したもの。
Eyama氏のGingerDXより後発ではあるが、カスタムkernel作者が作っているということもあり、期待が大きいもの。
ただ、癖は強いかもしれない。
Zombie Panic kernelを使用すること前提のパッケージ内容。
標準kernel(stock kernel)を使用するには同時配布のモジュール集も追加でインストールする必要がある。
また、X10 mini proのfirmwareで、2.1.1.A.0.6と2.1.1.C.0.0とで無線部分の動作の違いが発見されたため、2.1.1.C.0.0ユーザ向けに追加モジュールもでている。
なお、この変更の話は、他のカスタムROMに派生する可能性があるので、今後の動向に注意。

MiniCM7 Pro
paul-xxx氏がnobodyAtall氏のMiniCM7をX10 mini proに移植したもの。
元のMiniCM7はFreeXperiaProjectの一部になり、CyanogenMod7をカスタマイズしたもの、という位置づけになっている。
MiniCM7 proは、標準kernel(stock kernel)向け、しかも2.1.1.A.0.6向けとして作成されている。
2.1.1.C.0.0には対応していないので注意。
最近、開発停止宣言を出しているので、今後の動向が注目されるところ。

以下の2つは亜種、という感じのものです。

MiniCM7 SonyStyle
paul-xxx氏のMiniCM7 proをソニエリ純正のような感じで使えるようにカスタマイズしたもの。
4コーナーランチャーなど搭載。
純正の雰囲気が好きな人にお勧め。
MiniCM7 proと同様に、標準kernel(stock kernel)向け、しかも2.1.1.A.0.6向けとして作成されている。

ArcMini
Pranav110089氏がGingerDX ProをベースにXperia Arcっぽい雰囲気に改造しているもの。
機能的にはGingerDX Proと同じなので、カスタムkernel向け。

番外
CM7.1.0 – FreeXperia Project
FreeXperiaProject作の、ほぼオフィシャルのCM7.1。
なんだけど、2011/10/27時点で最新のFXP043aでも実用に耐えない。
しかも、開発中止的は話をしている。

Xperia2011年モデル bootloader unlock無しでのroot取得に成功

ついXperia 2011年モデル、つまりXperia Play,Arc,Arc S,Acro,Mini,Mini Pro,Active,Pro,Neo,Neo Vでbootloader unlockをしなくても、root取得ができるようになったようです。

Revolutionary – zergRush local root 2.2/2.3にて公開された「zergRush」という技を使い、XperiaもしくはSumsung端末のAndroid 2.2/2.3でrootを取得する方法です。
(Android 3.0では使用できません。)
2010年のXperia X10でも使用できるようです。

上記のURLで公開されているものは、ほんとにzergRushのみで、その他にいろいろ必要なapkとかがあります。
それらを含めて手順化したのが、 [HOW-TO] Root Xperia PLAY (& many more phones) v2.2+ (zergRush Method)です。

といっても、やっぱりめんどうなのは変わらず、zergRushとsu、SuperUser.apkを持ってきて以下の手順で転送&実行する、というものです。

> adb shell mkdir /data/local/tmp
> adb push zergRush /data/local/tmp
> adb chmod 755 /data/local/tmp/zergRush
> adb shell
$ cd /data/local/tmp/
$ ./zergRush
>adb remount
>adb push su /system/bin
> adb push su /system/xbin
# chmod 4755 /system/bin/su
# chmod 4755 /system/xbin/su
# exit
> adb install Superuser.apk

で、もっと簡略化されたもの、ということで、[ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)という手順が出てきました。

上記の手順を全てバッチで処理してくれる、というものです。

DooMLoRD_v1_ROOT-zergRush-busybox-su.zipをダウンロードして、中にある「runme.bat」を実行するだけ!

というところまで手順が簡略化されています。

この手順では、Busyboxもインストールされ、いろんなコマンドを実行しやすい環境をさらに整えています。

このzergRushがいつ対策されるかわかりませんが、それまでは簡単にroot取得できそうですね。

既存のOpenVZテンプレートのファイルをアップデートする

OpenVZで作成されたテンプレートを更新する。

参考: OpenVZ wiki: Updating Debian template

1. OpenVZの仮想ホストを作成

# vzctl create VID番号 --ostemplate テンプレート名

上記のテンプレート名は/var/lib/vz/template/cache/ にあるtar.gzファイルの名前を使用する。

実行例

# vzctl create 555 --ostemplate scientific-6-standard_6.0_i386
Creating container private area (scientific-6-standard_6.0_i386)
Performing postcreate actions
Saved parameters for CT 555
Container private area was created
#

2014/11/27 追記

/etc/vz/vz.confの設定によっては下記の様に、パラメータが足らないというエラーがでます。

# vzctl create 555 --ostemplate centos-6-standard_6.0-20121116_i386
Creating container private area (centos-6-standard_6.0-20121116_i386)
Initializing quota ...
Error: Not enough parameters, diskspace quota not set
Creation of container private area failed
#

/etc/vz/vz.confに下記のようにDISKSPACE設定とDISKINODES設定を追加することで、回避できます。

DISKSPACE="20G:22G"
DISKINODES="4000000:4400000"

(バージョンによってはvzctl createオプションでdiskspaceは指定できても、diskinodesが指定できない

2014/11/27 追記終


2. 仮想ホストにIPアドレスとDNSサーバを指定する

# vzctl set VID番号 --ipadd IPアドレス --nameserver DNSサーバIP --save

実行例

# vzctl set 555 --ipadd 192.168.x.x --nameserver 192.168.x.x --save
Saved parameters for CT 555
#

3. 仮想マシンを稼働させる

# vzctl start 555
Starting container ...
Container is mounted
Adding IP address(es): 192.168.35.240
Setting CPU units: 1000
File resolv.conf was modified
Container start in progress...
#

2014/11/27 追記

バージョンによっては、以下のようなエラーとなる場合がある。

# vzctl start 555
Error: required UB parameter kmemsize not set
Error: required UB parameter lockedpages not set
Error: required UB parameter privvmpages not set
Error: required UB parameter shmpages not set
Error: required UB parameter numproc not set
Error: required UB parameter physpages not set
Error: required UB parameter vmguarpages not set
Error: required UB parameter oomguarpages not set
Error: required UB parameter numtcpsock not set
Error: required UB parameter numflock not set
Error: required UB parameter numpty not set
Error: required UB parameter numsiginfo not set
Error: required UB parameter tcpsndbuf not set
Error: required UB parameter tcprcvbuf not set
Error: required UB parameter othersockbuf not set
Error: required UB parameter dgramrcvbuf not set
Error: required UB parameter numothersock not set
Error: required UB parameter numfile not set
Error: required UB parameter dcachesize not set
Error: required UB parameter numiptent not set
#

この場合は、/etc/vz/conf/に作成されている該当CIDの.confファイルに下記のエントリーを追記しておくといい。

PHYSPAGES="0:1024M"
SWAPPAGES="0:512M"
KMEMSIZE="465M:512M"
DCACHESIZE="232M:256M"
LOCKEDPAGES="512M"
PRIVVMPAGES="unlimited"
SHMPAGES="unlimited"
NUMPROC="unlimited"
VMGUARPAGES="0:unlimited"
OOMGUARPAGES="0:unlimited"
NUMTCPSOCK="unlimited"
NUMFLOCK="unlimited"
NUMPTY="unlimited"
NUMSIGINFO="unlimited"
TCPSNDBUF="unlimited"
TCPRCVBUF="unlimited"
OTHERSOCKBUF="unlimited"
DGRAMRCVBUF="unlimited"
NUMOTHERSOCK="unlimited"
NUMFILE="unlimited"
NUMIPTENT="unlimited"

2014/11/27 追記終


4. 仮想マシンにログインする

# vzctl enter 555
entered into CT 555
[root@ホスト名 /]#

5. yum updateを実施

# yum update
sl                                                       | 3.2 kB     00:00
sl/primary_db                                            | 3.1 MB     00:12
sl-security                                              | 1.9 kB     00:00
sl-security/primary_db                                   | 5.8 MB     00:12
Setting up Update Process
Resolving Dependencies
<略>
Transaction Summary
================================================================================
Install       0 Package(s)
Upgrade      32 Package(s)

Total download size: 46 M
Is this ok [y/N]: y
Downloading Packages:
<略>
  tzdata.noarch 0:2011h-3.el6

Complete!
[root@ns5 /]#

6. 追加したい設定があったらやっとく
・phpをインストール
・/etc/php.iniに「date.timezone = Asia/Tokyo」の設定を追加
・「ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime」
・/etc/sysconfig/i18nに「LANG=”ja_JP.UTF-8″」を追加

7. 掃除

# yum clean all
Cleaning up Everything
# echo > /etc/resolv.conf
#

8. 仮想ホストの停止

# vzctl stop 555
Stopping container ...
Container was stopped
Container is unmounted
#

9. 仮想ホストからIPアドレス設定を削除

# vzctl set 555 --ipdel all --save
Saved parameters for CT 555
#

10. 仮想ホストのファイルが展開されている場所に移動

# cd /var/lib/vz/private/555
#

11. テンプレートとしてtar.gzファイルを作成

#  tar --numeric-owner -czf /var/lib/vz/template/cache/scientific-6-standard_6.0-20111026_i386.tar.gz .
#

なお、ファイル名は重要。

「ディストリビューション名」-「ディストリビューションのバージョン」-「カスタマイズ説明」_「カスタマイズのバージョン」_「アーキテクチャ」.tar.gz

という書式で指定する。
そうしないと、Proxmoxでは、テンプレートとして指定できない。

12. 使用した仮想マシンの削除

# vzctl destroy 555
Destroying container private area: /var/lib/vz/private/555
Container private area was destroyed
#

13. /etc/vz/conf/に残る仮想マシンの設定ファイルを削除

# rm /etc/vz/conf/555.conf.destroyed
#

Sony Reader PRS-T1英語版をAndroid化する話

Sony Reader PRS-T1英語版のAndroidハックの手法が公開されていたのでご紹介。

ネタ元: THE ELECTRONIC BOOK(ロシア語サイト):PRS-T1 Android rooting (packages)
 上記のGoogle Translateによる翻訳

関連フォーラム: mobileread(英語サイト)のフォーラム:PRS-T1 Rooted: Installation packages

必要なもの
・Minimal Root Set
 AndroidアプリとしてはAWDLauncherEx, SuperUser, Dropbox, AnySoftKeyboard, CoolReader, ColorDict3, Terminal, RootExplorer, Gallery3D, ColorPicker, PackageInstaller, Calculator などが含まれています。
・Rescue Set
 元に戻すために使うそうです。

手順
1. Minimal Root Setを展開
2. Sony Readerをデータ転送モードでPCに接続
3. PC側でflash_reader.batを実行
4. 「Agree」する
5. 待つ
6. 15~20分待てば使えるようになる

また、Sony Readerをadb接続するにはadb接続用のドライバのinfファイル「android_winusb.inf」に対して、「USB\VID_054C&PID_05C2&MI_01」用の登録を追加すれば良いそうです。

なお、実機を持っていたり、しばらく購入予定はないので、あくまで紹介、です。

/data/appと/system/appの動作の違い

「/data/app /system/app 違い」で検索してきた人がいたので、書いてみる。

・端末初期化時の動作の違い
 /data/appは端末を初期化すると消える。
 /system/appは残る。

・インストール処理の違い
 /system/appにあるものは、初回起動時にインストール処理が行われる。
 /data/appにあるものは、インストール処理が行われない。
 インストール時に/data/data/パッケージ名/ディレクトリ内にファイルを
 作成するという動作をする様な場合、支障が生じる可能性がある。

・アンインストールできるかどうか?
 /system/appにあるものはアンインストールできない
 また、/system/appにあるものに対してアップデートがでた場合は
 /data/appにアップデート版が配置されることになる。

・なんで/system/appにアプリケーションを追加するのか?
 →/dataパーテーションの空き容量確保のため
  ただしアップデートが頻繁に行われるようなアプリケーションでは意味が無い

・/system/appのアプリを消したいんだけど
 →通常の手段では無理
  

# mount -o rw,remount / /system
  # cd /system/app
  # rm ~.apk
  #

  とかで強制的に削除することはできる。
  また、pmコマンドでdisableとすることでアプリを起動させないことも可能である。
  

# pm disable パッケージ名
  #

  上記で指定するパッケージ名はapkのファイル名ではないので注意。
  「pm list packages」でパッケージ名を確認すること。
  なお、無効にしたものは「pm enable パッケージ名」で有効に戻すことができる。