MusicBee WiFi Syncが動かない

先日、スマホのOSを更新したらMusicBee WiFi Syncが動作しなくなった。原因はセキュリティの向上とやらで、アプリの設定でSDカードのルートフォルダを指定できなくなったからだ。Playストアで公開されているバージョンではルートフォルダを選択しなければ動作しない。

解決策はこの記事にあった。いわゆる野良ビルドを行うしかないらしい。

英語記事だし、少し分かりにくいところもあったので、個人的意訳を含めて日本語で書いておく。

AndroidStudioをインストールする。普段から使っていて既にインストールされている場合はそれで問題ないが、後々必要になるので、Android11のサポートが有効にできるようにインストールしておく。

githubからソースをダウンロードする。私は検索してダウンロードしたが、ここにある。私はGitHubのアプリを使ってダウンロードしたのであるが、デフォルトでは日本語パスのフォルダに落とされてしまった。ビルドエラーになるので、英数字のパスに落とすようにする。

ソースが展開できたら、AndroidStudioで開き、まずはAndroidManifest.xmlファイルを修正する。5行目に以下を追加する。

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

次はWifiSyncBaseActivity.javaファイルを修正する。パミションチェックを止める処理らしいが、私もよくわかっていない。なぜ必要かは原文を当たってみて欲しい。修正は115行目からのif文の前半である。(修正内容はif文全体を書いてある) 変更前:

if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.N || Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) && !PermissionsHandler.isUserSelectedPermissionsPathValid(WifiSyncServiceSettings.accessPermissionsUri.get())) {

変更後:

if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.N || Build.VERSION.SDK_INT >= 32) && !PermissionsHandler.isUserSelectedPermissionsPathValid(WifiSyncServiceSettings.accessPermissionsUri.get())) {

次にバージョンナンバーなどを設定する。AndroidStudioの左側のWindowの「app」を右クリックし、メニューから「Open Module Settings」を選択する。Default ConfigのページのVersion Codeを「74」から「75」へ、Version Nameを「2.1」から「2.2」へ変更する。Target APIを30(Android11)に変更する。PropertiesページのCompile Sdk Versionも30(Android11)に変更する。

ビルドすると、ソースを展開したフォルダをルートとして、

app\build\outputs\apk\debug\app-debug.apk

ができあがるので、このapkファイルをインストールする。私はUSB接続でファイルをコピーして、apk installerアプリでインストールした。上書きはできなかったので、正規版をアンインストールしてからインストールした。野良ビルドなので、信頼できないなど色々な警告が出るが、無視してインストールする。

起動すると、「ストレージ(メディア)へのアクセスを許可しますか?」と来るので、yesと答える。その後、Androidの設定→アプリ→アプリ管理→MusicBee WiFi Sync(※私のスマホはOPPO Reno5 AなのでColor OSです。カスタマイズされているので、素のAndroid OSとはメニュー階層が違うと思います。アプリの設定でとにかく開いてください)を選択肢、権限の所をタップする。すると、メディア(全て)が選択できるようになっているので変更する。

アプリの起動時の設定では、ターゲットのフォルダを選択するところで、SDカードなどのルートフォルダを選択していたところで、デフォルトではMusicフォルダを選択しておけば動作するようになっているはずである。

この状態で、PowerAMPでは動作確認を行っていないが、再生履歴を取得できなくなっていたGoneMADと同期できるようになったのを確認している。私としては両方ライセンス持っているのと、プレイリストの最終曲履歴が残らない問題があるPowerAMPを避けてGoneMADで行くつもりなので、特に動作確認をするつもりはない。

というのが今回のレポートでした。

2023/2/9 追記

私が野良ビルドしたapkファイルをダウンロードできるようにしてあります。動作確認は私の使用する範囲だけですが、上部メニューの「MusicBee Wifi Sync (Android11以上版)からダウンロードしてみてください。メニューは全部は見えないかもしれません。MusicBeeと見えたらそれで間違いありません。

コメント