macOS 10.14でiTunes 12.6.5を使う記事の 10.15版になります。
結論
pkgファイルを展開して、中身のpayloadを直接コピーしました。
最後にiTunesのバージョンを偽装して終わりです。
# 前回同様dmg内のpkgを展開する
$ pkgutil --expand path-to/iTunes.pkg ./tmp
# 必要そうなpkgディレクトリのBomやPayloadからファイルを展開
$ cd tmp
# iTunesAccess
$ ditto -x --bom iTunesAccess.pkg/Bom iTunesAccess.pkg/Payload iTunesAccess/
# ディレクトリ構造ごと展開されるので、ルート直下から同じ場所に移動します。
$ sudo mv iTunesAccess/System/Library/PrivateFrameworks/iTunesAccess.framework /System/Library/PrivateFrameworks/
# iTunes.app(iTunesX)
$ ditto -x --bom iTunesX.pkg/Bom iTunesX.pkg/Payload iTunesX/
$ sudo mv iTunesX/Applications/iTunes.app /Applications/
$ sudo mv iTunesX/Library/Frameworks/iTunesLibrary.framework /Library/Frameworks/iTunesLibrary.framework
# Documentationとかもあるので必要に応じてコピー
# 他にもCoreADI, CoreFP, MobileDeviceが含まれていましたが、自分の環境だと移動先に既に存在したので今回は移動しませんでした
# 最後に前回同様Info.plistのバージョンを書き換えて完了。10.14の時より新しいバージョンを指定しないと起動できませんでした。
$ sudo sed -i '' 's/12.6.5/13.6.5/g' /Applications/iTunes.app/Contents/Info.plist
Systemsディレクトリへのコピーがうまくいかない場合は、SIPの無効化やボリュームの再マウントを試してください。
(全部やった状態だったのでどこまで必要かわかってない)
ハマったところ
SIPを無効化しても/Systems以下には書き込めない
管理者権限でも書き込めなくなりました。
(sudo installer -pkg /path/to/package.pkg -target /
としてもだめ)
再マウントすればとりあえず書き込めるようになっています。
https://ameblo.jp/jochi-masaharu/entry-12564076509.html
これをしないとインストーラー内で/Systems以下への書き込みがあると、そこで弾かれてしまいます。
再マウントすることで「このままインストールする」ボタンが現れました。
MobileDevice等が既に存在する?
書き込み可能にしたり管理者でinstallerを起動したりしましたが、インストール後の検証で落ちます。
おそらく、Finder.appにMobileSync等の機能が追加され、各種frameworkが既にインストール済みのため、うまく上書きできないのかと考えて、iTunesAccess.frameworkとiTunesX(iTunes.app)のコピーだけ行うことにしました。
参考
-
macOS CatalinaでApp Storeが使えるiTunes 12.6.5をインストールする方法
- betaの時は前回の方法でインストールできたっぽいです
-
Installer fails on installing into /Applications on Catalina
- 該当エラーがsystemsディレクトリへの書き込みのある場合に出ることが言及されてました
-
Package is incompatible with this version of macOS
- 解決方法の3つ目にパッケージ展開してファイルをコピーする、とあったので今回の方法を思いついました
- Catalinaでシステムファイルを書き換える方法
- Mac OS Xのパッケージファイルを操作する