2016年8月30日火曜日

解決:ESP-WROOM-02のソフトAPが頻繁にハングアップする問題

ESP-WROOM-02のソフトAPが頻繁にハングアップする問題に悩んでいたが解決した

大ハマりのオチってこんなパターンが多い

原因はArduinoIDEのesp8266用パッケージが古すぎたこと
IDEのツール→ボード→BoardsManagerからesp8266用パッケージをアップデートすればOK

電源容量やAPIの仕様を散々調べたオチがこれで脱力してしまった
これまで30分おきにリセットして強引に運用していたのがバカみたいだ

位置偽装の検証では動作不良の監視のためにPCから操作していたがそれも不要になる
単純なシリアル出力で良いのでArduinoなどのマイコンに置換したい
(もしくはESP-WROOM-02の1基に行わせたい)

2016年8月25日木曜日

ポケモンGO位置偽装雑記

検証中に得られた知見のメモ
以下、位置偽装とある場合はすべて外部機器を用いたAP偽装を指す

これだけ頑張っても他のチートとリスクは同じ

偽装先の距離とペナルティについて:
・50km先の偽装に成功
・ソフトBAN(ペナルティ)に遭遇
ポケストップを回しても無反応(メッセージも一切なし)
ポケモンは1回ボールを当てると必ず逃げる(揺れる回数にはブレがある)
(※つまり1回で逃げない場合はソフトBAN状態ではない、といえる)
15分程度間を空けてログインすると解除されている


GPS非搭載機種での動作について:
GPS非搭載機種のみ、GPS測位のタイムアウトが発生する
タイムアウト後は普通にプレイ可能
ただし、中華Androidタブレットなどで
『GPS非搭載だが、GPS搭載機種としてファームがビルドされている』
ものがあり、これの場合はGPSのタイムアウトが発生しない(プレイ続行不可)


無線APについて:
・無線APの数を3台→6台にしたら明らかに安定度が増した
・6台使用して3台ずつ交互にMACアドレス変更することで空白地帯を設けないようにした
(MACアドレス設定変更後、APに10~20秒程度のリブート時間が必要なため)
・ESP-WROOM-02は起動時に大電流を引っ張るので起動のタイミングをズラすとよい
(電流不足でブートに失敗する個体が発生するため)
・APが途中で落ちてしまう問題は未解決

6台構成だとこんな感じ

フィールドワークについて:
観光地などでwifiの測定を行うと個人のポータブルwifiが山のように引っかかる
実際に測位できるかMACアドレスの位置情報をチェックするサイトで調べること


Androidタブレットについて:
・GPS非搭載のポケモンGO動作可能なAndroid端末がなかなか見つからない
安価なタブレットでもGPSを搭載している機種が殆ど
・ネット上の動作確認情報は主に1stリリースのタイミングで行われているためあてにならない
(その後のアップデートにてwifiのみの動作が禁止されたため)
・KindleFireはクライアントの挙動が不安定なため検証に使えなかった
(一応偽装はできた)


iPodTouch(第六世代)の挙動:
・iOS用最新クライアント(1.5.0)でプレイ&位置偽装可能であることを確認
・アンテナ位置は筐体の上部(裏側に黒い電波抜き穴がある箇所)
ここを塞ぐとwifiの掴みが顕著に悪くなる

金属筐体なので抜き穴を塞ぐだけでなかなかいい感じ

・一定周期でGPSチェック→(GPSを探している間は一部操作不可)→タイムアウト後に操作可能→一定周期で…
というループ
一部操作:ポケストップ回転、ジムバトル、ポケモン捕獲

GPS非搭載機種ではこれが頻発

・GPSチェック中にホームボタンで一旦ゲームを抜け、再度ゲームに戻るとチェックをキャンセルできる場合がある


不忍池について:
フィールドワークとして不忍池でMACアドレスを取得した
偽装は成功

・ポッポ→コイキング
・コラッタ→コダック
・イーブイ→ヤドン
・その他レア→ミニリュウ
くらいのノリでポップする
最初の3時間くらいの高揚感が凄い
その後はミニリュウ以外いらねえな…ってなる

そこは別世界
最初のうちはこれに感激
・お祭りみたいな人出
・歩いてる人の9割が歩きスマホでポケモンGOやっててビビる
・止まってる人もほぼ全員ポケモンGO
・ミニリュウがポップするとダッシュする人達がいて怖い
ツイッターか何かで情報共有してるのか?
・乗り入れOKらしく自転車プレーヤーも交じっていて混沌としている
・あれで事故が起きていないのはある意味凄い

・近くに秋葉原があるがめぼしいポケモンがいないため測位せず
・偽装で池の上を歩いても特にペナルティ無し
・敷地に対して建物が少ない(≒APが少ない)ので細かい位置調整ができない


微調整ができないゆえの生殺し状態

2016年8月16日火曜日

KindleFireにポケモンGOをインストールしたメモ

KindleFire(第二世代)で無理やりポケモンGOをプレイしたときのメモ
対応機種に入っていないためすべて自己責任で

一応動くレベルなので期待しない

条件:
・root化はしない
・野良apkファイルは使わない

セットアップ方法:
ポケモンGOのapkファイルを持ってきてインストールしても正常動作しない
(測位ができず地図が一切表示されない)
・KindleFireでGooglePlayが使える状態までセットアップ
・googleマップアプリをapkファイルからインストール
(どちらもたくさんヒットするのでググろう)
これでクライアント起動後に測位が行われるようになる
うまくいかない場合はkindleの再起動を何回かするとよい

googleアカウントマネージャー、googleサービスフレームワークがインストールできないことがある
これはapkファイル自体の問題でありどうしようもない
表面上同じバージョンでも抜き取った端末によって素性が違う様子
手元の環境でもインストールできるものとそうでないものがあった
apkを抽出する端末を変えるか、諦めて野良apkに手を出すかしかない

ポケモンGO起動後に
『位置情報を取得できません』と表示が出る場合はデバッグ機能がONになっているため
設定→端末オプション→シリアル番号を7回タップ
これで『開発者オプション』メニューが新規に表示される
開発者オプション→『仮の位置情報の使用を許可する』をオフに
おそらくこれがandroidでいうところの疑似ロケーションオプションになっている様子

ポケモンGOクライアントver0.33.0でもKindleFireでプレイ可能
(※まとまった時間プレイしたわけではないので注意/不具合あるかも)
どうやらGPS自体が存在しない場合はGPS測位はスルーされる様子
ただしKindleFireはポケモンGOの推奨スペックを切っているので快適ではない
wifi測位のみなので位置情報の精度も酷い

位置偽装も試してはいるのだが動作が不安定
背面筐体がすべて樹脂なので電波の遮蔽がうまくいかない様子