macOS Montereyになって、起動時にダイナミック壁紙のデータが消えていることがあります。
なぜか、スリープ後に表示されるロック画面で、壁紙がデフォルトに戻っています。
macOS Monterey 12.4 では、ダウンロードした壁紙データの保存場所は、「~/Library/Application Support/com.apple.mobileAssetDesktop/」ですが、ここの保存された画像データを見ると、いつの間にか消えていることが確認できます。
結局、何度も元に戻るので、諦めてデフォルトの「Monterey」にしています…
1. なぜかMacの壁紙データの再ダウンロードが必要
Macの壁紙を「Big Sur」の「ダイナミック」にしているのですが、スリープ後にロック解除したときに、デフォルト(Monterey)に戻っていることがたびたびあります。
そのたびに、「システム環境設定」でデスクトップ壁紙を選択し直すのですが、不思議なことに改めて「ダウンロード」が必要になっています。
つまり、保存された壁紙データが、勝手に消えてしまっているようなのです。
1-1. macOSの壁紙データはどこにある
macOSの壁紙データの保存場所は、何度か変更になっているようです。
探してみると、macOS Monterey(ver. 12.4)の場合は、ダウンロードされたダイナミック壁紙は、
「~/Library/Application Support/com.apple.mobileAssetDesktop/」
に保存されていました(~は、ユーザーフォルダ)。
ロック解除した後に、デスクトップ壁紙がデフォルトに戻っているときに、保存フォルダを見てみると、たしかに画像ファイルが消えているのです。
ただ、全部消えているわけではなく、デスクトップに設定していた画像ファイルだけが消えています。
フォルダそのものが「上書きされた」というよりは、「ファイルが破損した?」感じなのかな?
2. これまでmacOSの壁紙データの保存場所は変わっている
macOSの壁紙データの保存場所を調べてみると、ここ最近 何度も変更されていることがわかります。
もともと macOS 10.14 Mojaveまでは、
「/Library/Desktop Pictures」
に保管されていました。
ところが、macOS 10.15 Catalinaからは、
「/System/Library/Desktop Pictures」
へと変更されました。
これは、セキュリティのために、システムファイルの保管場所を、一般のライブラリと分けたからです。
一般のプログラムは「/System」の中身を変更できないようにすることで、マルウェアによる変更のリスクを減らしています。
「関係者以外立入禁止」なのね!
2-1. 壁紙データはmacOS 12 Montereyで「オンデマンド」になった
しかし、macOS 12 Montereyになると、壁紙データの保存方法にも変更がありました。
必要なものだけを「ダウンロード」する方式に変更したのです(※)。
これは、標準の壁紙データは、バージョンアップごとに増えたため、全部をあらかじめ用意すると 約1GBを占めるようになったからです。
ダウンロードを必要なときまで保留することで、ディスクを空ける仕組みを「オンデマンド」といいます。
「/System/Library/Desktop Pictures」には、初期状態から用意されている画像データ(.heic)が12種類あるだけで、その他の壁紙は「.madesktop」という拡張子のファイルになっていました。
画像データ(.heic)は、7MB〜98MBと大きいのに対して、
.madesktopファイルは、約500B。とても小さいです。
「.heic(ヒーフ)」は、Appleの開発した画像ファイルの形式です。
2-2. .madesktopファイルと.heicファイル
「.madesktop」ファイルは何なの?
この.madesktopファイルが「Desktop Pictures」に保管されるようになったのは、macOS Montereyになってからのようです。
However, after updating to macOS Monterey, I’ve noticed a brand new file type. All of the new, and some of the old, desktop photos now have the file extension .madesktop and I can’t figure out how to grab the photos and put them in my photo library. They used to be .heic and when I open them with TextEdit they contain some sort of web address and a reference to a corresponding .heic file.
What is a “.madesktop” file and how can I… – Apple Community (2021-09-02)
試しに、「Big Sur Aerial.madesktop」をエディタで開いてみると、
「mobileAssetID」や「thumbnailPath」などが記述された XML形式のテキストファイルだとわかりました。
ダイナミックやライト・ダークに対応するキー値も見えますね。
どうも「.madesktop」は、「mobile asset desktop」の略のようです。
「システム環境設定」は、この.madesktopファイルを読み込んで壁紙候補を表示しているんですね。
3. MobileAssetのダウンロードフォルダ
ダウンロードした壁紙データはどこにあるの?
Monterey 12 では、当初、ユーザーの操作でダウンロードした壁紙ファイルは、「/System/Library/AssetsV2/com_apple_MobileAsset_DesktopPicture」内に、フォルダ分けして、保存されていたようです。
I think they’re in /System/Library/AssetsV2/com_apple_MobileAsset_DesktopPicture in various folders, after you download them through System Preferences
Monterey moved the wallpapers to somewhere else? : MacOSBeta
3-1. macOS Monterey 12.1 からはユーザーフォルダに保存される
その後、Monterey 12.1 に更新されると、システムフォルダの「AssetsV2」内のフォルダには、「com_apple_MobileAsset_DesktopPicture.xml」というXMLファイルがあるだけになっています。このXMLには、名前やURLなどのダウンロード用の情報が書かれてありました。
実際の画像データのダウンロード場所は、システムフォルダからユーザーフォルダに変更されたようです。
ダウンロードした画像データは、「~/Library/Application Support/com.apple.mobileAssetDesktop/」にあります。
In Monterey 12.1, the /System/Library/AssetsV2/com_apple_MobileAsset_DesktopPicture seems to contain only one xml file and the dynamic wallpapers are downloaded to the following location ~/Library/Application Support/com.apple.mobileAssetDesktop/
Monterey moved the wallpapers to somewhere else? : MacOSBeta
4. デスクトップピクチャがシステムと分離していった
つまり、ユーザーフォルダ内の対応するフォルダに壁紙データを保存して、参照するようになっているんですね。
最近は、このように、もともとシステムフォルダに保管していたファイルを、ユーザーごとの保管に変更するパターンがよく見られます。ユーザーごとの設定ファイルがシステム全体に影響しないようにするためです。
しかし、壁紙データがユーザーフォルダにある、ということは、ログインするユーザーが変わると、参照するフォルダが変わり、利用できる壁紙が変わるということです。このあたりに、ロック解除のタイミングで壁紙が消える原因がありそうです。
しかし、その分 ファイル管理が複雑になるので、システムからユーザーへの参照に失敗してファイルが読み込めないと、設定がうまく変更できない原因にもなります。
こちらもどうぞ。