3月 29

Debian Jessie のAdobe Flash Player をupdate-flashplugin-nonfreeで最新にする

IMGP9666_DNG

最近Debian Jessie でAdobe Flash が古いと怒られてるけどpkgでなかなか降りて来ないのでupdate-flashplugin-nonfree を手動で叩いて最新にしたメモです.
#え?GNU Gnashですか?ちょっとつらいですねARM とかでも動くのは良いんですが….

最近Iceweasel やFirefox でAdobe Flash のあるページを見ようとするとバージョンが古いのでAdobe Flash がブロックされます.とりあえず許可すると動作しますが面倒だし意図しないものも実行してしまいそうです.Jessie はtesting とはいえもう2週間位この状態が続いている気がするのでもしかしてFirefox がLinux以外のバージョンを元に古いと行ってる可能性があるのでは?と思って以下のページで確認すると最新は11.2.202.451 なのに対して11.2.202.425 と実際古かったです.

#しかしLinux版大分バージョン番号が離れてきましたね….今のところ見当たらないけどそろそろ対応できないsiteとか出てきたりして.

Debian Jessie ではAdobe Flash はflashplugin-nonfree パッケージを利用して導入しています.このパッケージはAdobe Flash Player のバージョンの確認を行い,最新版をダウンロードして導入してくれるものです.パッケージの中を見るとこんな感じでした.

% dpkg -L flashplugin-nonfree
/.
/var
/var/lib
/var/lib/flashplugin-nonfree
/var/cache
/var/cache/flashplugin-nonfree
/usr
/usr/sbin
/usr/sbin/update-flashplugin-nonfree
/usr/share
/usr/share/applications
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/update-flashplugin-nonfree.8.gz
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/22x22
/usr/share/icons/hicolor/22x22/apps
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/24x24
/usr/share/icons/hicolor/24x24/apps
/usr/share/icons/hicolor/16x16
/usr/share/icons/hicolor/16x16/apps
/usr/share/pixmaps
/usr/share/bug
/usr/share/bug/flashplugin-nonfree
/usr/share/bug/flashplugin-nonfree/script
/usr/share/doc
/usr/share/doc/flashplugin-nonfree
/usr/share/doc/flashplugin-nonfree/copyright
/usr/share/doc/flashplugin-nonfree/changelog.gz
/usr/share/doc/flashplugin-nonfree/README
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/flashplugin-nonfree
/usr/lib
/usr/lib/flashplugin-nonfree
/usr/lib/flashplugin-nonfree/pubkey.asc
/usr/lib/mozilla
/usr/lib/mozilla/plugins
/usr/bin

README を確認するとWiki page 読んでねとのこと.

% cat /usr/share/doc/flashplugin-nonfree/README
Please read the information at:

http://wiki.debian.org/FlashPlayer

てことで--status で確認を行い,--installで最新に出来るようです.実際に叩いてみます.

% sudo /usr/sbin/update-flashplugin-nonfree
Usage:
  update-flashplugin-nonfree --install
  update-flashplugin-nonfree --uninstall
  update-flashplugin-nonfree --status
Additional options:
  --verbose
  --quiet
% sudo /usr/sbin/update-flashplugin-nonfree --status
Flash Player version installed on this system  : 11.2.202.425
Flash Player version available on upstream site: 11.2.202.451
flash-mozilla.so - auto mode
  link currently points to /usr/lib/flashplugin-nonfree/libflashplayer.so
/usr/lib/flashplugin-nonfree/libflashplayer.so - priority 50
/usr/lib/gnash/libgnashplugin.so - priority 10
Current 'best' version is '/usr/lib/flashplugin-nonfree/libflashplayer.so'.
% sudo /usr/sbin/update-flashplugin-nonfree --install
--2015-03-29 06:35:12--  https://fpdownload.macromedia.com/get/flashplayer/pdc/11.2.202.451/install_flash_player_11_linux.x86_64.tar.gz
 :
% sudo /usr/sbin/update-flashplugin-nonfree --status
Flash Player version installed on this system  : 11.2.202.451
Flash Player version available on upstream site: 11.2.202.451
flash-mozilla.so - auto mode
  link currently points to /usr/lib/flashplugin-nonfree/libflashplayer.so
/usr/lib/flashplugin-nonfree/libflashplayer.so - priority 50
/usr/lib/gnash/libgnashplugin.so - priority 10
Current 'best' version is '/usr/lib/flashplugin-nonfree/libflashplayer.so'.

ということで最新の11.2.202.451になりました.
なんで最近apt コマンドで最新になっていないのかは未確認です….

