趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • Nexus7(2012)にAndroid 6.0(MarshMallow)をインストール

    投稿日 2017年 2月 18日 コメントはありません

    いまさらながら、Nexus7(2012) 3GモデルにAndroid 6.0(MarshMallow)をインストールしてみました。

    1.準備

    環境は例によって Linux Mint 18 (64bit)です。 android-tools-adb とか、android-tools-fastboot などのandroid関連のパッケージは apt でインストール済みです。

    ダウンロードしておくものは以下のとおりです。Nexus7(2012) 3Gモデルは開発コードが tilapia というらしく、この tilapia 向けのものを用意しておく必要があります。

    • TWRP
      Term Win Recovery ProjectというソフトウェアでAndroidに内蔵されているリカバリプログラムを置き換えるものです。ROMイメージはTWRP用の物が多いので、TWRPがないと書き込めません。自分は twrp-3.0.2-0-tilapia.img をダウンロードしてきました。
    • ROMイメージ
      tilapia用のイメージを探します。だいたい xda-developper にたどり着くようですが、1つは pure AOSP というものですが、6.0.1 の r46 ベースのようです。もう1つは OmniROM というもので、 6.0.1 の r68 ベースのもののようです。(自信なしw)
      これらの記事からリンクされているROMイメージをダウンロードしておきます。
    • Gapps
      Google Playを始めとするデフォルトインストールアプリの詰め合わせのようです。Openソース版(かな?)がOpenGAPPSからダウンロードできます。PlatfomはARM、Androidのバージョンは6.0、VariantについてはNexus7(2012)はシステムパーティション(=リカバリ領域?)が650MBしかないので、最小限のnanoかpicoを選んでダウンロードします。

    2.TWRPのインストール手順

    音量ダウンボタンを押しながら電源ONしてブートローダを起動します。倒れたドロイドくんが出てくる画面(ブートローダ)になったら、PCと

    $ fastboot flash recovery twrp-3.0.2-0-tilapia.img
    sending 'recovery' (9514 KB)...
    OKAY [ 1.182s]
    writing 'recovery'...
    OKAY [ 0.386s]
    finished. total time: 1.568s

    としてTWRPを書き込みます。書き込んだら、ブートローダを以下の手順で再起動します。
    (ここで通常のシステム起動を行うと、リカバリが書き戻されるので、再度最初からやりなおし)

    $ fastboot reboot-bootloader
    rebooting into bootloader...
    OKAY [ 0.015s]
    finished. total time: 0.166s

    ブートローダが起動したら、音量ボタンでリカバリモードを選択して電源ボタンで選択するとTWRPが起動します。
    起動すると、画面上部に「Unmodified System Partition」と表示されて、システムパーティションの内容がTWRPが起動できるようになっていないことが表示されます。下の方の「Swipe to Allow Modification」のところをスワイプして、次へ進みます。(おそらく、この操作で常にTWRPが起動するようにシステムパーティションが修正されます)

    次回以降、リカバリを起動すると上記の青字の部分は聞いてきません。(システムパーティションを書きなおしたりすると、デフォルトのリカバリに戻ったりするので、再度インストールする必要がある場合があるようです)

    3.ROMイメージの書き込み

    今回は、PCからROMイメージを書き込みます。

    ブートローダ経由でTWRPを起動します。(ちなみに、充電ケーブルが挿さっていると、ブートローダで音量上下ボタンが効かないようです)
    「Advanced」⇒「ADB Sideload」を選択します。ROMイメージを書き込みする場合は「Wipe Dalvik Cache」と「Wipe Cache」にチェックを入れて、「Swipe to Start Sideload」をスワイプすると、ダウンロード待ちになるのでPC側から

    $ adb sideload omni-6.0.1-20160930-tilapia-HOMEMADE.zip

    として、ROMイメージファイルを書き込みます。(zipファイルがROMイメージファイルのファイル名です。)
    完了したら、Android側で「Back」を押して、もう一度「ADB Sideload」を選択します。今度は「Wipe Dalvik Cache」と「Wipe Cache」のチェックは外して、再度「Swipe to Start Sideload」をスワイプします。

    $ adb sideload open_gapps-arm-6.0-pico-20170217.zip

    として、Gapps を書き込みます。(zipファイルがGappsファイルのファイル名です。)

    完了したら、「Reboot System」でNexus7を再起動します。


  • 普通にはadbで認識できないAndroid機を認識させる

    投稿日 2016年 9月 10日 コメントはありません

    通常のAndroid機は /etc/udev/rules-d/51-android.rules にベンダIDを追加してやるとadbで操作できるようになるのですが、coviaのFLEAZ F4s/F4s+は認識することができません。いろいろ試してみたところ、わかってきたことをメモしておきます。環境は LinuxMint18 MATE edition 64bit です。

    まずはUSBのデバイスIDを調べます。(必要なもの以外は結果から削除しています)

    $ lsusb
    Bus 001 Device 016: ID 0a5c:e688 Broadcom Corp.

    BroadcomのチップのベンダIDそのままのようです。(これはF4sのもの。F4s+はデバイスIDはe681になるようです)
    とりあえず、/etc/udev/rules-d/51-android.rules にベンダIDを記載して再読み込みさせてみます。

    $ cat /etc/udev/rules.d/51-android.rules 
    SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", MODE="0666", GROUP="plugdev"
    $ sudo udevadm control -R

    この状態で、USBを抜き差ししてから adb コマンドを叩いてみても、

    $ adb devices
    List of devices attached

    となって、デバイスが見つかりません。
    いろいろググると、~/.android/adb_usb.ini にベンダIDを書くとよい、というような記載をいくつか見つけたので試してみます。

    $ cat .android/adb_usb.ini 
    0x0a5c
    
    $ sudo service udev restart
    $ adb kill-server
    $ adb devices
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached 
    ???????????? no permissions

    状況が変わりました。この状態で TCP/IP 接続でデバッグする設定にしてみます。

    $ adb tcpip 5555
    error: insufficient permissions for device

    パーミッションで蹴られてしまいました。ルート権限で試してみます。

    $ sudo adb kill-server
    $ sudo adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ adb devices
    List of devices attached 
    F4Sxxxxxxxxx unauthorized
    
    $ sudo adb tcpip 5555
    error: device unauthorized. Please check the confirmation dialog on your device.

    端末上にデバッグ接続可否のダイアログが出ていたので、許可してみます。

    $ adb tcpip 5555
    restarting in TCP mode port: 5555
    $ adb install xxxxxxx.apk
    2460 KB/s (261419 bytes in 0.103s)
     pkg: /data/local/tmp/xxxxxxx.apk
    Success

    となって無事にインストールできました。

    改めて /etc/udev/rules-d/51-android.rules を削除してやってみました。
    どうも、/etc/udev/rules-d/51-android.rules は必要ないようです。
    一般ユーザー権限では、

    $ adb devices
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached 
    ???????????? no permissions

    となってパーミッションエラーになりますが、通常の Android機はルート権限で adb server を起動すると認識できるようです。

    $ sudo adb kill-server
    $ sudo adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ sudo adb tcpip 5555
    restarting in TCP mode port: 5555

    さらに、今回の covia FLEAZ F4s/F4s+ のようになにもしないと認識しない機種でも、 ~/.android/adb_usb.ini にベンダIDを書いてやれば認識できるようです。

    $ echo "0x0a5c" > ~/.android/adb_usb.ini
    $ cat ~/.android/adb_usb.ini 
    0x0a5c
    B ~ $ adb devices
    List of devices attached
    
    $ sudo adb kill-server
    $ sudo adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ adb devices
    List of devices attached 
    F4Pxxxxxxxxx device
    
    $ sudo adb tcpip 5555
    restarting in TCP mode port: 5555

    ここで F4s+ を外して F4s を接続してみます。

    $ adb devices
    List of devices attached 
    F4Sxxxxxxxxx device
    
    $ sudo adb tcpip 5555
    restarting in TCP mode port: 5555

    となり、無事に認識しました。


  • Nexus7(2012)のファームウェアをLoliPopにアップデート

    投稿日 2016年 5月 21日 コメントはありません

    手元にあるNexu7(2012/3Gモデル)をAndroid 5.1.1(LoliPop)にアップデートしてみます。
    手順はFactory Images for Nexus Devicesに書かれているとおりです。下の方の使用条件に同意してチェックすると具体的なイメージやアップデートの方法が表示されます。

    下記にLinuxMint17(64bit)での手順を記載しておきます。言うまでもないことですが、ファームアップデートは自己責任で。

    1)ツールのインストール

    $ sudo apt-get update
    $ sudo apt-get install android-tools-adb
    $ sudo apt-get install android-tools-fastboot

    2)Android端末を開発者モードに変更する

    Android4.4.4ではUSBでPCに接続しても、PC側では認識されません。現在入っている
    設定→タブレット情報をタップして、タブレット情報を表示させ、ビルド番号を連打すると「開発者モードになりました」という表示がされ、設定メニューの中に「開発者向けオプション」が現れます。開発者向けオプションの中の「USBデバッグ」にチェックを入れてからPCに接続します。

    3)Android端末のUSBデバイスIDを確認する

    $ lsusb
    Bus 002 Device 091: ID 18d1:d002 Google Inc. 
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 05e3:0605 Genesys Logic, Inc. USB 2.0 Hub
    Bus 001 Device 007: ID 2101:1406 ActionStar 
    Bus 001 Device 006: ID 046d:c534 Logitech, Inc. Unifying Receiver
    Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    この場合、最初の18d1:d002がNexus7(2012)デバイスIDです。(18d1がベンダID、d002がデバイスID)

    4)udevルールを作成

    $ sudo vi /etc/udev/rules.d/51-android.rules

    内容はこんな感じ

    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

    5)パーミッションを変更して、udevを再起動

    $ chmod 644 /etc/udev/rules.d/51-android.rules
    $ sudo /etc/init.d/udev restart

    6)イメージのダウンロードと検証

    以降は、公式サイトの手順の「Flashing instruction」に沿って進めていきます。

    まずはイメージのダウンロードと検証です。適当なディレクトリにイメージをダウンロードして、

    $ md5sum nakasig-lmy47v-factory-b2d44613.tgz
    c30e5d3bd7cef9edde38ce58bf741857 nakasig-lmy47v-factory-b2d44613.tgz

    としてファイルの正当性をチェックします。正しいファイルがダウンロードできたら、展開しておきます。

    7)イメージの書き込み

    Nexus7をPCに接続して、ターミナルから

    $ adb reboot bootloader

    でリブートさせます。初回はNexus側にUSBデバッグを許可するか表示されますので、「常に許可する」のチェックボックスにチェックを入れてOKを押します。
    Nexus側にブートローダの画面が表示されますので、

    $ fastboot oem unlock
    ...
    (bootloader) Bootloader is already unlocked
    OKAY [ 0.020s]
    finished. total time: 0.020s

    として、ブートローダをアンロックします。自分の場合は、以前5.0.2から4.4.4に戻した際にアンロックしてありましたので、上記のように「already unlocked」となりました。

    引き続きファームウェアアップデートに入ります。当然ですが、端末に保存されている情報はすべて消えてしまいますので、十分注意してください。また、不慮の事故等で端末が文鎮化するかもしれませんので、自己責任で。

    ~/ダウンロード $ cd nakasig-lmy47v
    ~/ダウンロード/nakasig-lmy47v $ ./flash-all.sh 
    ...
    (bootloader) Bootloader is already unlocked
    OKAY [ 0.020s]
    finished. total time: 0.020s
    erasing 'boot'...
    OKAY [ 0.035s]
    finished. total time: 0.035s
    ******** Did you mean to fastboot format this partition?
    erasing 'cache'...
    OKAY [ 0.174s]
    finished. total time: 0.174s
    erasing 'recovery'...
    OKAY [ 0.035s]
    finished. total time: 0.036s
    ******** Did you mean to fastboot format this partition?
    erasing 'system'...
    OKAY [ 0.370s]
    finished. total time: 0.370s
    ******** Did you mean to fastboot format this partition?
    erasing 'userdata'...
    OKAY [ 12.177s]
    finished. total time: 12.177s
    sending 'bootloader' (2100 KB)...
    OKAY [ 0.270s]
    writing 'bootloader'...
    OKAY [ 1.225s]
    finished. total time: 1.495s
    rebooting into bootloader...
    OKAY [ 0.020s]
    finished. total time: 0.020s
    sending 'radio' (16384 KB)...
    OKAY [ 1.973s]
    writing 'radio'...
    OKAY [ 0.673s]
    finished. total time: 2.646s
    rebooting into bootloader...
    OKAY [ 0.020s]
    finished. total time: 0.020s
    archive does not contain 'boot.sig'
    archive does not contain 'recovery.sig'
    archive does not contain 'system.sig'
    --------------------------------------------
    Bootloader Version...: 4.23
    Baseband Version.....: 1231_0.18.0_0409
    Serial Number........: xxxxxxxxxxxxxxxx
    --------------------------------------------
    checking product...
    OKAY [ 0.040s]
    checking version-bootloader...
    OKAY [ 0.023s]
    checking version-baseband...
    OKAY [ 0.030s]
    sending 'boot' (5186 KB)...
    OKAY [ 0.642s]
    writing 'boot'...
    OKAY [ 0.253s]
    sending 'recovery' (5740 KB)...
    OKAY [ 0.706s]
    writing 'recovery'...
    OKAY [ 0.237s]
    erasing 'system'...
    OKAY [ 0.109s]
    sending 'system' (650039 KB)...
    OKAY [ 77.868s]
    writing 'system'...
    OKAY [ 36.357s]
    erasing 'userdata'...
    OKAY [ 4.903s]
    formatting 'userdata' partition...
    Creating filesystem with parameters:
     Size: 30063722496
     Block size: 4096
     Blocks per group: 32768
     Inodes per group: 8192
     Inode size: 256
     Journal blocks: 32768
     Label: 
     Blocks: 7339776
     Block groups: 224
     Reserved block group size: 1024
    Created filesystem with 11/1835008 inodes and 159204/7339776 blocks
    sending 'userdata' (139157 KB)...
    writing 'userdata'...
    OKAY [ 29.779s]
    erasing 'cache'...
    OKAY [ 0.088s]
    formatting 'cache' partition...
    Creating filesystem with parameters:
     Size: 464519168
     Block size: 4096
     Blocks per group: 32768
     Inodes per group: 7088
     Inode size: 256
     Journal blocks: 1772
     Label: 
     Blocks: 113408
     Block groups: 4
     Reserved block group size: 31
    Created filesystem with 11/28352 inodes and 3654/113408 blocks
    sending 'cache' (9052 KB)...
    writing 'cache'...
    OKAY [ 1.733s]
    rebooting...
    
    finished. total time: 152.918s

    完了すると、勝手に再起動します。
    最初しばらくは倒れたドロイド君の上に赤三角内に「!」が表示されていて動きがないのでびっくりしますが、しばらくすると画面が変わって起動時の画面(Googleカラーのつぶつぶがぐるぐる廻る)に変わります。この状態が長く(5〜10分位?)続いた後、Welcome画面とともに言語選択する画面に遷移します。


  • Raspberry Pi 3にAndroidから接続する

    投稿日 2016年 5月 5日 コメントはありません

    Raspberry Pi 3はWiFiを標準で搭載しているのでモバイルルータとAndroid端末があれば、どこでも結線なしでAndroidから接続することができます。(もちろん、Raspberry Pi 3には電源供給してやらなければなりませんが・・・)

    アクセスには適当なSSHクライアントとキーボードアプリ(標準のキーボードだとさすがにストレス溜まります)を使えば、簡単です。自分はConnectBotとHackers Keyboardを使っています。

    ただし、AndroidはmDNS/Avahi/Bonjourに対応していないのでIPアドレスを直打ちしなければなりません。できればRaspberry Pi 3側はDHCPのままにしたいところ。

    そこで、mDNS/Avahi/Bonjourでサービスを探してくれるアプリも必要になります。自分はBonjour Browserというのを使っています。

    手順を纏めると、こんな感じです。(Raspberry Pi 3側のWiFi設定はできている前提です)

    1. モバイルルータ、Raspberry Pi 3の電源を投入。
    2. Android側でBonjuor BrowserでRaspberry Pi 3のIPアドレスを調べる
    3. ConnectBotでRaspberry Pi 3にSSHログインする
    4. キーボードをHackers Keyboardに切り替える

    これでいつでもどこでもCUIベースの作業ができますw

    GUIベースもxrdp(Raspberry Pi側)とaFreeRDP(Android側)で一応接続できているけど、使い勝手はイマイチっぽい感じです。もっとよい組み合わせがあれば知りたいところ。


  • Google Playストアが動かなくなった

    投稿日 2015年 8月 10日 コメントはありません

    Covia F4sでGoogle Playストアへの接続ができなくなってしまいました。「接続できません」という表示と再試行のボタンが表示され、アカウント選択の画面が出るばかりです。戻して「再試行」を押してみても変わりません。半日経っても変わりません。

    で、困ったのでぐぐってみてこちらのページを参考に以下のことをやってみたら接続できるようになりましたので、メモしておきます。

    「設定」⇒「アプリ」で「すべて」のアプリを表示させて、

    • 7番の「Google Playストアアプリのデータ削除」
    • 「Googleアプリ」のキャッシュを消去(参考にさせていただいたページにはありません)

    した後で、端末を再起動させたところ、Google Playストアに接続できるようになりました。どちらが効果があったのかわかりませんが、メモとして残しておきます。


  • Covia FLEAZ F4Sを買ってみた

    投稿日 2014年 12月 25日 コメントはありません

    またドロイドくん端末を買ってしまいました。

    StarQ5001が予想外にでかくて結局半ばファブレット状態なのでもっと小さなものを・・・・ということで、AmazonでCovia FLEAZ F4Sを買ってみました。

    これにIIJmioのSMS付きデータSIM(標準サイズ)を挿して使ってみています。なお、自分はゲームなどは一切せず、バリバリにSMSとかLINEとか使い倒すわけでもありません。(というか、LINEはアカウントもありません)

    他の持っている端末(XperiaA、StarQ5001、IODESU)と比較しながらのファーストインプレッションです。

    外観

    まず、なにより小さく軽く薄いです。その分、強度的に不安がないでもないです。自分は小さい端末を鍵なんかも一緒にポケットに突っ込みたいところなので、「安くて頑丈な端末」が欲しいのです。そういう意味ではIODESUの無骨さは良かったんですけどね。まあ、そういう変な使い方をしなければ問題ないと思います。(あ、Gパンの後ろポケットに耐えられるかはわかりません)
    質感は若干プラスチッキーですが、よく見ると1年半前に買ったXperiaAと表面の仕上げはよく似ています。ツルツル仕上げなので油断すると落としそうです。(個人的にはツルツルではなく滑りにくいデザイン・仕上げにして欲しかった)

    動作

    Android4.4(KitKat)のおかげか動作は軽いです。ただしゲームなどはしていませんので、ゲームなどでどうかはわかりません。

    画面

    画面はちょっと青っぽいですが解像度が高いので1画面の情報量は十分ですし、十分綺麗です。一方で、画面サイズは小さいので目の悪い人には少々キツイかもしれません。(大きな文字に設定すれば済む話ですが)
    あと、画面下のホームキーやメニュー、戻るなどのキーの照明がありません。暗いところでは慣れるまでは扱いにくいかもしれません。

    GPS

    GPSは少し使っただけですが初期の測位が遅い気がします。もう少し使い込んでみないとわからないところでしょうが、XperiaA、StarQ5001と比較すると遅いと思います。GPSの電波が普通に届くところと思われるところでは、電源投入直後でも別に遅くなかったです。むしろ早かったくらい。本当に初めてGPSを使ったときの遅さは何だったんでしょう?。あと、電子コンパスも入ってないっぽいです。

    カメラ

    カメラはパンフォーカス(固定焦点)ですので、接写はピンぼけになります。よってバーコードやQRコードの読み取りなどは辛いと思います。当然シャッタースピードも遅いので、ローリングシャッター現象が出ます。暗いところも弱いはずですが、昔のパンフォーカスのカメラ素子に比べると健闘しています。ということで、カメラはXperiaA、StarQ5001と比較すると割り切られています。

    バッテリー

    バッテリーはサイズ相応に減ります。そういう意味でもIODESUの巨大バッテリーは魅力的でした。僅かな期間でしたがIODESUを使っていた時期は「全然電池が減らない」という感じでした。

    その他

    あと、細かいところですが、こんなところが気になりました・・・。

    • MicroUSBの端子が挿しにくいです。気をつけて丁寧に挿さないと何度も挿抜しているうちに破損しそうな気がします。(多分、挿しにくいからと言って力任せに挿すと壊れる気がします)
    • ディスプレイの保護フィルムが付いているんですが、これが微妙に画面サイズよりも大きいです。よって、きちんと貼れません。自分は下の方をハサミでわずかにカットして貼りました。
    • 海外端末が一般にそうなのですが、こいつもストラップホールがありません。ツルツルの表面と相まって、何かの拍子に落として失くしそう。
    • Google Nowランチャーがなぜかうまく入らない。何度も試していると入るのだけど、なぜ入ったのかよくわからない。
    • タッチ時のバイブレータモータの音が少しうるさい&長い。もっと一瞬の駆動でいいような気がするのだけど。

    まとめ

    まあ、文句ばっかり書いてしまいましたが、なにより約1万円という安価端末であることを考えると、割り切りポイント(具体的にはカメラ・・・ですね)をきちんと理解していれば実用に十分耐えるコスパの高い端末だと思います。カメラと物理的なサイズ以外はXperiaAと比較してもそれほど遜色なく、むしろ動作の軽さは上と言ってもいいような気がします。(ROMやRAMは少なめなのでバリバリ動かすと不足するかもしれません。バリバリ動かすと電池容量も不足するでしょうけど。)

    自分は仕事のスケジュール管理(Googleカレンダー)とメモ用(Google Keep)として使っていこうと思います。


  • StarQ Q5001を買ってみた

    投稿日 2014年 10月 20日 コメントはありません

    プライベートの電話番号と仕事の電話番号をわけた結果、やっぱりスケジュール管理にはスマホが便利だよね、でも古いXperiaAcroではAndroid2.3だしメモリ足りないし・・・ということで購入したIODESUでしたが、GPSが全く使えない、どうもFOMAプラスでは使えないっぽい?、(技適上も問題・・・)、ということで、海外出張の時にでも使うか、ということでスーツケースの肥やしになっています。

    で、XperiaAcroを使いつづけているのですが、やっぱりAndroid2.3では

    • スケジュール管理で他のGoogleアカウントのデータを表示できない
    • Google Keepが使えない
      (Google Keep便利です。買いたいものとかメモって便利に使ってます。)

    ということで、安くてちょうどいいのはないかなー?ということで調べてました。

    そうしたところ、LTEは未対応なものの、StarQ Q5001という端末が価格も安く性能もそこそこ良さそうだ、ということがわかってきました。

    • 何といっても安い。ビックカメラで税込みで16,000円でお釣りがくる。
    • 5インチでそこそこ画面が大きい(実際に買ってみたら5インチはデカすぎ・・・)
    • Quad Core 1.3GHz動作、RAM1GB、ROM16GBなのでもたつくこともないだろう(実際、今のところ問題ない)
    • IODESUと違って、それなりにWebで情報が見つかる。
    • StarQ Q5002というLTE対応機もあるけど、こちらは3万円くらいする。
      3万円も出すなら、あと少し出してNexus5を買いたくなる。

    ということで、ビックカメラの通販で買ってみました。ヨドバシSIMとWiFiの組み合わせで2日ほど使ってみての感触ですが、

    • デカい。XperiaAよりもデカい。ちょっとデカすぎ。(代わりに文字が大きく見やすい)
    • 画面は少し青っぽい(ネットでもみかけましたが)
    • ストラップホールがない。仕事で使うときはネックストラップ必須(なんど助かったことか・・・)なので、これは結構致命的。
    • 操作は十分快適。(通信以外で)待たされることはほとんどない。
    • WiFiとFOMA(3G)の組み合わせでどうも問題がある感じ?

    というところです。

    最後のWiFiとFOMA(3G)の組み合わせですが、WiFiをONにした状態で画面を見ていると、アンテナピクトが圏外と2~4本を行ったり来たりします。窓際に持っていっても変わらないのですが、WiFiをOFFにするとアンテナピクトは常時4本+H表示(多分、HSDPAのこと)で安定します。
    この状況から予想できるのは、基板上の無線部分同士が干渉して自家中毒のような症状になっているのではないかということです。ただ、テザリングをONにして別のAndroid機からアクセスしてもアンテナピクトには変動がないことから、単純にWiFiがONだとダメ、ということでもなさそうです。今のところ実害として困るのは、圏外になっている時間が長くなるので電池の減りが早くなります。(通話可能なSIMを挿していると、通話や着信にも影響するのかも?)

    使い込んでみないとわかりませんが、最後の問題さえなければ間違いなくコストパフォーマンスが非常に良い事だけは確かです。


  • 中華Androidパッド買ってみました

    投稿日 2014年 9月 15日 コメントはありません

    以前買った中華AndroidパッドをGoogleカレンダーの表示専用にして部屋に置いて使っていたのですが、突如ハングアップした後、文鎮化してしまいました。
    AndroidパッドはNexus7(2012年版、3G)があるので、通常使う分にはそれでいいのですが、Googleカレンダー表示用に格安中華パッド(タブレット)を買ってみました。

    今回は恵安のKPD702Rというモデルで、あきばおーにて税別5500円でした。主なスペックはこんな感じ。

    • CPU : ATM7021A Dual-core 1GHz
      Cortex-A9ファミリのデュアルコアらしいけど、今時としては速くない。
      もっとも、遅いのはCPUが原因ではないような気がする。
    • メモリ : 512MB
      やっぱり2バイト文字を扱うには少ないのではないかと。遅いのはメモリ不足が原因じゃないかな・・・?
    • ストレージ : 8GB
      ま、こんなもんでしょう。Nexus7と違ってMicroSDスロットもあるので、問題ないかと。あと、遅いのはストレージが遅いからじゃないかという気がします。なんとなく。
    • OS : Android4.2
      いわゆるもっさりバージョン?
    • ディスプレイ : 7インチ、800x480
      解像度が低いのは価格からすると仕方ないですね。色味も悪いです。
      保護シートを剥がした後のパネル表面も波打っています。樹脂製なんだろうか??
    • ネットワーク接続 : WiFiのみ
      3Gがないのはいいですが、Bluetoothがないのは痛いかも。最近はBluetoothテザリングの環境が整いつつあるので、WiFiよりもBluetoothで接続した方が電池の持ちを考えた場合にもいいんですよねぇ・・・。
    • 加速度センサ : あり
      ググると「突然画面が逆さになることがある」という記述をみかけますが、確かにその現象が起きます。感覚的には電源ボタンやカメラは上にくるものですが、これはこのタブレットはカメラがある方が下にくるのが設計上の正しい方向になっているのではないかと思います。そのために画面回転に対応していないアプリを使うと画面が逆さまになってしまうのです。電源ボタンもカメラも外部I/Fも全て下にして使っていると突然画面が逆さになることはありません。
    • カメラ : フロントのみ。30万画素。
      今さら30万画素って何?って感じですが、別に構わないのかも。
    • バッテリ : 2300mAh
      はっきりいって持たないです。そういう意味でもBluetoothテザリングができるようになっていてほしかった・・・。
    • 重さ : 315g
      Nexus7に比べて軽いです。これは非常によいです。
    • その他
      キングソフト製のアプリが初めからいくつかプリインストールされています。キングソフトは日本語IMEの件があってからちょっと信用できないので、嫌ですねぇ・・・。プリインストールなので削除ができないのが苛立ちます。

    まあ、難ありですが、税込み6000円でお釣りがくることを考えると、これもアリなのではないかと思います。あと、意外にマッチしたのが、寝床での2ちゃんねるビューア利用です。軽いのでちょうどいいですね。

    できればroot化してカスタマイズしてみたいところです。


  • 大量のファイル名操作

    投稿日 2014年 5月 6日 コメントはありません

    Androidの本体側も不安でしたので、USBマスストレージとして認識する状態でディスクイメージを吸い上げ、ファイル抽出したところ、JPEGだけで1万個近いファイルがでてきました。(細々としたファイルも含めると10万個くらい?)

    PhotoRecが80近いディレクトリを作ってしまったので、一括して処理しないと面倒です。なので、JPEGのみを集めてくることにしました。

    #どうでもいいけど、本体もFATで処理できてしまった・・・。FATフォーマットなの?

    $ ./testdisk-7.0-WIP/photorec_static Copy-Of-HONTAI.IMG 
    $ cd OUTPUT-HONTAI/
    $ ls
    recup_dir.1 recup_dir.24 recup_dir.39 recup_dir.53 recup_dir.68
    recup_dir.10 recup_dir.25 recup_dir.4 recup_dir.54 recup_dir.69
    recup_dir.11 recup_dir.26 recup_dir.40 recup_dir.55 recup_dir.7
    recup_dir.12 recup_dir.27 recup_dir.41 recup_dir.56 recup_dir.70
    recup_dir.13 recup_dir.28 recup_dir.42 recup_dir.57 recup_dir.71
    recup_dir.14 recup_dir.29 recup_dir.43 recup_dir.58 recup_dir.72
    recup_dir.15 recup_dir.3 recup_dir.44 recup_dir.59 recup_dir.73
    recup_dir.16 recup_dir.30 recup_dir.45 recup_dir.6 recup_dir.74
    recup_dir.17 recup_dir.31 recup_dir.46 recup_dir.60 recup_dir.75
    recup_dir.18 recup_dir.32 recup_dir.47 recup_dir.61 recup_dir.76
    recup_dir.19 recup_dir.33 recup_dir.48 recup_dir.62 recup_dir.77
    recup_dir.2 recup_dir.34 recup_dir.49 recup_dir.63 recup_dir.8
    recup_dir.20 recup_dir.35 recup_dir.5 recup_dir.64 recup_dir.9
    recup_dir.21 recup_dir.36 recup_dir.50 recup_dir.65
    recup_dir.22 recup_dir.37 recup_dir.51 recup_dir.66
    recup_dir.23 recup_dir.38 recup_dir.52 recup_dir.67
    $ mkdir ALLJPG_F
    $ i=1; for f in recup_*/f*.jpg ; do g=00000$i.jpg; mv $f ALLJPG_F/JPGF_${g:(-10)}; i=$((i+1)); done
    $ mkdir ALLJPG_T
    $ i=1; for f in recup_*/t*.jpg ; do g=00000$i.jpg; mv $f ALLJPG_T/JPGT_${g:(-10)}; i=$((i+1)); done
    $ mkdir ALLJPG_E
    $ i=1; for f in recup_*/*.jpg ; do g=00000$i.jpg; mv $f ALLJPG_E/JPGE_${g:(-10)}; i=$((i+1)); done
     (この行はファイルがないのでエラーになるはず。もしファイルがある場合に回収するためのもの。)
    $ mkdir ALLPNG
    $ i=1; for f in recup_*/*.png ; do g=00000$i.png; mv $f ALLPNG/PNG_${g:(-10)}; i=$((i+1)); done

    冒頭のファイル抽出はSDカードの場合と何も変わらないので説明は省略します。
    最後の8行でファイルを6桁の連番を付けながら、各ディレクトリに集めてきます。この部分はこちらのサイトを参考にさせていただきました。


  • SDカードから消えた写真を復活

    投稿日 2014年 5月 5日 コメントはありません

    うちの嫁のAndroid機で撮影してあったMicroSDカード上の写真がすべて消失するという事件が起きました。
    LINEでありえない人(この人がLINEなんぞやるわけない・・・実際にアリバイの証人まで居たりする)からメッセージが届いた後、しばらくして消失に気づいた、という状況です。どうも、かなりおかしい状況のような気がします。なんとなくバックドアとかルートキットの匂いがします。LINE自体が問題なのか、LINEを狙ったアプリをインストールしてしまっているのかはわかりませんが。

    <追伸>
    FATフォーマットなので、FATテーブルの書き込みに失敗しただけなのかもしれません。ただ、書き込み失敗でSDカード丸ごと初期化というのも不思議な気がしますが・・・。

    それはさておき、とにかく画像ファイルの救出を試みましたので、その記録です。

    1.イメージファイルの吸い出し

    なにはともあれ、現在の状態を保存します。この手の作業ではオリジナルには手を加えないのが鉄則です。なので、SystemRescueCDで起動したPCにて、

    % mkdir /media/HDD
    % mount -t ext4 /dev/sdx1 /media/HDD
    % dd if=/dev/sdy of=/media/HDD/SDCARD.IMG

    として、ディスクイメージを吸い出します。ここで、/dev/sdxはイメージファイル保存用のHDDのUSBハードディスク、/dev/sdyが救出対象となるSDカードです。吸い出したらSDカードは大切に保管し、さらに、

    % cp SDCARD.IMG Copy-Of-SDCARD.IMG

    として、イメージファイルのコピーを作成します。このコピーに対して色々トライしていきます。
    (実際には、さらにこのコピーをLinuxMint13マシンのローカルHDDにコピーしておきます)

    2.ファイルの観察

    % mkdir /media/FAT
    % mount -t vfat Copy-Of-SDCARD.IMG /media/FAT

    として、/media/FATにイメージファイルをマウントして観察します。どうやら、SDカード上のファイルが全消去されたか、論理フォーマットされてしまっているかのようにファイルが何もなくなっていました。SDカードはFATフォーマットなのでアクセス権が及ばないはず。SDカードへのアクセスを許可したアプリからは、おそらくどんなアプリからも全消去とか不正な参照・書き換えなどが可能なのではないかという気がします。

    3.ツールのインストール

    途中、試行錯誤と紆余曲折があったのですが、ここでは端折って、最終的な救出方法のみ記載します。ツールとしてはPhotoRecとTestDiskを使用し、環境としてはLinuxMint13 x64で行いました。

    まず、SynapticでTestDiskを検索してインストールします。さらに、PhotoRecをこちらからダウンロードしました。PhotoRecにもTestDiskが同梱されているようですが、先にTestDiskはインストールしてしまっています。(なので、実際どちらが動作したかわかりません)

    PhotoRecは展開するとスタティックリンクされた実行ファイルが出てくるので、このディレクトリを丸ごと ~/TEMPに移動し、イメージファイル(Copy-Of-SDCARD.IMG)も~/TEMPの下にコピーします。さらに、救出したファイルを保存するディレクトリを作成しておきます。

    4.ファイル救出実行

    カレントディレクトリを ~/TEMPに移動してから、

    $ ./testdisk-7.0-WIP/photorec_static Copy-Of-SDCARD.IMG

    として起動します。下の方に「rootじゃないといくつかのディスクが見えないよ」という表示が出ますが、イメージファイルに対する操作なので問題ありません。
    そのまま「Proceed」を選択したまま「Enter」を押します。

    次にどのパーティションを対象にするか聞いてきますが、そのままで問題ありません。「Search」を選択したまま「Enter」を押します。

    次にファイルシステムを聞いてきますが、FATがすでに選択されているのでそのままで問題ありません。「Other」を選択したまま「Enter」を押します。

    次に消去されたファイルのみをサーチするのかどうか聞いてきますが、今回はSDカード内のファイルをすべてサルベージしたいので、「Whole」を選択して「Enter」を押します。

    次にサルベージしたファイルの保存先を聞いてくるので、適当な箇所を選んで「c」を押します。

    するとサルベージが始まります。(適当なサイズ毎にサブディレクトリが切られるようです)

    しばらくすると終了します。今回は4500個のファイルが救出されました。

    5.ファイル名の修正

    出来上がったファイルはファイル名がグチャグチャになっています。幸い、EXIF情報は生きている(というか生きてないとJPEGファイルとして成り立ちませんが・・・)ようですので、EXIFに基づいて撮影日時に基づいたファイル名に修正します。
    ファイル名が修正できれば、写真のグループ分けも容易になるはずです。

    各サブディレクトリにて、

    $ jhead -n%Y%m%d-%H%M%S f*.jpg

    として、ファイル名を修正していきます。fで始まるファイル名は大きな写真のようですので、まず修正されたファイルを集めます。その後、各サブディレクトリにて改めて

    $ jhead -n%y%m%d-%H%M%S *.jpg

    として残りのファイルのファイル名を修正してファイルを回収します。

    完全にはファイル名が修正できないので、適当に手作業を加えながら、画像回収を完了させました。