adbコマンドを用いて、MacからAndroidに音楽ファイルを転送する

[主題]
adbコマンドを用いて、MacからAndroidに音楽ファイルを転送する方法を説明したい。

[背景]
Googleは、Mac向けのAndroidとのファイル転送アプリAndroid File Transferの配布を止めた。当該アプリのURLを開こうとすると、Quick Share for Windowsにリダイレクトされる。また、Android File TransferはIntelベースのバイナリである。Macプラットホームの(黒)歴史から言って、将来的に使い続けられる保証はない。(やや脅迫調…)
翻って筆者は、AndroidスマフォとMac間で音楽ファイルを、Android File Transferを用いて、手動で同期してきた。今のところ、iPhoneに乗り換える予定はない。そこで、adbコマンドを用いてAndroid File Transferの代用となる方法を検討した。

[環境]
参考までに、筆者の環境を記載しておく
MacBook Air 2023 15.3inch(Apple Silicon Mac, M2)
macOS Sonoma 14.7
Xcode 16.0
CommandLine Tools for Xcode 16.0.0.0.1

Android Debug Bridge version 1.0.41
Version 35.0.2-12147458

[方法]
全ての作業はadbコマンドを用いて行う。当然ターミナル.appの操作に慣れている必要がある。

  1. Mac側の同期対象ディレクトリへ移動

    cd Music/ミュージック/Media.localized/Music/
  2. adb shellコマンドを実行。ただし、ただ単にadb shellを打ってもダメ。Android側でUSBデバッグを設定する

    adb shell
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    adb: no devices/emulators found
    JeridA:/ $ exit
  3. adb shell -> cd strageでSDカードを見つける

    adb shell
    JeridA:/ $ cd storage
    JeridA:/storage $ ls -l
    total 259
    drwxrwx--- 15 root everybody 262144 2024-09-24 09:05 BF0E-08F3
    drwx--x--x  4 root everybody   3488 1971-03-02 15:14 emulated
    drwxr-xr-x  2 root root          60 2024-09-24 09:05 self

    上の例では、BF0E-08F3がSDカードである。

  4. お目当てのミュージック -> アーティストフォルダ(Android側)に移動

    JeridA:/storage $ cd BF0E-08F3/Music/Kenny\ Bu                                 
    Kenny Burrell & Jimmy Smith/            Kenny Burrell/
    JeridA:/storage $ cd BF0E-08F3/Music/Kenny\ Burrell                            
    JeridA:/storage/BF0E-08F3/Music/Kenny Burrell $ ls -l
    total 3072
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:28 A\ Night\ At\ The\ Vanguard
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Asphalt\ Canyon\ Suite
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:06 At\ The\ Five\ Spot\ Cafe
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Blue\ Lights\ Volume\ 1
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:31 Blue\ Lights\ Volume\ 2
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:29 Blue\ Moods
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Blues_\ The\ Common\ Ground
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:26 Introducing\ Kenny\ Burrell
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:25 Jazzmen\ Detroit
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 K.B.\ Blues
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Midnight\ Blue
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Night\ Song
  5. アルバムフォルダを作る
    (mkdirコマンドの引数では、タブ補完が効かない)

    JeridA:/storage/BF0E-08F3/Music/Kenny Burrell $ mkdir A\ Generation\ Ago\ Today Kenny\ Burrell\ Vol.2
    JeridA:/storage/BF0E-08F3/Music/Kenny Burrell $ ls -l
    total 3584
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:34 A\ Generation\ Ago\ Today
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:28 A\ Night\ At\ The\ Vanguard
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Asphalt\ Canyon\ Suite
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:06 At\ The\ Five\ Spot\ Cafe
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Blue\ Lights\ Volume\ 1
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:31 Blue\ Lights\ Volume\ 2
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:29 Blue\ Moods
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Blues_\ The\ Common\ Ground
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:26 Introducing\ Kenny\ Burrell
    drwxrwx--- 2 root everybody 262144 2024-07-21 02:25 Jazzmen\ Detroit
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 K.B.\ Blues
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:34 Kenny\ Burrell\ Vol.2
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Midnight\ Blue
    drwxrwx--- 2 root everybody 262144 2024-06-04 13:44 Night\ Song
    JeridA:/storage/BF0E-08F3/Music/Kenny Burrell $ exit
  6. exitでshellから離脱

  7. Mac側で転送対象の音楽ファイルが入ったフォルダ(アルバムフォルダ)に移動

    cd Kenny\ Burrell/A\ Generation\ Ago\ Today/
  8. adb pushで転送
    (adb pushコマンドの引数では、タブ補完が効かない)

    adb push . /storage/BF0E-08F3/Music/Kenny\ Burrell/A\ Generation\ Ago\ Today/
    ./: 8 files pushed, 0 skipped. 25.1 MB/s (50474375 bytes in 1.914s)
    cd ../Kenny\ Burrell\ Vol.\ 2/
    adb push . /storage/BF0E-08F3/Music/Kenny\ Burrell/Kenny\ Burrell\ Vol.\ 2/
    ./: 8 files pushed, 0 skipped. 17.7 MB/s (36730336 bytes in 1.973s)
  9. 後は、同様の事を続けて行うだけである。すなわち、まず、Mac側で音楽ファイルを含むフォルダ(アルバムフォルダ)に移動しておき…。

    cd ../../Dinah\ Washington/Dinah\ \'62/
  10. 例えば、adb shellで階層構造のフォルダを作る。新しいアーティストフォルダとアルバムフォルダを作る場合が、これに該当する。この場合はmkdir -pを使う。
    (mkdirコマンドの引数では、タブ補完が効かない)

    adb shell
    JeridA:/ $ cd storage/BF0E-08F3/Music/                                         
    JeridA:/storage/BF0E-08F3/Music $ mkdir Dinah\ Washington/Dinah\ \'62/
    mkdir: 'Dinah Washington/Dinah '62/': No such file or directory
    JeridA:/storage/BF0E-08F3/Music $ mkdir -p Dinah\ Washington/Dinah\ \'62/    
    JeridA:/storage/BF0E-08F3/Music $ mkdir -p Dinah\ Washington/Dinah\ \'63/                                        
    JeridA:/storage/BF0E-08F3/Music $ mkdir -p Dinah\ Washington/Dinah\ Jams                                         
    JeridA:/storage/BF0E-08F3/Music $ mkdir -p Ahmad\ Jamal/Ahmad\ Jamal\'s\ Alhambra                                
    JeridA:/storage/BF0E-08F3/Music $ mkdir -p Ahmad\ Jamal/The\ Portfolio\ of\ Ahmad\ Jamal                         
    JeridA:/storage/BF0E-08F3/Music $ mkdir -p Ahmad\ Jamal/Ahmad\ Jamal\ At\ The\ Top_\ Poinciana\ Revisited
    JeridA:/storage/BF0E-08F3/Music $ cd Dinah\ Washington/                                                          
    JeridA:/storage/BF0E-08F3/Music/Dinah Washington $ ls
    Dinah\ '62  Dinah\ '63  Dinah\ Jams
    JeridA:/storage/BF0E-08F3/Music/Dinah Washington $ ls -l                       
    total 768
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:43 Dinah\ '62
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:44 Dinah\ '63
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:44 Dinah\ Jams
    JeridA:/storage/BF0E-08F3/Music/Dinah Washington $ cd ../Ahmad\ Jamal/                                                            
    JeridA:/storage/BF0E-08F3/Music/Ahmad Jamal $ ls -l                            
    total 768
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:48 Ahmad\ Jamal\ At\ The\ Top_\ Poinciana\ Revisited
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:45 Ahmad\ Jamal's\ Alhambra
    drwxrwx--- 2 root everybody 262144 2024-10-10 01:46 The\ Portfolio\ of\ Ahmad\ Jamal
    JeridA:/storage/BF0E-08F3/Music/Ahmad Jamal $ exit

    以降は、adb pushで転送(項目7)と同様である

フォルダ(ディレクトリ)作成がadb shell、ファイルコピーがadb pushとなる点がややこしいが、慣れの問題だと思う…。

以上。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL