Dropbox

SnailMobile2

SnailHK8SIM

以前、山根さんがブログ記事「中国SNAIL MOBILEの香港8日プリペイドSIM(2)中国でGFW越え可能、中国ボーナス1GB」で紹介さていたSIMが上海浦東空港T1の制限エリア外、誰でも入れる場所、にあるSnail Mobileの自動販売機で入手することが出来ました。自動販売機は出発ロビーを入って国際線チェックインカウンターの奥の壁にあります。

私が確認したのは2016年7月13日ですが、6月末に別の人が見た時には別の香港SIMであったようです。このSIMは香港CSL発行のものですがwebページにはローミングの1GBについては書かれていませんので、何時まで続くか分からないオマケ扱いかも知れません。

細かい内容については山根さんのブログの通りです。アクティベート(SIMを入れて立ち上げるだけ)すると、まったく同じ内容のSMSが届きました。APNは説明書に書いてあるのと違うものが自動設定されて、それでつながっています。

因みに外箱にはアクティベート期限が30/06/2018と書かれています。あと2年ありますので買い貯めも可能ですね。

また、「このカードは国外での使用がサポートされています、中国大陸ではアクティベートおよび使用は出来ません」などとも書かれています。

CSLのサイトに電話番号とPINでログインすると使用状況の確認とチャージ、追加パッケージの購入が出来ます。

カードのステータスを確認するとサービスの期限は8日間ですが、カード自体は半年間有効なようです。チャージ額は48ドル、データ量はローカル(香港) 5120MB, ローミング 1048MBが初期状態です。

追加購入可能なパッケージは以下の2つでした。

  • Extra 5-Day Pass $48
  • Roaming Data 1-Day Pass (100MB) $40

5日間延長して最初に付いているようなローミングが出来るかどうかは不明です。それより30元でもう一枚SIMを買ってきた方が得なのは明らかです。パッケージについてはお試し購入する予定です。それについては後日書き足します。

追記) Extra 5-Day Passを試しに購入しようとしていますが “Your request cannot be processed in this moment. Please try again later.” と表示されてしまいます。日を改めて試しても同じです。使いきりだけということなんでしょうかね。

 

GoogleTimeLine
中国で使用しているAndroid携帯電話でGoogle Mapsのロケーション履歴を残すべくタイムラインを開くと中国では使えないと言われます。国外に出れば大丈夫かと日本にてWiFiルーターを使用して試してみても同じことを言われてしまいます。色々と試してみるとSIMが問題のようでした。ということで、上手く行った事例を2つ紹介したいと思います。

[ 小米Mi5を日本への短期滞在で使用したケース ]

  • SIM1は中国移動のSIMをローミングで電話とSMSの待ち受けで使用
  • SIM2にドコモMVNOで中国で再販されていた物を入れてデータ通信用に使用
  • 再起動後にSetting/Installed appsでマップ(Google Map)を選択し、Force Stop(強制終了)とClear dataを実行
  • Googleマップを立ち上げてタイムラインを開きロケーション履歴を「オン」にする

以上でロケーション履歴が記録されました。ただし2日ほどしか使用していないため継続的に使用できるのかどうかは不明。当然、ドコモSIMのみの運用なら問題無いと思います。

[ 中国国内で履歴を残したい ]

上の方法と同じく、小米Mi5でSIM1を中国移動の音声及びデータ通信(VPN使用)、SIM2はダミーとして契約切れドコモMVNOのSIMを入れたところ上手くロケーション履歴が残ったり、まったく記録できなくなったりと不安定な状態でした。最終的にはロガー専用デバイスとしてNexus 6を使用し以下の方法で安定稼働出来ました。

  • Nexus 6に契約切れドコモMVNO SIMを入れた
  • WiFi接続を行いVPNもしくは何かしらの方法で壁超えをする
  • 上の手順と同様にマップの強制終了とデータ消去を行う
  • Googleマップを立ち上げてタイムラインを開きロケーション履歴を「オン」にする

< ネットワーク接続なしでロガーとして機能する >

これで準備完了です。特筆すべきは、このNexus 6をネットワーク接続なし(ただしWiFiはオン)で持ち歩くだけでロガーとして機能するということです。自宅に戻った時にVPNを経由したネットワーク接続を行うだけでロケーション履歴がアップロードされます。とりあえず3日間半(そのうち一日は200Km以上の移動を含む)、ネットワーク接続なしでも問題ありませんでした。ネットワーク接続無しだと電池の減り方も少ないのでロガーとしては優秀です。電池の減りを気にしなくても良いことを生かせば中国以外でも活用出来る方法かも知れません。

< 中国での位置情報のズレがある >

