Nexus7(2012)にAndroid 6.0(MarshMallow)をインストール

いまさらながら、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と

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

ブートローダが起動したら、音量ボタンでリカバリモードを選択して電源ボタンで選択すると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側から

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4)udevルールを作成

内容はこんな感じ

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

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

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

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

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

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

7)イメージの書き込み

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

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

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

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

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

Raspberry Pi 3にAndroidから接続する

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ストアが動かなくなった

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

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

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

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

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

Covia FLEAZ F4Sを買ってみた

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

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を買ってみた

プライベートの電話番号と仕事の電話番号をわけた結果、やっぱりスケジュール管理にはスマホが便利だよね、でも古い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パッド買ってみました

以前買った中華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化してカスタマイズしてみたいところです。

大量のファイル名操作

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

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

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

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

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

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

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

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

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

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

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

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

2.ファイルの観察

として、/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に移動してから、

として起動します。下の方に「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

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

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