10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AirTagの位置測位データは取り出せる!① ~生データ抽出編~

Last updated at Posted at 2023-10-19

本記事のゴール

  • AirTagの位置測位データを取り出す!
    • demo
  • 最終的に得られる結果の例
    +
    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現在)
10
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?