中国の地図とGPSの座標系にはズレがあります。Google Mapsで使われている地図にもズレがあり補正されて正しい位置を表示するようになっています。現在地を表示しようとすると、最初にズレた位置が表示された後に補正が入ったりするので頑張って補正している様子が分かります。

ロケーション履歴ではズレたままの位置が記録されますので、ビルだの公園といった細かいランドマートの記録は自分で編集しないかぎりあてにはなりません。何百キロも移動した時の軌跡表示ならば全く気にはなりません。

小米 Xiaomi Mi5のROM焼きガイドのUNLOCKED BOOTLOADER手順では特別なUSBケーブルを使用すると書いてありますが、ケーブル自体の詳細は書かれていません。

で、Forumに質問を投げかけると数時間のうちに回答が得られました。

AliExpressというサイトでオーダー可能ということでした。どうもQualcomm chipを使った小米携帯電話に共通して使えるケーブルのようです。

中国の通販サイトtaobaoでも「小米bl锁刷机线」あるいは「小米深度刷机线」というキーワードで沢山のケーブルが見つかります。適当にその中のひとつをオーダーして到着したのが下のケーブルです。USB Type-Cの変換コネクターが2つも入っていたのが、ちょっと嬉しい。

XiaomiCable

手順通りにMi5の電源を切り、ケーブルのポタンを押したままMi5に接続、数秒後にボタンを離すと、あら不思議XiaoMiFlashからデバイスが認識されました。デバイスマネージャーで見るとこんな風に認識されています。色々と調べてみると、この9008というインターフェースはEDLモードと同じものらしいです。

MiSpecialCableDeviceMgr

このままXiaoMiFlashでflashボタンを押してみましたが、errorになってしまいROM書きは出来ませんでした。現在の所、必要としていないので上手くいかない理由の追求はしていません。

[ このボタンは何をしているのか? ]

次に、このボタンの仕組みを解明してみます。といっても、テスターで各線の導通チェックをしただけです。結論としては、ボタンを押すと+D (緑)とGND(黒)のラインがショートするようになっていました。このケーブルが入手困難な場合は自作することも難しくは無いと思います。<- ちゃちゃっとテスターで調べただけで、自作しての再現性を確認はしていませんので信頼度50%くらいに考えておいてください。

追記) 最初に紹介したスレッドのコメントでケーブルの作り方が紹介されていました。+DとGNDのショートで間違いないようです。

 

4月初めに一瞬公開された最初のGlobal ROMを入れた時と状況が変わっています。新たに購入したMi5 (自分の物に非ず) China Stable ROM 7.5.4.0を本日公開されたばかりのGlobal Stable ROM 7.5.2.0に上書きするにあたり以下の新しい手順書を参考にしました。

[ Bootloader Unlock ]

小米のBootloader Unlockは申請制でアカウント毎に許可が必要となります。実は4月にGlobal ROMを入れた際に同時にUnlockの申請を行っていました。その時は許可が降りる前にEDLモードによるROMの書き換えを行ったので使わずにいました。

参考スレッド : [Tools, Tips & Tutorials] [MIUI DEVICE TEAM] How to Unlock Bootloader of Mi5

< Xiaomiアカウントと端末の紐付けが必要 >

やっと、活用の機会が来たということで新しいMi5を接続してアンロックしようとするとDeviceのVerifyに失敗したとメッセージが出ます。再度Mi5を普通に立ち上げMiアカウントにログインさせてしばらく放置した後にアンロックを行うと成功しました。どうもアカウントと端末の紐付けが必須のようです。

[ Flash ]

デバイス・ドライバーで苦労する方が多いようですが、新しい手順書のドライバー導入手順はかなり明確に書かれているので問題が少ないような気がします。私は4月の時点でドライバーが入っていたのでドライバーの導入はスキップ出来ました。

http://en.miui.com/a-234.htmlの”Xiaomi Mi 5 Latest Global Stable Version Fastboot File Download”からダウンロードしたファイルはtarで固められています。これを展開しておきます。(Note: Chromeではダウンロード出来なかった)

  • 手順書に貼り付いているMi Flash Tool -BetaをWindowsに導入します。
  • Mi5をFastbootモード(電源オフからボリューム下と電源オン同時押し)にしてUSBケーブルを接続する。
  • XiaoMiFlashを起動しrefreshボタンを押してデバイスの情報が表示されたら準備完了。
  • selectボタンにて展開したfastbootイメージを指定。
  • 右下でclean allを選択。
  • flashボタンでROM焼きが開始される。

XiaoMiFlash

しばらく待つと端末が自動的に再起動して完了です。

[ Bootloader 再ロック ]

< Bootloaderがアンロックされた端末はMiアカウントへのログインが必要 >

初期設定の過程でBootloaderがアンロックされていることを認識しているようで端末の情報からMiアカウントの番号が自動的に表示されログインしなければ先に進むことが出来ませんでした。設定完了後にログオフすることは出来ますが、友人の端末ですしBootloaderをロックしておくことにしました。

fastbootモードでPCに接続し”fastboot oem lock”を投入すればOKです。

これで再度初期化を試してみたところMiアカウントのログインはスキップ出来るようになっていました。

 

友人から依頼されて新しいMi5をChina Stable ROM 7.5.4.0をGlobal Stable ROM 7.5.2.0で上書きしました。それに先立ち最新情報を調べてみると、前回の記事「小米5 Xiaomi Mi5にGlobal ROMを入れた」に書いた内容は全く役に立たない事がわかりました。

  • EDLモードが無くなっているらしい(fastboot oem edlを試したけど効かなかったです)
  • 前回の記事でリンクしたForumのスレッドが読めなくなっている(EDL前提なので当然かも)

改めて情報を探して見ると、

Fastbootイメージの公式リンクはChromeでクリックするとMIUIのトップページが表示されてしまいます。Safariだとちゃんとダウンロードが始まるので、うまくダウンロード出来ない場合はブラウザーを変えて試してください。

ということで、今回はBootloaderをUnlockしてGlobal ROMの上書きを行いました。それについては別途書きたいと思います。

試してはいないので何とも言えませんが、他にも2つほど使えそうなスレッドがあります。

実は一度、https化を止めてhttpオンリーに戻そうと思いましたが、このブログのGoogleでの検索結果がすでにhttpsになっていたので後戻りはしないことになりました。

[ アマゾン・アフェリエイト対策 ]
正しい方法かどうかは分かりませんがhttps://rcm…の部分を//rcm…に書き換えるとリンクが表示されるようになります。ウィジェットなどの固定部分は手作業で書き換え。記事中のリンクはWordpressのプラグインを書いてダイナミックに書き換えを行うことにしました。安全性、信頼性を保証出来ないのでプラグインは非公開とします。
他にもセキュアでない要素が残っていますが、ぼちぼち対応していくことにします。

[ Lets Encrypt証明書再取得 ]
再取得も新規取得も手作業であれば同じ事ですが、前回の記事を書いた後に随分と便利なクライアントが数多く公開されました。今回はそのなかの一つであるzerosslを使用してみました。Linuxの実行環境など必要なくwebサイトの画面に従うだけで簡単に証明書を作成出来ます。私が行った流れを簡単に紹介しておきます。

  • https://zerossl.com/ を開く
  • CREATE ONLINE
  • FREE SSL Certification Wizard – START
  • Details – Domains を設定、わたしの場合は www.nkozawa.com を使用。HTTP verificationを選択、Accept ZeroSSL TOS, Accept Let’s Encrypt SAにチェックを入れる -> NEXT
  • Include non-www version too? のダイアログにNoを答える。これをYesにするとnkozawa.comも証明書の対象になる。
  • 念のためCSRをコピー – NEXT
  • 念のためPrivate Keyをコピー – NEXT
  • Verification – 前回の記事と同様に指定された内容のファイルをwebサーバー上にセット。ファイル名をクリックして正しくファイルが設定されたかどうか確認。- NEXT

以上で証明書が作成されます。最後の画面のPRIVATE KEYとCERTIFICATEをCORESERVERのSSL設定に書き込みます。

  • PRIVATE KEYをプライベートキー[パスフレーズ無し]にコピー
  • CERIFICATEを発行された証明書(必須)にコピー
  • 発行された中間証明書(任意)に上でコピーしたものの後半部分のCERTIFICATEをコピー。実際にはわたしの場合は前回設定したものと同じでした。

あとはGoogleカレンダーに次の更新予定を書き込んで終了です。

CX-10D
手のひらで簡単に包んでしまえるほど小さなドローン、Cheerson CX-10Dは小さいながら安定性が高いので純粋に飛行を楽しみたい人に最適と言えます。

ドローンというと空撮と言った感じも有りますが、RC飛行機と違って比較的狭い場所でも飛行が楽しめるため、都会暮らしでRC飛行機が気軽に飛ばせない人が気軽に飛行を楽しむといった用途も有ったと思います。ところが、いくら安全を確認できていても改正された航空法により重量200g以上のドローンを都会で飛ばすことは不可能になりました。

