macOS 10.15でiTunes 12.6.5を使う


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)のコピーだけ行うことにしました。

参考