2014年2月2日日曜日

SOL21 で /system を rw でマウントしたい。

 /system/bin/ric が状態監視をしているようで変更されてしまうと再起動がかかる模様。
 道理でアプリでやってもコマンドでやっても再起動されてしまう訳だ。
root@android:/ # mount -o remount,rw -t ext4 /dev/block/mmcblk0p12 /system

 しかしどう対処するんだろう。
 /system 配下にいるしその /system は読み込み専用になっていて書き込みは出来ないし。
 むー。
root@android:/ # ps | grep ric

root      227   1     1268   572   c00970f8 402743c4 S /sbin/ric

 あー。プロセス殺してみよっと。
root@android:/ # kill 227

 駄目だ。
 再起動がかかってしまった。
 やはりそんなに甘くないか。

 もう少し調べてみるか。

 んー。
 となると焼く時に無害な ric にしておけばいいってことかな。

 単に mount コマンドのオプションが違っているだけなのか。


 次のサイトを参考にしたら出来た。
TA、ftf、root、ric・・・メモ書き。[Xperia Z1 C6903]
http://booleestreet.xii.jp/archives/7224

 ただしばらくすると書き込みが出来なくなるのはなんでだろう。

2014年2月1日土曜日

OS X Mavericks で SOL21 の root を取得してみる。

 [SP][ROOT] DooMLoRD Easy Rooting Toolkit (v17) {perf_event exploit}[20130717]
http://forum.xda-developers.com/showthread.php?t=2329208

 お手軽に実行するだけで root 取得ができるようなのでやってみた。

$ ./runme_mac.sh 
---------------------------------------------------------------
            Easy Rooting toolkit (v17.0)
                   created by DooMLoRD
                   "pref_event exploit"
    Credits go to all those involved in making this possible!
---------------------------------------------------------------
  Special thanks to: the_laser, Bin4ry, fi01, hiikezoe, [NUT]
  and to all those who are contributing to our git tree!
       Sources: https://github.com/android-rooting-tools
---------------------------------------------------------------
            ported to Mac OS X by ChrisBoesing                 
---------------------------------------------------------------
[*] This script will:
      (1) root ur device using the pref_event exploit
      (2) install Busybox
      (3) install SU files
[*] Before u begin:
      (1) make sure u have installed adb drivers for ur device
      (2) enable "USB DEBUGGING"
            from (Menu\Settings\Developer Options)
      (3) enable "UNKNOWN SOURCES"
            from (Menu\Settings\Security)
      (4) connect USB cable to PHONE and then connect to PC
      (5) skip "PC Companion Software" prompt on device
---------------------------------------------------------------
CONFIRM ALL THE ABOVE THEN
--- STARTING ----
--- WAITING FOR DEVICE
--- creating temporary directory
mkdir failed for tmp, File exists
--- cleaning
rm failed for *, No such file or directory
--- pushing files
26 KB/s (326 bytes in 0.011s)
507 KB/s (1578 bytes in 0.003s)
3271 KB/s (26268 bytes in 0.007s)
5412 KB/s (853044 bytes in 0.153s)
4608 KB/s (96260 bytes in 0.020s)
5407 KB/s (1858064 bytes in 0.335s)
--- DooMing device!
--- Correcting permissions
--- Running exploit


run_root_shell v6.2
Based on pref_event exploit

Modified for auto-rooting by DooMLoRD
Part of Easy Rooting Toolkit

Devices Supported:
Xperia Z       (C6602/3)      - 10.1.1.A.1.253/307
Xperia Z       (C6602/3)      - 10.3.A.0.423
Xperia Z       (C6606)        - 10.1.1.B.0.166
Xperia ZL      (C6502/3/6)    - 10.3.A.0.423
Tablet Z       (SGP321)       - 10.1.1.A.1.307
Tablet Z       (SGP311/2)     - 10.1.C.0.370
Xperia ZR      (C5502/3/M36h) - 10.1.1.A.1.310
Xperia SP      (C5302/3/6)    - 12.0.A.1.211/257/284
Xperia L       (C2104/5)      - 15.0.A.1.31/36
Xperia T       (LT30p)        - 9.1.A.1.141/142
Xperia TX      (LT29i)        - 9.1.B.1.67
Xperia V       (LT25i)        - 9.1.A.1.140/142/145
Xperia S       (LT26i)        - 6.2.B.0.200/211
Xperia SL      (LT26ii)       - 6.2.B.0.211
Xperia Acro S  (LT26w)        - 6.2.B.0.200/211
Xperia Ion     (LT28h)        - 6.2.B.0.211
Xperia P       (LT22i)        - 6.2.A.1.100
Xperia Go      (ST27i/a)      - 6.2.A.1.100
Xperia J       (ST26i/a)      - 11.2.A.0.21/31
Xperia AX      (SO-01E)       - 10.1.D.0.343
Tablet Z       (SO-03E)       - 10.1.E.0.265/269
Xperia GX      (SO-04D)       - 7.0.D.1.137
Xperia A       (SO-04E)       - 10.1.1.D.0.179
Xperia A       (SO-04E)       - 10.1.1.D.2.26
Xperia SX      (SO-05D)       - 7.0.D.1.137
Xperia SX      (SO-05D)       - 9.1.C.0.475
Xperia VL      (SOL21)        - 9.0.F.0.226
Xperia VL      (SOL21)        - 9.1.D.0.395/401
Xperia UL      (SOL22)        - 10.2.F.3.43
Google Nexus 4                - JDQ39
Google Nexus                  - JOP40C/JZO54K
LG Optimus G E975             - v10e