3月 29

OpenSSH 6.8/6.8p1 で鍵指紋のアルゴリズムの規定値が変わったので試す

openssh

OpenSSH 6.8/6.8p1 のリリースノートを眺めていて気になる点が.
http://www.openssh.com/txt/release-6.8

* Add FingerprintHash option to ssh(1) and sshd(8), and equivalent
   command-line flags to the other tools to control algorithm used
   for key fingerprints. The default changes from MD5 to SHA256 and
   format from hex to base64.
 Fingerprints now have the hash algorithm prepended. An example of
   the new format: SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE
   Please note that visual host keys will also be different.

鍵指紋の規定アルゴリズムがMD5 からSHA256 に変わり,表示形式もhex からbase64 になった,visual host key も変わる.ということで確認してみました.

従来のコマンドでの鍵指紋表示.MD5/hex が使われる

% ssh-keygen -l -v -f /etc/ssh/ssh_host_ecdsa_key
256 e8:d0:53:e7:34:59:e9:77:3a:e7:8d:8a:a9:f6:91:84 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
+---[ECDSA 256]---+
|            ..   |
|           o.    |
|        . =.     |
|     . o = .. . .|
|    . + E o  . o |
|     o . . .  o .|
|      .   o    =.|
|        .  +  . o|
|       ..o+ ..   |
+-----------------+

OpenSSH 6.8/6.8p1 のコマンドでの鍵指紋表示.SHA256/base64が使われて鍵指紋の頭にSHA256が付いたりvisual host key の見た目も変わる.

% /home/mk/usr/local/openssh-6.8p1/bin/ssh-keygen -l -v -f /etc/ssh/ssh_host_ecdsa_key
256 SHA256:pDZReijOXeDXAE0IgYb5E+DHgbyvClEllKCs499RI54 root@x220(ECDSA)
+---[ECDSA 256]---+
|+*+++oo=+        |
|*o*o...=.o       |
|.=o+. = = .      |
|.o+o o B         |
|+ ..o.=oS        |
|.o ...+..        |
|...  E           |
|... . .          |
|o  . .           |
+----[SHA256]-----+

しかし,-E option が提供されるようになってアルゴリズムを指定できるのでこれでMD5/hex で鍵指紋の確認が可能.
※ssh-keygen —help より

   ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]

※man より

 -E fingerprint_hash
         Specifies the hash algorithm used when displaying key fingerprints.  Valid options are: “md5” and “sha256”.  The default is “sha256”.

OpenSSH 6.8/6.8p1 のコマンドでMD5 を指定.MD5/hex で鍵指紋が表示される.ただ,アルゴリズムのMD5 が鍵指紋の頭につくし後ろにcomment も付くのでdiff とかを使うと差異が出る.visual host key も下に[MD5]がつくので同様.

% /home/mk/usr/local/openssh-6.8p1/bin/ssh-keygen -l -v -E md5 -f /etc/ssh/ssh_host_ecdsa_key
256 MD5:e8:d0:53:e7:34:59:e9:77:3a:e7:8d:8a:a9:f6:91:84 root@x220(ECDSA)
+---[ECDSA 256]---+
|            ..   |
|           o.    |
|        . =.     |
|     . o = .. . .|
|    . + E o  . o |
|     o . . .  o .|
|      .   o    =.|
|        .  +  . o|
|       ..o+ ..   |
+------[MD5]------+
% ssh-keygen -l -v -f /etc/ssh/ssh_host_ecdsa_key

てことで暫くはMD5/SHA256の2種類の鍵指紋を提供したほうが良さそうですね.

3月 29

Thinkpad x201s にBluetooth module 増設

最近のメインマシンはThinkpad x201s です.これは2台めで中古で買って元のものとニコイチで使っています.良い部品はだいたい移行していたのですが,Bluetooth module は液晶パネルしたとめんどくさいので後回しになっていたのでした.でもXperia Pro でBluetooth テザリングが可能になったので重い腰を上げることに.実際やってみるとあっという間でした.

Thinkpad は保守マニュアルが日本語で公開されているのでとても便利です :)

昔から公開していて,Webでpdfが公開される前はコピーサービスで入手していました.これのおかげで試行錯誤する必要がなくとても助かっています.これもThinkpadを使っている理由の一つです :)

マニュアルを見ると以下の辺りを参考にLCD全面ベゼルを取り外せば良いようですが,ネジキャップを剥がすのとかが面倒です.試しに赤く印をつけた3本だけを外して試すと旧マシンからモジュールの取り出しが出来ました.同様に新マシンも3本だけネジを外して取り付けも出来ました.
Screenshot from 2015-03-28 10:13:07
IMG_20150328_091845IMG_20150328_093620

