Xperia Pro(MK16a)をBootloader Unlock してみた

Xperia Pro(MK16a)を持っているのですが,OSが古いし標準アプリも多くてストレージもいっぱいで使いたいアプリもなかなか入れることが出来ません.
最近はこの端末にMVNOのSIMを刺してモバイルルータ and GPSロガー的に使っていますがbluetooth tethering も使えずWi-Fi tethering だとバッテリの減りも早いです.ということでカスタムROMやCyanogenMod11か12あたりに入れ替えたいのですがブートローダーにロックがかかっているのでまずはこれを解除しないといけません.Test Point を使ったりするのは面倒だなと思っていたのですが,現在は公式でアンロックコードを手に入れることができるのでこちらで行うことに.
※保証がきかなくなります.SEUSなどが利用できなくなります.公式アップデートも利用できなくなるそうです.(まあこれからOTAとか来ることはないと思いますが)

本体の他に以下のものが必要です.ここでは開発環境の説明はしません.

  • Android 開発環境の動作するPC(今回はDebian Jessie)
  • Android 開発環境の中のfastboot コマンド(sdk/platform-tools 以下)
  • USB A-microB ケーブル

アンロックコードの入手

アンロックコードは以下のページから入手できます.

機種を選択して,メールアドレスを入力すると確認メールが届くので,そのメールのURL をクリックするとIMEIの入力画面になって,そこでIMEI を入力することでCodeが入手できます.

アンロック

Xperia Pro の電源を切ります.
USBケーブルはPCのみに接続する
電源Off 状態からメニューボタンを押しながらUSBケーブルを接続する
右上側面のHDMIコネクタ横のLEDが青くなるとFastbootモードになっている

Fastboot モードの時のdmesgはこんな感じでした.

[78677.917985] usb 1-1.1: new high-speed USB device number 30 using ehci-pci
[78678.013776] usb 1-1.1: unable to get BOS descriptor
[78678.025756] usb 1-1.1: New USB device found, idVendor=0fce, idProduct=0dde
[78678.025764] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[78678.025769] usb 1-1.1: Product: S1Boot Fastboot
[78678.025774] usb 1-1.1: Manufacturer: Sony Ericsson Mobile Communications AB
[78678.025778] usb 1-1.1: SerialNumber: CB5A1G45XXXXXX

fastboot devices コマンドで接続を確認します.

% ./fastboot devices
CB5A1G45XXXXXX  fastboot
% ./fastboot -i 0x0fce getvar version
version: 0.3
finished. total time: 0.001s

もしここでno permissions fastboot というエラーが出る場合はadb serverを起動しなおしてみるとうまく行くようです.それでもうまく行かない場合root権限で起動し直す(sudo command)とうまく行ったことも.

% ./fastboot devices
no permissions  fastboot
% ./adb kill-server
% ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
% ./fastboot devices
CB5A1G45XXXXXX  fastboot

問題ないようなら以下のコマンドでアンロックコードを指定してアンロックします.

% ./fastboot -i 0x0fce oem unlock 0xC3BA1080A6XXXXXX
...
(bootloader) Unlock phone requested
(bootloader) Erasing block 0x00001300
(bootloader) Erasing block 0x00001400
(bootloader) Erasing block 0x00001500
(bootloader) Erasing block 0x00001600
(bootloader) Erasing block 0x00001700
(bootloader) Erasing block 0x00001800
(bootloader) Erasing block 0x00001900
(bootloader) Erasing block 0x00001a00
(bootloader) Erasing block 0x00001b00
(bootloader) Erasing block 0x00001c00
(bootloader) Erasing block 0x00001d00
(bootloader) Erasing block 0x00001e00
(bootloader) Erasing block 0x00001f00
OKAY [  4.587s]
finished. total time: 4.587s

これでアンロック完了です.
次はOSを入れ替えてみます.

ownCloud 7.0.4 導入でownCloud Client 接続で嵌まる

レンタルサーバのheteml にownCloud 7.0.4 を導入する簡単なお仕事.ssh も使えるし〜と思ってさくっと導入してWeb でのテストまでして引渡したのですがユーザからownCloud のクライアントで接続できないとのこと.

ログファイルを出力しつつ試してみると確かに繋がりません.

% owncloud —confdir ./ —logfile ./log —logflush —logwindow

  • —confdir 設定ファイルのディレクトリ指定
  • —logfile ログファイル指定
  • —logflush ログのリアルタイム出力
  • —logwindow ログ出力ウィンドウ表示

WebDav でもうまく行かない.

怪しそうな以下のエラーメッセージで検索するとそれらしいものを発見.

No basic authentication headers were found

コメントを参考に以下の2ファイルを修正.

  • .htaccess
  • lib/base.php