それならばと言うことで究極の小ささを求めたナノドローンをお勧めしたいと思います。CX-10Dは中大型ドローンの自律飛行とまでは行かないまでも、気圧センサーによる高度維持が出来るので安定したホバリングが簡単に出来ます。しかも超小型ですので部屋の中で自由自在に飛び回れます。多くのドローンに搭載されているフリップという宙返りさえも室内で行う事ができます。


ハンドランチからフリップ(34秒付近)、そしてハンドキャッチ

CX-10Dのコントローラーはスロットルから手を離すとセンターに戻るゲームコントローラー風のものですので、大型ドローンのコントローラーとは少し違います。また高度センサーによる補正が効きすぎているためかスロットルの効き具合にクセがあります。それを除けば、普通のドローンと挙動は変わりません。中大型ドローンの飛行練習にも使えると思います。そして何より気軽に購入できる値段であるのがとても良いです。

KKJConvには秘密がある。「しんせん」で深圳と変換したり、人柱隊の田路さんの苗字が変換出来るように辞書を弄ってある。しかし、それだけではない。

漢字変換画面に「しねしね」とだけ入力しコピペ画面に移行する。一度KKJConvを終了し再度立ち上げると、なんと恐ろしいことにKKJConvが「死ね死ね団」モードになってしまう。しかも、いちど設定すると戻す方法は無い。

古いモバイラーの方は、この画面を見てピンとくるであろう。Windows Mobileの神様、いや将軍様であるアスカルさんの大陸諜報活動新聞をリスペクトしたテーマなのである。

KKJConv Secret Theme

漢字変換が出来る最初のバージョンKKJConv v0.6は7月2日に公開しました。

ローマ字変換が出来るバージョンを公開すると同時にかな漢字変換のための辞書オブジェクトを書き始めました。最初のバージョンは単純なもので一つの辞書ファイルを頭から順次検索して入力された「かな」にヒットする漢字文字列を順次返すだけの物で直ぐに完成しました。むしろインライン変換の動作をKKJConv本体に作り込むのに随分と手間取ったことを覚えています。それでも今振り返ってみるとv0.5からv0.6の公開までに一週間しかかかっていないのは、やはりバイタリティに溢れていたのだと思います。

この後、漢字変換にキャッシュを搭載したり、大きな辞書を搭載するために辞書の分割を行ったり、あるいは細かい機種別対応を重ねて行きました。2006年末のv1.0に至るまで二十数回のバージョンアップを行いました。平日に少しずつ更新。金曜日一日寝かせて毎週土曜日に新しいバージョンの公開というペースが出来上がっていました。常に使ってくださっている方々からのフィードバックがあるので、とても楽しい時間を過ごすことが出来ました。

最初からソースコードを公開していましたが、だんだんと見通しが悪くなってしまい。ちょっとばかり恥ずかしいものになりました。本職のプログラマーでは無いことを言い訳にしておきたいです。Javaを知ってはいたものの、まとまった量のコードを書くのは初めてで、またオブジェクト指向なブログラムの勘所も良くは分かっていませんでした。そのため関数型プログラミング的なコードになっています。とくにキーコードから動作を決めるための部分がとても長い条件分岐の羅列になっています。まるで昔のGUIブログラムみたいです。今、この部分を書き直すとしたら少なくとも理想的なキーボードを持った仮想ハードウェアで動くKKJConvと機種別動作を吸収するオブジェクトに分割することと思います。

ひとまず、これにてKKJConv開発秘話は完了とします。

キーコード表示プログラムの表示機能が調子良いので、それを元にローマ字変換が出来るようにしたKKJConv v0.5を公開したのが6月25日でした。アルファベットを表示してローマ字として確定すると、その場で平仮名に置き換わるという動作でインライン変換への手応えも確かめました。FEPでは無いのでアプリケーションに直接入力は出来ません。コピペ画面を経由して文字列をクリップボード経由でアプリケーションに渡す方法もここで確立しました。E61を入手して10日目のことでした。今の体力、気力ではとても考えられないスピード感です。

実は画面の表示速度についてはグラフィックス画面を使用していることもあり、実際に試すまで実用的な速度が出るのかどうか心配していました。最初の計画では高速化を狙って画面の中で更新が必要な部分だけを書き換えていく予定でしたが、結局のところ一文字入力する、シフトを押す、あるいはカーソルを移動するなど画面に何かしら変化が生じる度に画面全部を書き換えるという方法だけで最後まで済ませてしまいました。

この漢字変換の出来ないKKJConvを使って、かなだけでブログを書いてくれた人なども居て感激したことを覚えています。

またKKJConv v0.5公開の翌日にはピードラさんがソニエリのM600、山根さんがBluetoothキーボードで基本動作が可能であることを確認されました。KKJConvは漢字変換出来るようになる前から多機種対応が宿命となったのでした。