組み付けた後起動するとさくっと認識.Bluetooth PAN 接続も問題なく行えました.
Screenshot from 2015-03-28 10:11:29

たまにUSBドングルで利用していましたが内臓はスッキリしてていいですね.

Thinkpad関連でよく利用するお店

  • ThinkFactory IBM Lenovo秋葉原 持込修理 販売 保守パーツ 旧PS/PLAZA WAKAMATSU Thinkpadコーナー
  • 中古 ThinkPad 販売専門店 Be-Stock! 鹿児島県鹿屋市に実店舗がある中古店.通販が主で店舗には余り物は並んでない.言えば出てくる.
  • eBay パーツをよく買う
  • 3月 27

    Xperia Pro(MK16a)に入れたCM12を使ってみる

    Xperia Pro(MK16a)にCM12を入れました.ちょこちょこ設定をしてみます.

    Bluetoothテザリングを試す

    先ずはやりたかったBluetoothテザリングの設定などをしてみます.
    といってもメニューから辿ってOnにするだけです.この設定は再起動してもそのままのようです.
    Screenshot_2015-03-27-13-54-20Screenshot_2015-03-27-13-54-36Screenshot_2015-03-27-13-54-52

    後は適当な機器とペアリングをすれば接続できます.同時接続も可能で3台までは確認しました.同時にRazikoをBluetoothヘッドホンで聞いても大丈夫.
    Screenshot_2015-03-27-13-59-43

    このテザリング機能はなかなか良く出来ていて,XperiaProが3Gに接続されている場合はもちろん,Wi-Fiに接続されている場合はそちらにルーティングを行います.これはなかなか便利.
    公衆Wi-Fiサービスなどで1台しか接続できない場合もありますがそういう時も大丈夫ですね.

    暫く使ってみていますが,途中で切れてしまうこともなく安定しています.
    #手持ちのAUの国内端末すぐ通信できなくなるので見習って欲しい….

    root権を使えるようにする

    adb shellからsuでrootになれず.SuperSUも使えなくてあれ?と思ったのですがCM12ではちょっと方法が変わっているようです.開発者向けオプションの中に以下のような設定ができていました.とりあえずADB shellで使いたいので「ADBのみ」の設定に
    Screenshot_2015-03-23-02-15-40 (2)

    カメラのシャッター音を消してみる

    ADBでrootが使えるように設定した後,シャッター音を消すためにadb shellでXperiaProの中に入ります.

    % ./adb shell
    shell@MK16i:/ $
    

    suコマンドでrootになります.

    shell@MK16i:/ $ su
    root@MK16i:/ #
    

    シャッター音らしきファイルをfindコマンドで探します.それらしいものがありました.

    root@MK16i:/ # find /system -name "*.ogg"|grep -i camera
    /system/media/audio/ui/camera_focus.ogg
    /system/media/audio/ui/camera_click.ogg
    

    該当のファイルシステムを書き込みできるようにremountします.

    root@MK16i:/ # df
    Filesystem               Size     Used     Free   Blksize
    /dev                   219.4M    36.0K   219.4M   4096
    /sys/fs/cgroup         219.4M     0.0K   219.4M   4096
    /mnt/asec              219.4M     0.0K   219.4M   4096
    /mnt/obb               219.4M     0.0K   219.4M   4096
    /system                919.5M   568.7M   350.8M   4096
    /cache                   4.0M   804.0K     3.2M   4096
    /data                    2.0G   505.2M     1.5G   4096
    /mnt/media_rw/sdcard0     5.4G   302.5M     5.1G   32768
    /mnt/secure/asec         5.4G   302.5M     5.1G   32768
    /storage/sdcard0         5.4G   302.5M     5.1G   32768
    root@MK16i:/ # mount -o remount,rw /system
    root@MK16i:/ # mount |grep /system
    /dev/block/mtd/by-name/system /system yaffs2 rw,seclabel,relatime 0 0
    

    該当ファイルをリネームします.

    root@MK16i:/ # cd /system/media/audio/ui/
    root@MK16i:/system/media/audio/ui # ls
    Dock.ogg
    Effect_Tick.ogg
    KeypressDelete.ogg
    KeypressInvalid.ogg
    KeypressReturn.ogg
    KeypressSpacebar.ogg
    KeypressStandard.ogg
    Lock.ogg
    LowBattery.ogg
    Trusted.ogg
    Undock.ogg
    Unlock.ogg
    VideoRecord.ogg
    WirelessChargingStarted.ogg
    camera_click.ogg
    camera_focus.ogg
    root@MK16i:/system/media/audio/ui # mv camera_click.ogg camera_click.ogg-
    root@MK16i:/system/media/audio/ui # mv camera_focus.ogg camera_focus.ogg-
    root@MK16i:/system/media/audio/ui # mv VideoRecord.ogg VideoRecord.ogg-
    

    元のようにファイルシステムを読み込み専用に戻します.

    root@MK16i:/ # mount -o remount,ro /system
    root@MK16i:/ # mount |grep /system
    /dev/block/mtd/by-name/system /system yaffs2 ro,seclabel,relatime 0 0
    

    カメラアプリを試すとシャッター音がしなくなっていました.成功のようです.

    アプリを導入してみる

    CM12にしてストレージは結構空きが出来たしSDへの導入も出来るようになりましたが,重いアプリは辛いのであまり入れていません.とりあえずキーボードを活かすためにエディタのJota+,日本語入力のためにFlickWnn,GPSログを取るためにOSMTracker,データやり取りのためにownCloud/Picasa Tool,サイマルラジオのRaziko(radiko.jp,らじる),念の為?Ingressといったところです.
    Screenshot_2015-03-27-14-08-40

    FlickWnn利用時はShift+Spaceで入力切替,右端の地球マークのキーで大文字小文字切り替えです.起動しは遅いけど起動してしまえば普通に入力できます.

    最近メインで使っているSNSのGoogle+も入れてみたのですが,重くて使い物にならないので諦めました.投稿機能だけでいいので軽いものとかがあると良いのですけど….標準ブラウザでの閲覧も重いです.モバイル版だとそこそこ軽いですが,投稿時に写真添付するのに画面遷移が必要だったりと結構ストレスです.この端末では諦めたほうが良さそう.

    しかし,重いとはいえOSが最新になったのは嬉しいです.重いと言っても2.3の頃と同じくらいの重さな感じなので戻す気はしません.今はいろいろと穴が多くてAndroid 4.3以前は使いたくないですしね….
    国内の大抵の端末は2年縛りがあってもそれ以前にサポートやめちゃって穴の開いたまま使うか新しいのに乗り換えるしか無いので辛いです.ずっとサポートされるのが理想ですが,サポートしないならこの端末のように公式でロック解除方法を提供してくれるのが普通になるといいのにと思います(Nexusシリーズなどは公式で初めからロック解除可能).そうしたら今回のようにOSを入れ替えて使い続けることが出来るかもしれません.そうならないとCMの開発対象になる国際端末やその国内版じゃないとなかなか手を出す気にならないです….
    #でも保証が無くなるのを理解しないでサポートに文句言うような人が要ると難しいのかもですね.

    3月 27

    XperiaPro(MK16a)にLolipopベースのCyanogenMod12を導入してみる

    Xperia Pro(MK16a)をBootloader Unlock してみた | matoken’s meme
    でXperia Pro のブートローダーのアンロックをしたのでROMを入れ替えてみます.
    入れ替えるROMはAndroidベースのCyanogenModを利用します.

    CyanogenModのページを見るとXperiaProのイメージはメンテされていないようです.

    古いXperiaのプロジェクトのLegacyXperia Projectを見に行くとアクティブなようなのでこちらのイメージを利用することにします.

    せっかくなのでLolipop ベースのCyanogenMod12 を試してみます.

    BasketBuild からcm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zipを入手しました.cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip.md5 は0byte でした….BasketBuild には8caec5afb32aacd9e529ca31f6df6595 と書かれていたのでこれと突き合わせました.

    % echo '8caec5afb32aacd9e529ca31f6df6595  cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip' > cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip.md5
    % md5sum -c cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip.md5
    cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip: 完了
    % sha1sum cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip
    7d9b2c06c34bb540f5ed74635e7ddee65d27c2fa  cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip
    % sha256sum cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip 
    b82909fffea8ddf9ceb4f69b84970e7148a4de1b6f745a7a17f1c9cf9b8b2436  cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip
    % sha512sum cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip 
    5a7c6b5c0314ee4df6d9e381669518468c265cdeec0c831c20278c852aa2c4c32146ede11a5650b57e07ecddccb02950b58509d3a53310512be704975e0cbae9  cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip
    

    CyanogenModにはGoogleの不自由なソフトウェアやプロプライエタリなドライバが同梱されていません.別パッケージのGoogle Apps(GApps)として配布されています.

    GAppsは巨大なので機能を削ってスリム化されたパッケージも配布されています.

    今回はこの pa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zip を利用しました.hashは見当たりませんでした.手元では以下のような感じです.

    % md5sum pa_gapps-modular-pico\(uni\)-5.0.1-20150315-signed.zip
    3ee06867bb52465a83fd7625f7750f75  pa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zip
    % sha1sum pa_gapps-modular-pico\(uni\)-5.0.1-20150315-signed.zip 
    639411d58817e38212b892a34832bbe1db094d36  pa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zip
    % sha256sum pa_gapps-modular-pico\(uni\)-5.0.1-20150315-signed.zip
    f4a88039ff7870eaf989ab63c5d01ac315aecef3e66bff24e723cb8de66681fe  pa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zip
    % sha512sum pa_gapps-modular-pico\(uni\)-5.0.1-20150315-signed.zip 
    daec26a87eb5acb6a492d6a691c2d602adc9fb201a9d9e0604f199654c16c59dcc99f636f21684a38931930951cbf68692a4c4ac717a09a60802fc0d2ce854b2  pa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zip
    

    #このPA_GAppsは記事を書くために確認したら開発をやめちゃうようです><
    ##次の辺りが使えるかもしれません.(未確認)

    cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zippa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zip の2ファイルをmicroSD Card にコピーして,microSD をXperiaProに挿します.

    cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip内からboot.imgファイルを取り出します.

    % unzip cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip boot.img
    Archive:  cm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zip
    signed by SignApk
      inflating: boot.img
    

    Xperia Pro をnvflash モードで起動します.

    • 電源off 状態からメニューキーを押しながらUSB Cable 接続
    • 右上側面のHDMIコネクタ上のLEDが青になる

    nvflash コマンドでboot.img を送り込み起動させます.

    % ./fastboot flash boot boot.img
    [sudo] password for mk:
    sending 'boot' (8704 KB)...
    (bootloader) USB download speed was 139264kB/s
    OKAY [  0.999s]
    writing 'boot'...
    (bootloader) Download buffer format: boot IMG
    (bootloader) Flash of partition 'boot' requested
    (bootloader) S1 partID 0x00000003, block 0x00000280-0x000002e3
    (bootloader) Erase operation complete, 0 bad blocks encountered
    (bootloader) Flashing...
    (bootloader) Flash operation complete
    OKAY [  1.707s]
     inished. total time: 2.706s
    

    この後,USB Cableを抜いて電源を入れます.LegacyXperiaのロゴが出ている間に下ボリュームキーを連打します.うまく行くとCYANOGEN Recoveryの画面になります.

    IMG_20150327_130657

    先ずはデータ消去を行います.

    • ボリュームの上下でメニューを移動し,Wipe cache partition で電源キーを押し決定
    • ボリュームの上下でメニューを移動し,Wipe data/factory resetで電源キーを押し決定

    ROMを焼きます.

    • ボリュームの上下でメニューを移動し,Apply update で電源キーを押し決定
    • Choose from sdcard0を選択し,SD Card内のcm-12-20150314-UNOFFICIAL-LegacyXperia-iyokan.zipを選択して焼く
    • 同様にGAppsのpa_gapps-modular-pico(uni)-5.0.1-20150315-signed.zipを焼きます.
    • Reboot system nowで再起動します.

    後はAndroidの初期設定です.しかし,初期設定時はすごく重い(ホームボタンを押してもタイムアウトして何も出ないうちに画面が消灯したりする)ので気長にやりましょう.初期設定が終わればそこそこ実用的な速度になります.

    IMG_20150322_101440
    Screenshot_2015-03-27-13-36-34Screenshot_2015-03-27-13-36-41

    重いけどIngressも動きます.
    Screenshot_2015-03-25-12-45-44Screenshot_2015-03-25-12-59-16

    3月 24

    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を入れ替えてみます.

    3月 06

    ケーブルの抜け防止に良さそうな製品

    AVANTEC(アバンテック) | 電源、USB、HDMI等コネクタ、ケーブルの抜け防止製品のご紹介

    サーバやスイッチなんかの電源なんかは抜け防止の金具が付いてますが,PCなんかだと付いてません.
    電源だとサプライ品で見たことありましたがこちらの製品だとUSBやスマホなんかのmicroUSBなんかも対応するものがあるみたい.場合によっては便利そうです.
    オンラインショップはあるようですが,Amazonとかでも売ってると便利そうです.

    3月 05

    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
    

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