Changelog is posted here: http://bit.ly/ert_log



Device detected: SOL21 (9.1.D.0.401)

Attempt perf_swevent exploit...
writing address is 8e49
Launching auto-root script!
---------------------------------------------------------------
Launching final rooting process...
---------------------------------------------------------------
--- Rooting!
--- Remounting rootfs
--- Killing RIC service (specific for new Xperia devices)
Unable to chmod /system/bin/ric: No such file or directory
--- Installing busybox
--- Remounting /system
--- copying busybox to /system/xbin/
1666+1 records in
1666+1 records out
853044 bytes transferred in 0.052 secs (16404692 bytes/sec)
--- correcting ownership
--- correcting permissions
--- installing busybox
--- pushing SU binary
rm failed for /system/xbin/su, No such file or directory
188+1 records in
188+1 records out
96260 bytes transferred in 0.008 secs (12032500 bytes/sec)
--- correcting ownership
--- correcting permissions
--- correcting symlinks
rm failed for /system/bin/su, No such file or directory
--- pushing Superuser app
3629+1 records in
3629+1 records out
1858064 bytes transferred in 0.105 secs (17695847 bytes/sec)
--- correcting permissions
--- DONE!
--- cleaning
--- Please wait device is now rebooting
ALL DONE!!!


 SOL21 が再起動したので SuperSU を探してみるとあったあった。

 このツールを知る前に adb を使えるようにしてみたけれど root 取得に必要なものは全て入っているので SOL21 で事前に以下の項目にチェックしておくだけだった。
 提供元不明のアプリ
 スリープモードにしない
 USB デバッグ

 さてここからは不要なアプリの削除をしてバックアップだ。

2014年1月31日金曜日

SOL21 用の ftf を作ってみよう。

 Flashtool が無いと話が進まないのでダウンロードするべし。
http://www.flashtool.net/download.php

 http://www.flashtool.net/index.php
 やあ。
 Flashtool は X10 から Xperia Z Ultra までの Sony 製 Xperia 端末用のソフトウェアである。
 これらの端末はファームウェアを焼くために S1 プロトコルを使う。

 このプログラムはもともと SEUS や PCC が sim ファイルをダウンロードして焼くときに使われていたものである。
 時々 sim ファイルにバンドルされている FTF (Flash Tool Firmwares) である。
 Flashtool のコアであり名前の由来である。

 Flashtool は BLU アイコンを使って簡単にブートローダーをアンロックできる。

 Flashtool がデバイスを認識していれば焼くだけではなくブートローダーのアンロックもできる。
 唯一必須なのは焼く対象となるデバイスの FTF ファイルを持つことである。

 なぜ Flashtool を使う必要があるのか。
 ブートローダーをアンロックするとソニー公式のツールは動作しないためである。
 ソニー公式のツールはダウングレードは出来ずアップグレードしか出来ないのである。
 しかし Flashtool を使えば必要な FTF ファイルを選択して焼くことが出来る。
 (これによると多くの root シナリオが利用可能な暗示カーネルのみ利用するパッチを適用した root を取得して適切なカーネルでダウングレードすることが出来る。)

 ブーロドーダーのアンロックをするのか。
 このプロセスは CyanogenMod ROM などのカスタムロムを焼けるようになる。
 あなたの Xperia デバイスに CyanogenMod をもたらすために Free Xperia Project を訪問することをお勧めします。
https://sites.google.com/site/projectfreexperia/

 Flashtool に認識されれば他の多くの機能を使用することが出来るようになる。
 1. root 取得
 2. recovery, busybox, custom kernels のインストール
 3. /system/apps のアプリを削除(文鎮と化すので何をしているのか理解できなければデフォルトリストを変更しないこと)
 4. dalvik キャッシュクリア
 5. 最適化(Just-In-Time V2 のインストール)
 6. カスタマイズ (Flashtool custom/apps のフォルダで見つけたアプリ)
 7. デバイス上の任意のテキストファイルの編集
 8. 新しいブランドの立ち上げ


 ということらしい。
 いろいろ出来るツールなんだな。








 ftf を一回作ってみたけど SOL21_9.1.D.0.401_au.ftf ファイルが検索しても見つからなかったのでやり方を間違えたのかなと思ってもう一回作ってみようとすると This bundle name already exists エラーが発生。
 どこかに ftf ファイルがあるはずだと探してみたら FlashTool.app 本体に入っていた。
