/ systemを書き換え可能または読み取り専用にマウントする方法は?(RW / RO)


回答:


63

/systemディレクトリRWまたはROをマウントする方法はいくつかあります。ただし、rootが必要です。

方法1:

  1. 電話機をコンピューターに接続します。(お使いの携帯電話でUSBデバッグが有効になっていることを確認してください)

  2. オープンCMD/ TerminalPC上で。

    • Windows:CTRL+ R、次にを入力しcmdます。

    • Ubuntuの:CTRL+ ALT+ T

    • Mac:/Applications/Utilities/[ ターミナル ]に移動してダブルクリックします。

  3. これを入力してください:

    1. adb shell
    2. su

    3. 次のいずれかを選択します:(/system終了時にセキュリティマウントしてROに戻すため)

      • マウントシステムRW: mount -o rw,remount /system
      • マウントシステムRO: mount -o ro,remount /system

方法2:

  1. terminalAndroidフォンで開きます(ここからダウンロード):
  2. 以下にこれを入力しますterminal

    1. su

    2. 次のいずれかを選択します:(/system終了時にセキュリティマウントしてROに戻すため)

      • マウントシステムRW: mount -o rw,remount /system
      • マウントシステムRO: mount -o ro,remount /system

方法3:

ターミナルで毎回コマンドを入力したくない場合は、これを行うために設計されたアプリを作成しました。


Android 2.3

Android 2.3を実行していてコマンドが失敗する場合は、次の回答をご覧くださいhttps : //android.stackexchange.com/a/125437/95577


4
これ(方法1)は、新しいAndroidでは動作しなくなったようです。Android 6を実行しているAndroidエミュレーターで実行しようとしていますが、常に「mount:Read-only file system」というエラーが表示されます。私はadb rootを実行しましたが、違いはありません。何ができるかについてのアイデアはありますか?
-diidu

1
わかったよ エミュレータを起動するときに-writable-systemコマンドラインオプションを使用する必要があります。その後、最初のadbの再マウントは成功したようです。どうやら...まだrwに変わるのを見たことがない。
-diidu

emulator -writableは依然として正しい答えです。
エドガーAroutiounian

「Android 2.3を実行している人のために」-そのフレージングは​​あまりうまく通信しません。おそらく2.3以上または2.3以下(または、2.3のみに特定のバグがある場合は、正確には 2.3)を意味すると思いますが、どちらがなぜかはわかりません。
ドンハッチ

2

-writable-system エミュレータ用

ビルド後にエミュレータを起動するときは、次を使用する必要があります。

. build/envsetup.sh
lunch aosp_x86_64-eng
emulator -show-kernel -verbose -writable-system

その後、将来の実行のために、-writable-systemオプションを保持する必要があります。そうしないと、画像の変更が表示されなくなります。

emulator -show-kernel -verbose -writable-system

-verboseエミュレータがデフォルトから切り替わることを示しています-drive

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img,read-only

に:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576

したがって、それ:

  • 削除する ,read-only

  • system-qemu.img.qcow2代わりに使用しますsystem-qemu.img

    これ-writable-sytemは、変更が行われた後に将来のブートを渡す場合にのみ、変更が後で表示されることを意味します!

    qcow2イメージは、ベースイメージの上にある小さなオーバーレイであることがわかります。

    qemu-img info /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2
    

    含まれるもの:

    backing file: /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img
    

エミュレータ-helpはこれも確認します。

emulator -help

含まれるもの:

-writable-system     make system & vendor image writable after 'adb remount'

adb remount + adb root

これはhttps://android.stackexchange.com/a/110928/126934mount言及されているように、単なるショートカットだと思いますが、非常に便利です:

adb root
adb remount
adb shell

adb help 含まれるもの:

 root                     restart adbd with root permissions
 remount
     remount /system, /vendor, and /oem partitions read-write

元のシステムイメージを復元する

ユーザーデータと同じ:.qcow2オーバーレイを削除し、手動で再生成しますhttps : //stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and-実行中の

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.