2019年12月9日月曜日

Essential Phone(PH-1)の近接センサ―が故障した話

以前Essential Phone(以下PH-1)画面交換を行ったがそれに伴う不具合が発生
以下はそのメモ
俺のPH-1は満身創痍

不具合の内容

近接センサ―が常にON状態になってしまった
交換部品が悪かったか自分がしくじったのかは不明

通常使用では全く問題ないのだが、通話すると画面が真っ暗になってしまう
(スマホを耳に当てた状態と誤認するため)
画面操作が一切できないため、こちらから通話を切ることもできない
また、メーカーサポートのサービスダイヤルなどでの対話型ダイヤル操作もできない

対策1:設定変更/電源ボタンで通話を切断する

『設定→ユーザー補助→電源ボタンで通話を終了』をオンにする
これで通話の終了は解決

対策2:全センサを一時的にオフにする

設定で『近接センサ―をオフ』ができる機種もあるようだがPH-1ではムリ
そこで開発者向け設定で全センサ―を一時的にオフにすることで代替する

『設定→デバイス情報→ビルド暗号』を連打して開発者向けオプションをONに
『設定→システム→開発者向けオプション→クイック設定開発者用タイル』を選択
『センサーOFF』をONにする
画面上部の通知バーを下にスワイプしてクイック設定を開く
新しく『センサーOFF』アイコンができているのでこれをONにする

開発者向けオプション
クイック設定開発者用タイル
クイック設定
スマホ上のセンサーをまるごとOFFにしてしまうため、必要な時のみONにすること
これらの対策は他のAndroidスマホでも使えるハズ

2019年9月23日月曜日

ポケモンGoBOT(位置偽装装置)稼働3年目

以前に作成したポケモンGoBOTは現在も稼働中(3年目)である
以下は現時点の構成、稼働状況についてのメモ
 20ヵ月目の過去メモ

システムを構成する3点セット

位置偽装ユニット

6基のESP-WROOM-02と1基のRN-41-SMからなる位置偽装ユニット
前回から構成の変更なし
かなりの稼働時間にもかかわらず未だに一基の故障もない

画像は以前のもの

GoPlus+サーボモータ制御ユニット

自動化したGoPlusとサーボモータ制御用マイコンをUSB電源に繋いだユニット
前回とほぼ同じ
以前にGoPlus自動再接続機能を追加したが、動作が不安定であるためオミットした

左が制御ユニット/別件で使用したためGoPlusは基盤むき出しで使用

スマホ揺らしユニット

スマホ(ここではiPodtouch)を揺らすユニット
サーボの損耗が激しいため置台を軽量化した
(保護ケースの背面中央にサーボホーンを接着しただけ)
また、モータ固定用のゴム台が破損したためユニバーサルプレートで新造した

保護ケースにサーボホーンが接着されているのがわかる
ある程度の接地面が無いと揺らしたときに倒れる

クライアント

wifiアンテナを除去したiPodtouch(第7世代)に有線LANアダプタを付けたもの
ライトニング端子に直接接続できるアダプタ(ノーブランド)に変更
性能は懐疑的であったが問題なく動いている

アダプタ自体の作りは非常にラフ/LANケーブル挿抜だけで外装が外れそうになる

位置偽装の知見

・同一端末複数アカウントのチェックが緩い(もしくは無い)
 キラポケモン等の要素追加に伴い、同じ環境で別垢キャラを育てている
 (TL39程度)
 現時点で警告やbanは無い

・wifiアンテナ除去+有線LANの効果が非常に高い
 現在の環境ではiPodtouchから見えるAPは位置偽装ユニットの6基のみ
 位置偽装に理想的な状態を作ることができている
 
 ※ただしここまでアンテナ依存なのは珍しい設計
 アンテナが無い基部のみでもある程度の受信能力を持つ
 他のスマホでアンテナ除去しても受信能力がここまで下がることはない

・APの情報が経時で使えなくなる問題
 一度構築した位置偽装用AP群のデータが経時で使えなくなる問題は健在
 以前はこの問題に対して
 『位置偽装によって位置情報データベースを汚染しているのでは?』
  (→周囲にあるAPを偽装先の位置情報と結びつけてしまう)
 という予想をしていた
 現在の環境では位置偽装ユニット以外のAPは検知できないので想定は成立しない
 位置情報データベース自体が逐次更新されているものと思われる

3年2か月分のスコア




2019年9月22日日曜日

ドラゴンクエストウォークで位置偽装(android版考察)

iPodTouchにインストールできませんでした(終わり)
…では芸が無いのでAndroid端末を使ったwifiを使った位置偽装の実現性を確認した

結論から言えば可能
ドラゴンクエストウォークではwifiのみ測位によるプレイがOKの仕様であった
『位置情報』のモードを『バッテリー節約』にするとGPSへのアクセスを抑制できる
あとはwifiによる位置偽装を行えばアプリを騙すことができる

なぜwifiのみ測位を許すのかが謎だったが、調べてみると現行Androidではこの機能自体が無いらしい
(Android9.0以降では位置情報サービス使用時にGPSをオフできない)
仕様上のチェック漏れ、ないし旧バージョンの穴は無視する割り切った設計と思われる

検証環境では近距離の位置偽装には成功した
手元にiPodtouchのようにwifi感度を極端に落とすことができる端末が無いので検証以上は無理
現在は都合のいい端末を物色しているところ

そもそもガチャ課金のウェイトが大きいので、位置偽装されても痛くないのかもしれない