Skip to content

Find My data is encrypted on disk after macOS 14.4... any known workarounds? #33

@varenc

Description

@varenc

I love this project! Sadly Apple has broken it.

After macOS 14.4 if you try to use this you get:

➜ python3 main.py
Traceback (most recent call last):
  File "main.py", line 101, in <module>
    log_devices()
  File "main.py", line 77, in log_devices
    log_manager.refresh_log()
  File "FindMyHistory/lib/log_manager.py", line 85, in refresh_log
    items_dict = self._get_items_dict()
  File "FindMyHistory/lib/log_manager.py", line 62, in _get_items_dict
    raise RuntimeError(f'No devices found. Please check if Full Disk '
RuntimeError: No devices found. Please check if Full Disk Access has been granted to Terminal.

This error message is wrong though. What's really happening is that on this line it attempts to JSON decode the various Find My data files. These files used to be simple JSON but now they're binary plists. The JSON decoding fails but due the the except: pass this is obscured.

The plist just contains two top level keys though:

➜ plutil -p ~/Library/Caches/com.apple.findmy.fmipcore/Items.data
{
  "encryptedData" => {length = 61896, bytes = 0xb50493ba 7e054275 1fa896df 9cded496 ... c08ecb8f d5c2ae14 }
  "signature" => {length = 64, bytes = 0xed484943 9543a6dd 6625eff6 35e5ce75 ... dc120970 a073a7b6 }
}

So the data is now encrypted on disk. I search around in Keychain for possible decryption keys but couldn't find anything obvious. I should have looked specifically for key Keychain entries created after the upgrade.

I imagine that if we can get this data decrypted we'll this project will still be pretty useful. Anyone have leads on decrypting this? Hopefully there's just some Keychain key somewhere we can use.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions