나는 최근에 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.
나는 같은 질문을 한 안드로이드 포럼에서 이것을 얻었다. 이것이 다른 누군가를 돕기를 바랍니다.
전화기의 터미널 에뮬레이터에서 :
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하면 권한을 얻을 수 있습니다./system 있습니다.
다음은 에뮬레이터를 실행하는 데 사용하는 명령 줄의 예입니다.
./emulator -writable-system -avd Nexus_5_API_25 -no-snapshot-load -qemu
-avd플래그 값은 다음 과 같습니다.
./emulator -list-avds
가장 안전한 방법은 다음을 사용하여 / 시스템을 읽기 / 쓰기로 다시 마운트하는 것입니다.
mount -o remount,rw /system
완료되면 읽기 전용으로 다시 마운트하십시오.
mount -o remount,ro /system
내 삼성 갤럭시 미니 S5570에서 (휴대폰에 뿌리를 내린 후) :
주먹, 루트로, 나는 달렸다 :
systemctl start adb
일반 사용자로서 :
adb shell
su
터치 스크린에 루트 권한 부여
mount
우리가 가진 모든 마운트 지점을 나열하고 필자의 경우 / dev / stl12가 / system에 ro (준비 전용)로 마운트되었음을 알 수 있으므로 다음과 같이하면됩니다.
mount -o rw,remount /dev/stl12 /system
adb disable-verity
adb reboot
adb root
adb remount
이것은 저에게 효과적이며 가장 간단한 해결책입니다.
여기 나를 위해 일한 것이 있습니다. 에뮬레이트 된 Android 7.1.1 (Nougat) 장치를 실행 중이었습니다.
터미널에서 다음 명령을 수행했습니다. 주목해야 할 것은 -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전화에서 안드로이드의 이전 버전에서 작동 했지만 시도 하지 않았다.)
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이 자동으로 다시 시작되어야합니다. (자동으로 다시 시작되었습니다.)
Jan Bergström의 답변에 조금 더 추가 : Android는 Linux 기반 시스템이며 Linux의 경로에는 슬래시 (../)가 포함되어 있으므로 push 명령을 사용하는 동안 "/"를 사용하여 Android 장치에서 대상 경로를 정의하십시오.
예를 들어, 명령은 다음과 같습니다. adb push C : \ Users \ admin \ Desktop \ 1.JPG sdcard / pictures /
여기서 백 슬래시는 Windows PC에서 푸시 할 파일의 소스 경로를 정의하는 데 사용되고 슬래시는 대상 경로를 정의하는 데 사용됩니다. Android는 Linux 기반 시스템이기 때문입니다. 이 명령을 사용하기 위해 루트 역할을 할 필요는 없으며 프로덕션 장치에서 완벽하게 작동합니다.
덕분에, 세르지오 에 대한 매개 변수를 생각하지 않고 명령을 "마운트". 나는 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 푸시 C : \ testdata \ t.txt /sdcard/download/t.txt
adb remount무엇을 얻습니까?