/Applications/FlashTool.app/Contents/MacOS/firmwares

 じゃあどう使うのかと思ったら Flashmode に入れば選択できるようになっていた。
 でも同一名称で作り直したい場合はどうするんだろう。

 とりあえず作った ftf ファイルを焼いてみよう。






 これで買った時の状態に戻れば正解なのだが実は Wipe のチェックをすべて外していたので設定とかが残っている状態で焼けた。
 これでバックアップとリカバリが出来たので時々バックアップしておけば簡単に元に戻すことができるぞ。

Sony Bridge for Mac 3.6(3602) を使って SOL21 を初期化してみる。


 特に問題はないけれど最近いじっていない SOL21 を初期化する事にした。
 何はともあれバックアップバックアップ。
 カメラで撮った写真と動画しかないので Sony Bridge for Mac を使ってインポートして終了。

 初期化自体はちょっと前にやったことがあるので問題はない。
 それにしても機種選択画面で Xperia VL と書かれているのに (SOL21) がないのは何か理由があるのだろうか。SOL22 は SOL22 だけのそのまんまだし。
 あったりなかったりで規則性ってものが分からないのは Xperia に詳しくないからだろうな。
















 初期化が終わったようなので本体設定をするか。

 ここからは ftf 作成とか root とかをやる予定だけどお昼ご飯が先。


2014年1月8日水曜日

android を build して

touch: out/target/common/docs/api-stubs-timestamp: No space left on device
make: *** [out/target/common/docs/api-stubs-timestamp] Error 45

$ df
Filesystem    512-blocks      Used Available Capacity  iused   ifree %iused  Mounted on
/dev/disk0s2   235298960 220472000  14314960    94% 27622998 1789370   94%   /
devfs                370       370         0   100%      640       0  100%   /dev
map -hosts             0         0         0   100%        0       0  100%   /net
map auto_home          0         0         0   100%        0       0  100%   /home

/dev/disk1s2    83214256  83213680       576   100% 10401708      72  100%   /Volumes/android

 まさかのディスク容量不足。
 悲しい結果でしたw

 どこからやり直せばいいのかな。

2014年1月7日火曜日

Initialize

http://source.android.com/source/building-running.html#initialize

 envsetup.sh を使って環境を初期化をする。
 次のようなコマンドラインで実行する。詳しくはシェルのマニュアルを参照のこと。
$ source build/envsetup.sh
$ . build/envsetup.sh

 という事でやってみた。
$ source build/envsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including sdk/bash_completion/adb.bash
$


 Choose a Target

 以下のように lunch へ引数を渡して build したいターゲットを選ぶ。
$ lunch aosp_arm-eng

 上の例は全てのデバッグが有効となっているエミュレータの完全な build を指す。
 lunch に引数なしで実行した場合はターゲットを選択するメニューが表示される。
 全てのビルドターゲットは BUILD-BUILDTYPE となる。
 BUILD は特定の機能の組み合わせを参照したコードネームとなる。
 部分的なリストは以下の通り。
 そして BUILDTYPE は次のいずれか。
 実際のハードウェア上で実行する方法については Building for Devices を参照のこと。
http://source.android.com/source/building-devices.html


 やってみたが何がなんだか分からない状態。
$ lunch aosp_arm-eng

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.3.2.1.000.000
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86
HOST_OS=darwin
HOST_OS_EXTRA=Darwin-13.0.0-x86_64-i386-64bit
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
OUT_DIR=out
============================================

$


 Build the Code

 make コマンドで build する。 
 GNU make の -jN は引数を指定して並列タスクを処理する事ができる。

$ make -j2

 さてさて build が終わるのはいつだろうか。

 ふと気がついたがフルスペックの build をしているのではないのか。

2014年1月6日月曜日

Building the System

http://source.android.com/source/building-running.html

 Android のソースツリーを build する手順はマスターを含めて全てのブランチに適用する。


 Choosing a Branch
http://source.android.com/source/building-running.html#choosing-a-branch

 build 環境の要件のいくつかはコンパイル予定のソースコードのバージョンによって決まる。
 コードネームやタグや build 番号を見てブランチを決める。
 なおリポジトリを初期化するときやマスターと呼ばれる最新のソースコードをダウンロードするときにはブランチの選択を省略することが出来る。
 ブランチを選んだら以下の適切な指示に従って build 環境をセットアップする。
 基本的な build コマンドの順序は以下の通り。


MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。