私は最近私のDroid Xを応援しました、そしてすべてが完璧に働いているようです。に変更を加えたbuild.propところadb push build.prop /system/、次のエラーが発生しましたfailed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system。
どうすれば修正できますか?
私は最近私のDroid Xを応援しました、そしてすべてが完璧に働いているようです。に変更を加えたbuild.propところadb push build.prop /system/、次のエラーが発生しましたfailed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system。
どうすれば修正できますか?
回答:
すべての携帯電話とAndroidのバージョンに同じものがマウントされているわけではありません。
再マウント時にオプションを制限することをお勧めします。
単にrw(読み取り/書き込み)として再マウントします。
# mount -o rw,remount /system
変更が完了したら、roに再マウントします(読み取り専用)。
# mount -o ro,remount /system
adb root、ファイルをプッシュするときにアクセス許可が拒否されます。
Balazss-MBP:tools varh1i$ adb shell generic_x86_64:/ # mount -o rw,remount /system '/dev/block/vda' is read-only
mv hosts /system/etc/hosts
adb remount
私のために動作し、最も簡単な解決策のようです。
Not running as root. Try "adb root" first.。そしてadbd cannot run as root in production builds。
$ adb disable-verity、実行する前にデバイスを再起動する必要があるようです$ adb remount
Not running as root. Try "adb root" first.。私が入っadb rootてから、再度adb remount、それでも同じエラー:Not running as root. Try "adb root" first.
私が同じ質問をしたAndroidフォーラムからこれを手に入れました。これが誰かを助けることを願っています。
電話のターミナルエミュレータ:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
次に、cmdプロンプトで、 adb push
adb shell <command>コンピュータから使用できます(携帯電話にターミナルがない場合)
私の質問は実際のデバイスに関するものですが、エミュレーターで同様の問題が発生した場合、2017年2月の時点で最新のツールを使用して、コマンドラインからエミュレーターを起動する必要があります。
-writable-system
に書き込み可能なものは何でも/system。このフラグがないと、の組み合わせは、remountまたはmountへの書き込みを許可しません/system。
そのフラグを使用してエミュレータを起動したadb remount後adb rootは、1回のアフターで十分/systemです。
エミュレータを実行するために使用するコマンドラインの例を次に示します。
./emulator -writable-system -avd Nexus_5_API_25 -no-snapshot-load -qemu
-avdフラグの値は次のとおりです。
./emulator -list-avds
私は最も安全な方法は/ systemを読み書き可能として再マウントすることだと思います:
mount -o remount,rw /system
完了したら、読み取り専用として再マウントします。
mount -o remount,ro /system
私のSamsung Galaxy mini S5570(携帯電話でルートを取得した後):
拳、ルートとして、私は走った:
systemctl start adb
通常のユーザーとして:
adb shell
su
タッチスクリーンにroot権限を付与する
mount
私たちが持っているすべてのマウントポイントを一覧表示すると、私の場合は/ dev / stl12が/ systemにro(ready only)としてマウントされていることがわかります。
mount -o rw,remount /dev/stl12 /system
コマンドプロンプトで次のことを試してください。
>adb remount
>adb push framework-res_old.apk /system/framework-res.apk
adb root remount
adb disable-verity
adb reboot
adb root
adb remount
これは私にとっては機能し、最も簡単な解決策です。
ここに私のために働いたものがあります。エミュレートされたAndroid 7.1.1(Nougat)デバイスを実行していました。
端末で、次のコマンドを押しました。注目すべきことの1つは-writable-systemフラグです
./emulator -writable-system -avd Nexus_6_API_25 -partition-size 280
別のタブ
./adb shell
su
mount -o rw,remount -t ext4 /dev/block/vda /system
/ systemの内容に対して行ったすべての変更は、再起動後も維持されます。
This worked for me
#Mount as ReadOnly
su -c "mount -o rw,remount /system"
# Change Permission for file
su -c "chmod 777 /system/build.prop"
#Edit the file to add the property
su -c "busybox vi /system/build.prop"
# Add now
service.adb.tcp.port=5678
# Reset old permissions
su -c "chmod 644 /system/build.prop"
# Mount as readonly again once done
su -c "mount -o ro,remount /system"
私はこの記事をgoogleから見つけ、Sony Xperia Z(4.2.2)で必要な手順を追加すると思いました。
ソニーには、/と/ system(これらは私が変更しようとしていた唯一のものです)およびおそらく他のユーザーでroをrwに変更したことを検出するウォッチドッグプロセスがあります。
以下は、達成しようとしていた変更を実行するために実行したものです。/ sbin / ricからの実行ビットの削除は、再起動を停止するためにすばやく実行する必要があるため、これらをウィンドウに貼り付けました。(試してみましたがstop ric、これは機能しません-電話のAndroidの以前のバージョンでは機能しましたが)。
pkill -9 ric; mount -o rw,remount -t rootfs /
chmod 640 /sbin/ric
mount -o rw,remount /system
ここでhostsファイルを変更したので、ここがファイルシステムに必要な変更を加える場所です。私たちが見つけた方法で物事を残すには、次のようにします。
mount -o ro,remount /system
chmod 750 /sbin/ric
mount -o ro,remount -t rootfs /
その時点で、ricは自動的に再起動します。(自動的に再起動しました。)
JanBergströmの回答にもう少し追加:AndroidはLinuxベースのシステムであり、Linuxのパスにはスラッシュ(../)が含まれているため、pushコマンドを使用するときは、「/」を使用してAndroidデバイスの宛先パスを定義します。
たとえば、コマンドは次のようになります。adb push C:\ Users \ admin \ Desktop \ 1.JPG sdcard / pictures /
AndroidはLinuxベースのシステムであるため、ここではバックスラッシュを使用してWindows PCからプッシュされるファイルのソースパスを定義し、フォワードスラッシュを使用して宛先パスを定義しています。このコマンドを使用するためにルートとして動作する必要はありません。また、本番デバイスでは完全に正常に動作します。
Sérgio氏、パラメータのない「mount」コマンドのアイデアに感謝します。私が作っに必要があると思いadb pushの中に/data/data/com.my.app/libいくつかのテストの問題のために、そして、「読み取り専用ファイルシステム」というメッセージが表示されます。
lsコマンドで表示されます:
root@android:/ # ls -l /data/data/com.my.app/
drwxrwx--x u0_a98 u0_a98 2016-05-06 09:16 cache
drwxrwx--x u0_a98 u0_a98 2016-05-06 09:04 files
lrwxrwxrwx system system 2016-05-06 11:43 lib -> /mnt/asec/com.my.app-1/lib
したがって、「lib」ディレクトリは他のアプリケーションディレクトリから分離されていることがわかります。
コマンド
mount -o rw,remount /mnt/asec
は「r / o fs」の問題を解決しませんでした。ディレクトリパラメータの前にデバイスパラメータが必要です。
"df"コマンドも役に立ちませんでしたが、私の/mnt/asec/com.my.app-1ディレクトリが別のマウントポイントにあることを示しています。
それから私は見てmount、ほらほら!
root@android:/ # mount
.........
/dev/block/dm-4 /mnt/asec/com.my.app-1 ext4 ro,dirsync,relatime 0 0
次のステップはすでに上に説明されています:RWに再マウントし、ROにプッシュして再マウントします。
さて、あなたは開発者のコンピュータからSDカードにデータをコピーしたいと思いますか?工夫を根付いて、対応する領域を利用可能にした可能性がありますか?)アプリケーション(Win7のAndroid Studio 1.3.2)のデータファイルをアップロードするのとほぼ同じ問題がありましたが。
たとえば、adbコマンドは次のようになります。
adb push C:\ testdata \ t.txt /sdcard/download/t.txt
端末エミュレータでrootとしてこれを試してください:
restorecon -v -R /data/media
adb remountか、あなたは何を手に入れますか?