AirTagの位置測位データは取り出せる!① ~生データ抽出編~
Last updated at Posted at 2023-10-19
本記事のゴール
- AirTagの位置測位データを取り出す!
- 最終的に得られる結果の例
+
timestamp |
x |
y |
z |
16466.153469 |
1.526608 |
-90.042649 |
-8.601441 |
16466.273513 |
1.543757 |
-90.120226 |
-1.454071 |
16466.395865 |
1.551355 |
-89.938739 |
9.001518 |
16466.553616 |
1.547471 |
-89.873304 |
15.544009 |
16466.673660 |
1.547786 |
-88.254214 |
15.305837 |
16466.793704 |
1.542401 |
-88.072648 |
8.913718 |
16466.913749 |
1.529785 |
-89.061435 |
-3.331561 |
16467.033793 |
1.533102 |
-90.601608 |
-17.429219 |
16467.173845 |
1.525131 |
-93.156616 |
-31.547601 |
16467.293889 |
1.537368 |
-96.305077 |
-43.633401 |
... |
... |
... |
... |
背景
- Ultra Wide Band (UWB) を用いることで,iPhoneからAirTagの位置を高精度に測位できるようになった
- iPhoneのFind Myというアプリを通じてAirTagの位置を知ることができる
- その位置情報を生データとして収集することは一般に難しい
- 本記事ではその生データを有線または無線で取得する方法を紹介
- AirTagの位置測位データを研究者や開発者が活用できますように...
今回の準備物
- Mac mini
- iPhone 12 Pro
- AirTag (iPhoneとのペアリング済)
- USB-Lightningケーブル
共通の手順
- iPhone上でApple公式サイトからAirTagプロファイルをダウンロード
- Apple Developer未登録の場合はアカウントを作成 (無料)
- AirTags for iOSのProfileを選択してダウンロード
- これがないとデータが暗号化されたままで見れない
- 以下の手順でiPhoneにプロファイルをインストール
- ホーム画面から「設定」>「VPNとデバイス管理」を開く
- AirTags Logging Profileを選択してインストール
- Macのターミナルを開く
- Homebrewをインストールしていない場合はインストールする
- コマンド
brew install libimobiledevice
を実行してlibimobiledeviceをインストール
- このライブラリがiOSのシステムログを出力してくれる
- iPhoneをUSBケーブルでMacに接続
- 「このコンピュータを信頼しますか?」が出てきたら「信頼する」を押す
- 出てこない場合は一旦気にしなくてOK
有線接続時の手順
- iPhoneのロックを解除して画面をつけたままにする
- ターミナルでコマンド
idevicepair pair
を実行してiPhoneをMacとペアリング
- Errorが出た場合
- iPhone画面上に「このコンピュータを信頼しますか?」が出ていたら「信頼する」を押す
- 上記コマンドを再実行
- コマンド
idevice_id
を実行してiPhoneが有線で認識されているかチェック
- <8桁-16桁のUDID> (USB) と表示されたらOK
- 表示されない場合はケーブルを再接続するかデバイスの再起動を図る
- コマンド
idevicesyslog -u <UDID> | grep nearbyd
を実行してAirTagデータを受信
- nearbydというプロセスがiPhoneのFind Myアプリに相当
- grepを用いてそのプロセスのシステムログのみを抽出
- iPhoneでFind Myアプリを起動してAirTagを探す
無線接続時の手順
- iPhoneのロックを解除して画面をつけたままにする
- iPhoneとMacを同じWi-Fiネットワークに接続
- MacのFinderを開いて左側のバーからiPhoneを選択
- 最近のMacOSにはiTunesが入っていない
- いくつかのアプリにiTunesの機能が分割されてFinderが同期機能を担っている
- 一般から「Wi-FiがONになっているときにこのiPhoneを表示」にチェックを入れる
- iPhoneのケーブルをMacから外す
- コマンド
idevice_id
を実行してiPhoneが無線で認識されているかチェック
- <8桁-16桁のUDID> (Network) と表示されたらOK
- 表示されない場合はWi-Fiを繋ぎなおすなど
- コマンド
idevicesyslog -n -u <UDID> | grep nearbyd
を実行してAirTagデータを受信
- 有線と違って無線接続のオプションである-nをコマンドに追加
- iPhoneでFind Myアプリを起動してAirTagを探す
補足
- Windowsでも同様の手順を踏めば実現可能と思われる
- Ubuntuは個人的に非推奨
- iTunesを使ってiPhoneの無線同期をONにする必要がある
- iTunesはUbuntuに対応していない
- Wineを使って仮想的にiTunesをインストールならありかもだが面倒
- 生データを整形して位置データを取り出すプロセスは今後追記予定 (2023/11/01現在)
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up