$ diff -u .htaccess.org .htaccess
--- .htaccess.org       2015-02-19 18:41:36.000000000 +0900
+++ .htaccess   2015-03-03 18:09:27.000000000 +0900
@@-17,6 +17,9 @@
 </IfModule>
 <IfModule mod_rewrite.c>
 RewriteEngine on
+RewriteCond %{HTTP:Authorization} ^Basic.*
+RewriteRule ^(.*) $1?Authorization=%{HTTP:Authorization} [QSA,C]
+RequestHeader unset Authorization
 RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
 RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
@@-40,4 +43,4 @@
 </IfModule>
$ diff -u lib/base.php.org lib/base.php
--- lib/base.php.org    2014-12-09 03:34:15.000000000 +0900
+++ lib/base.php        2015-03-02 20:58:04.000000000 +0900
@@-805,6 +805,12 @@

        protected static function handleAuthHeaders() {
                //copy http auth headers for apache+php-fcgid work around
+               if(isset($_GET['Authorization']) && preg_match('/Basic\s+(.*)$/i', $_GET['Authorization'], $matches))
+               {
+                   list($name, $password) = explode(':', base64_decode($matches[1]));
+                   $_SERVER['PHP_AUTH_USER'] = strip_tags($name);
+                   $_SERVER['PHP_AUTH_PW'] = strip_tags($password);
+               }
                if (isset($_SERVER['HTTP_XAUTHORIZATION']) && !isset($_SERVER['HTTP_AUTHORIZATION'])) {
                        $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['HTTP_XAUTHORIZATION'];
                }
```language

これでどうにか繋がるようになりました.
同じような環境はそこそこありそうですけどね….

Android から USB-TTL 経由でRaspberry Pi にアクセス

ふと,手元のUSB-TTLアダプタ(Prolific PL2303)とmicroUSBのホストケーブルでAndroidに繋げば普通に使えるのではと思って試してみました.

Raspberry Pi 側の接続.
赤の5Vは接続しなくても動きますが,接続すると少し給電されます.
IMG_20150212_163124

こんな感じに.
IMG_20150212_204416.jpg

Android側のアプリは10種類ほど試しましたが今回利用したProlific PL2303では以下の3つでデバイスを認識しました.Playストアを見た感じではFTDI対応のものが一番多そうでした.

という感じで実際利用できているのはUSB Serial Terminal Liteだけでした.

設定はBitrateの変更と文字コードの変更を行いました.
Screenshot_2015-02-12-20-39-28

デバイスの認識状態はこんな感じ
Screenshot_2015-02-12-20-24-12Screenshot_2015-02-12-20-24-19

そしてこんな感じで使えています
Screenshot_2015-02-12-20-22-35

使い勝手はあまり良くないですが,出先とかでちょっとコマンドを打ちたいときに良さそうです.

オープンソースカンファレンス2015大分に参加

オープンソースカンファレンス2015大分に参加してきました.今回は鹿児島らぐとして展示とLTをしてきました.

IMGP0266IMGP0295
展示はKobo Debian/Android, Raspberry Pi でRasinbowstream, Raspberry Pi 2 model B デモなどでした.Raspberry Pi ブースのような感じですが鹿児島でLinuxに関する活動をしている鹿児島らぐの展示でした.(…鹿児島らぐの説明よりもずっとたくさんRaspberry Pi のはなししてましたが)

IMGP0287

ライトニングトークはトップバッターでした.スライド終わりだけど残り時間どのくらいかなと確認しようとしたところでちょうど時間で偶然時間ピッタリで終わりました.大体近県?のイベントでの宣伝は出来たかなと思いますが,広島や四国でもできればやりたいところです.以下がその時のスライドです.

鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT) from Kenichiro MATOHARA



その後懇親会に参加してホテルへ帰りました.
IMGP0350

次回の鹿児島らぐの県外のイベントは未定です….鹿児島でのイベントは「鹿児島Linux勉強会」を2/21(土)に開催予定です.詳細はWeb/ML等で確認してください.

そして開けて今日はOSC大分翌日観光があったのですがこれはまた別エントリで.



Raspberry Pi 2 model B が到着!

Raspberry Pi 2 model B を入手しました.
注文したのはRSオンライン( http://jp.rs-online.com/web/ )で 2015/02/02, 月曜日, 19:48
受け取りは 2/6 でした.
丁度大分に向かうので受け取れるか微妙だったので営業所止にしてもらい受け取ってから大分に向かいました.
IMG_20150206_194411IMG_20150206_194419
途中のバスの待ち時間に写真を撮ってみました.
IMGP0250
箱がカラフルに!
IMGP0251
IMGP0257IMGP0252
中身はぱっと見 Raspberry Pi model B+ と見分けが付かない感じ.
IMGP0253
RAM のChip が別れてウラ面に張り付いてました.
IMGP0254
IMGP0255IMGP0256
大分で起動してみると4Coreになったので Raspberry が4個!
IMG_20150207_092908
未だ出先なので家に帰ったら色々触ってみるつもりです :)

追記)
Element14 扱いだと箱も説明書も違うみたい.特に説明書.

端末で動くTwitterClient Rainbowstream

確かOSSJで見かけて知ったのだと思うのですが,

端末上で動作するTwitterのRainbowstreamというソフトウェアを知りました.

ユーザーストリーム対応で端末上にユーザストリームや検索結果リストなどが表示できます.画像をアスキーアートで表示する機能もあります.

導入

pipで入る

$ sudo apt-get install python-pip python-dev
$ sudo pip install rainbowstream PySocks Pillow

初回起動時に認証のためブラウザが起動する.認証ご表示されたpinを端末に貼り付ける.認証情報は ~/.rainbow_oauth に保存されるので要らなくなったら消す.
無くても動くけど無いと設定変更が出来ないので設定ファイルの用意をする.

% wget https://raw.githubusercontent.com/DTVD/rainbowstream/master/rainbowstream/colorset/config -O /tmp/config
% mv /tmp/config ~/.rainbow_config.json

GNU Screen のウィンドウ分割モードだと崩れてしまうので,小さめのウィンドウに表示するといい感じです.以下の画像はawesome で端末を2つ表示してRainbowstreamを実行した端末を小さくしているところです.
20150202_07:02:05-608

画像のアスキーアート表示は楽しいのですが,一気にログが流れてしまうのでoffにしちゃいました.
自作のPerl Script で昔作ったものがあるのですが,Rainbowstreamのほうがカラフルで見た目がいい感じです.

Ubuntu 10.04 LTS そろそろeol

先日の所謂GHOST脆弱性騒ぎの時に Ubuntu 10.04 LTS の修正を見かけて気付いたのですが,Ubuntu 10.04 LTS サーバーのサポートが4月いっぱいまでです.デスクトップは既に2012年にサポートが終わっているので利用者は少ないでしょうがサーバで使っている人で移行していない人はそろそろ移行しないとですね.

LTS の移行先としてはUbuntu 12.04 LTS が2017年04月迄.Ubuntu 14.04 LTS が2019年04月迄です.10.04 LTS から12.04 LTS には一気にアップグレードできるはずですが,10.04 LTS から14.04 LTS へは一気にアップグレードは出来ないと思います.環境によりますが新環境を14.04 LTS で作って移行したほうが楽かもですね.

Snappy Ubuntu Core on Raspberry Pi 2

Screenshot from 2015-02-05 07:30:48

Raspberry Pi のOS ダウンロードページに SNAPPY UBUNTU CORE が.未だAlpha 2 だけど.

Snappy Ubuntu Core の要件はARMv7 128RAM なのでRaspberry Pi 2 以降でないとダメだけどRaspberry Pi で動かすのも面白そうですね.
ちなみにBBB のSnappy Ubuntu Core はこの辺に

Raspberry Pi な同人誌以下で頒布中です.

Raspberry Pi 新モデル Raspberry Pi 2 model B 登場

Raspberry Pi B+ / A+ が出たばかりですが,Raspberry Pi 2 model B というものが発表されました.もう出荷も始まっていて注文も可能です.

Raspberry Pi 2 on sale now at $35 | Raspberry Pi
Pi2ModB1GB_-comp

ぱっと見の見た目はRaspberry Pi model B+ と一緒な感じですね.RAMは基板裏に言ったらしいので裏返すと違い分かりそう.
CPUがARMv6からQuadCoreのARMv7,RAM 1GBになって6倍に高速化とか.値段は据え置き$35で旧モデルも併売.Raspberry Pi 2 model A+ は少なくとも2015年には出さないとのこと.個人的にはあまり惹かれないのですがWindows10も無償で提供されるようです.WindowsRT のような感じになるのでしょうか.とはいえこれで注目度はまた上がるでしょうね.

ARMv7 QuadCore RAM1GB になったのでARMv6を捨てたディストリビューションも動くようになりそうだし,Xのアプリも大分さくさく動くようになりそうな気がします.
これから買うなら RaspberryPi 2 model B か Raspberry Pi Model A+ という感じになりそうですね.
今回は前回と違ってリークもなくSoCに更新はしばらくないと思っていたのでいきなりの発表でびっくりしました.しかしRaspberry Pi model B+ を買う理由が殆ど無いのでなんか可愛そうです….

ABA+B+2 B
RAM256MB512MB256MB512MB1GB
ネットワーク
USB12144
GPIOピン数2640264040
ストレージSDSDmicroSDmicroSDmicroSD
消費電力300mA(1.5W)700mA(3.5W)300mA(1.5W)より低い600mA(3.0W)?
サイズ85mm×56mm85mm×56mm65mmx56mm 85mm×56mm85mm×56mm
価格$20$35$20$35$35

私はとりあえず2/2の夜にRS-Components から注文しました.1~5営業日でお届け。 になっていてま台本への移動中のようなので恐らく英国在庫ですね.(土曜あたりになりそうだけど土曜OKのオプションを付け忘れたので月曜かな?)値段はこんな感じでした.

RS品番数量単価合計商品の概要
832-62741¥3,966¥3,966Raspberry Pi 2 Model B
商品本体の合計¥3,966
配送料¥450
消費税¥353
合計¥4,769

\8,000-以上で送料無料だったと思うので3枚買うと割安になりますね.

しかし,今から注文すると2月末の到着になるようです.割高になりますが在庫のあるケースやさんとかで購入したほうが早く手に入りそうです.

そういえばコミケット87で頒布した Raspberry Pi な同人誌以下で頒布中です.

NEXUS5 を落っことしてしまいISAI LGL22 を買った(Linux環境でのroot取得とカメラ無音化)

Nexus5 をどこかに落っことしてしまい(体調が悪い時で記憶があやふや.桜島港から家の間のどこかに多分落ちている)不便なので代替機を探して中古のISAI LGL22 を入手した.兄弟機で面白みはあまりないが,LTE でmineo が使えるのとUnLock が安価&安易でDocomo の電波も掴みそこそこ安いということで….

とりあえず初期化してroot 取ってカメラ無音化までした.root 取得の手順は確立されているけれどWindows向けでバッチファイルを叩くものしか見当たらなかったのでLinux 向けにメモ.(WinでもMacでも同じだけど)

  • 初期化
  • OS Update
    TAO で 4.4.2 に.
  • 画面のロックをパスワードに
  • 所有者情報設定
  • mineo 設定
  • 暗号化
    ※充電が80%以上になってから出ないと実行できない.
  • root取得
    isai_rootkit_kk_only.rar を以下から入手して利用した.https://mega.co.nz/#!h5EAmY7K!rrM2jZlCnRGc-EzhPhrxQ8gfPtGAcuv_mPPH8lYo7_M

    sha1sum    0a048c7be86ca64dc755a31a3c3a8d32455a3361
    sha256sum    67b3481f15e5f597e60397b9294074354877cd283ecede5bd8ba171e14392cd2
    

    前準備としてUSBデバッグを有効にしてPCと接続しUSBデバッグを有効にしておく.
    isai_rootkit_kk_only.rar を展開して install.bat を見ながら以下のような感じでコマンドを叩く.
    ※要開発環境.

    cd isai_rootkit_kk_only
    adb wait-for-device
    adb push "files" /data/local/tmp
    adb shell chmod 755 /data/local/tmp/getroot
    adb shell chmod 755 /data/local/tmp/busybox_file
    adb shell chmod 755 /data/local/tmp/install.sh
    adb shell chmod 755 /data/local/tmp/remove_apps_and_bins.sh
    adb pull /system/app/LGDMSClient.odex ./backup/system/app/LGDMSClient.odex
    adb pull /system/app/LGDMSClient.apk ./backup/system/app/LGDMSClient.apk
    adb pull /system/bin/subsystem_ramdump ./backup/system/bin/subsystem_ramdump
    adb pull /system/bin/dumpstate ./backup/system/bin/dumpstate
    adb pull /system/bin/fssamond ./backup/system/bin/fssamond
    adb shell "/data/local/tmp/getroot /data/local/tmp/remove_apps_and_bins.sh"
    adb wait-for-device
    adb shell "/data/local/tmp/getroot /data/local/tmp/install.sh"
    adb wait-for-device
    adb shell "rm /data/local/tmp/getroot"
    adb shell "rm /data/local/tmp/busybox_file"
    adb shell "rm /data/local/tmp/eu.chainfire.supersu-193.apk"
    adb shell "rm /data/local/tmp/remove_apps_and_bins.sh"
    adb shell "rm /data/local/tmp/install.sh"
    adb shell "rm -rf /data/local/tmp/system"
    
  • カメラ無音化
    /system/media/audio/ui/camera_click.ogg と /system/media/audio/ui/VideoRecord.ogg を退避する.

    adb shell
    su
    mount -o remount,rw /system
    cd /system/media/audio/ui/
    mv camera_click.ogg camera_click.ogg-
    mv VideoRecord.ogg VideoRecord.ogg-
    cd
    sync
    mount -o remount,ro /system
    exit
    exit
    

    #起動音と起動後のパスフレーズ入力時のキークリック音も消したいが見当たらず.

  • アプリ入れたり