IT story

Android에서 파일 시스템 만 읽기

hot-time 2020. 5. 10. 10:26
반응형

Android에서 파일 시스템 만 읽기


나는 최근에 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 remount

나를 위해 일하고 가장 간단한 해결책 인 것 같습니다.


나는 같은 질문을 한 안드로이드 포럼에서 이것을 얻었다. 이것이 다른 누군가를 돕기를 바랍니다.

전화기의 터미널 에뮬레이터에서 :

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

그런 다음 cmd 프롬프트에서 adb push


나는 실제 장치에 대한 질문을 알고 있지만 누군가 2017 년 2 월 현재 최신 도구를 사용하여 에뮬레이터에서 비슷한 문제가 발생하면 에뮬레이터를 명령 줄에서 시작해야합니다.

-writable-system

에 쓸 수있는 모든 것 /system. 이 플래그가 없으면 어떠한 조합 remount또는 mount쓰기에 1을 허용하지 않습니다 /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 remount
>adb push framework-res_old.apk /system/framework-res.apk

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 내용에 대한 모든 변경 사항은 재시작 후에도 유지됩니다.


전화기에서 터미널 에뮬레이터를 엽니 다.

adb shell

그 데몬이 시작된 후

su
mount -o rw,remount /mnt/sdcard

그런 다음 읽기 전용이 읽기-쓰기로 변환됩니다.


mount -o rw,remount /dev/stl12 /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"

에뮬레이터로 확인하고 다음 작업을 수행했습니다.

  1. adb 재부팅
  2. adb root && adb remount && adb push ~ / Desktop / hosts / system / etc / hosts

As mentioned above as well, execute second step in single shot.


I found this article from google, and thought I'd add the steps necessary on a Sony Xperia Z (4.2.2).

The Sony has a watchdog process which detects when you've changed ro to rw on / and /system (these are the only ones I was trying to modify) and possibly others.

The following was what I ran to perform the changes I was trying to achieve. I pasted these into a window, because removing the execute bit from /sbin/ric needs to be done quickly in order to stop it restarting itself. (I tried stop ric; this doesn't work - although it worked on a previous version of android on the phone).

pkill -9 ric; mount -o rw,remount -t rootfs /
chmod 640 /sbin/ric
mount -o rw,remount /system

I modified the hosts file here, so this is the place you make the changes you need to the filesystem. To leave things the way we found them, do this:

mount -o ro,remount /system
chmod 750 /sbin/ric
mount -o ro,remount -t rootfs /

At which point ric should automatically restart. (It restarted for me automatically.)


Adding a little bit more to Jan Bergström's answer: Because Android is a Linux based system, and the path in Linux contains forward slashes(../), while using push command, use "/" to define destination path in the Android device.

For Example, the command goes: adb push C:\Users\admin\Desktop\1.JPG sdcard/pictures/

Notice that here, back slashes are used to define source path of the file to be pushed from windows PC and forward slashes are used to define destination path because Android is a Linux based system. You don't have to act as a root to use this command and also, it works perfectly fine on production devices.


Sometimes you get the error because the destination location in phone are not exist. For example, some android phone external storage location is /storage/emulated/legacy instead of /storage/emulated/0.


Thanks, Sérgio, for "mount" command without parameters idea. I'd need to made adb push into /data/data/com.my.app/lib for some test issue, and get "Read-only filesystem" message.

ls command shows me:

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

So, it's understood, that "lib" directory is separated from other application directories.

Command mount -o rw,remount /mnt/asec didn't resolve "r/o fs" issue, it wants device parameter before directory parameter.

"df" command didn't help also, but shows that my /mnt/asec/com.my.app-1 directory is at the separate mount point.

Then I looks by mount and voila!

root@android:/ # mount ......... /dev/block/dm-4 /mnt/asec/com.my.app-1 ext4 ro,dirsync,relatime 0 0

Next steps are already described upwards: remount to RW, push and remount back to RO.


it sames that must extract and repack initrc.img and edit init file with the code of mount /system


In my case I was using the command adb push ~/Desktop/file.txt ~/sdcard/

I changed it to ~/Desktop/file.txt /sdcard/ and then it worked.

Make sure to disconnect and reconnect the phone.


If there's a failure in copying the read-only file you can try locating the original file in the root directory and modify it with a root text editor (preferably) RB text editor, it comes with ROM Toolbox app.


Try this in a Terminal Emulator as root:

restorecon -v -R /data/media

Copy files to the SD-card?

Well, I assume you like to copy data to the Sd-card from the developers computer? You might have rooted the devise and made the area you address available?) I had about the same problem to upload data files for my application(Android Studio 1.3.2 in Win7), but.

  • First the adb command-shell has to be found in th path: PATH=%PATH%;C:\Users\XXXXX\AppData\Local\Android\sdk\platform-tools (the folder AppData is hidden, so you have to set the folder setup not hiding concealed files and folder to find it, Path works regardless)
  • You have to spell the folder path right or you get a read-only error message, most likely it must start with /sdcard or it is read only area. As soon as I did no problem pushing the file to the emulator.

So for instance the the adb command can look like this:

adb push C:\testdata\t.txt /sdcard/download/t.txt

참고URL : https://stackoverflow.com/questions/6066030/read-only-file-system-on-android

반응형