Read only file system error android как исправить

Failed to push selection: Read-only file system
this error comes when i am trying to add any file in sdcard of emulator..can any one tell me what is the solution of it?

Sree's user avatar

Sree

3,1262 gold badges31 silver badges39 bronze badges

asked Dec 13, 2011 at 4:53

Aamirkhan's user avatar

3

You need to grant your app permission to write to the external SD card. It’s not important that you’re in the «emulator», the emulator IS Android, so it needs to have the same rights as if it were running on an actual device.
Add this line to your manifest…

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

And you’ll be good to go.

answered Dec 13, 2011 at 5:01

Yevgeny Simkin's user avatar

Yevgeny SimkinYevgeny Simkin

27.9k39 gold badges136 silver badges236 bronze badges

1

I had the same problem; The reason appeared to be that the sdcard was not given a size.

By opening the ‘Android Virtual Device Manager’ and edit the device, I could alter the size of the sdcard, or at least make sure that it is not blanc (as that was my problem). After saving the alterations and a reboot of both the emulator and in my case alse Eclipse, the read/write permissions were set correct and I could add files to the sdcard in the emulator.

answered Jun 21, 2013 at 12:21

incomudro's user avatar

incomudroincomudro

5484 silver badges12 bronze badges

1

Make sure that you have added SDCard to your Emulator. So, you should make sure that your AVD should have the SD Card Support - yes

answered Dec 13, 2011 at 5:06

Lalit Poptani's user avatar

Lalit PoptaniLalit Poptani

67.1k22 gold badges160 silver badges242 bronze badges

0

I experienced distressing Android external SD read/write error.
The work around was to check file errors:
Popped the SD card in to my Windows phone, and error gone..!

answered Jul 3, 2017 at 11:31

skm's user avatar

What solved this for me was, as said creating my own sd card file. The steps are as follows

  1. Create sdcard android/sdk/tools/mksdcard [size] [file]
  2. And attach the file as external file under sdcard (shown in advanced setting). Note: this sometimes doesn’t work. if it doesn’t go to ~/.android/avd/[device].avd/config.ini and set sdcard to the generated file

answered Apr 26, 2018 at 12:51

dynamo's user avatar

dynamodynamo

1,12310 silver badges14 bronze badges

Я нашел эту статью из Google и подумал, что добавлю шаги, необходимые для Sony Xperia Z (4.2.2).

В Sony есть сторожевой процесс, который обнаруживает, когда вы изменили ro на rw в/и/system (это единственные, которые я пытался изменить) и, возможно, другие.

Следующее было тем, что я выполнял для выполнения изменений, которые я пытался достичь. Я вложил их в окно, потому что удаление бит выполнения из /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 должен автоматически перезагрузиться. (Он автоматически перезагрузился для меня.)

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.

По умолчанию начинаешь в корне, ведройд всё монтирует в ro, остальное анально огораживает через selinux, потому ты без соответствующих разрешений в манифесте приложения пукнуть не можешь даже на флешке.

Но вернёмся к adb. Тут всё куда проще, нужно просто перемонрировать fs в rw, делается это так: #mount -o rw,remount mountpoint, в твоём случае корень скорее всего.

Postal_Dude

(21.08.17 18:00:49 MSK)

  • Показать ответы
  • Ссылка

Пытаюсь сохранить скаченный файл и выдается — java.io.FileNotFoundException: /1.gif: open failed: EROFS (Read-only file system)
Как это исправиль??

в коде пометил где выпадает ошибка.

private String saveFilePatch = "/1.gif";
    private ProgressDialog dialog = null;
    private String urlFile="https://vk.com/doc430279622_445877224?hash=d20c78fff02c29f267&dl=GQZTAMRXHE3DEMQ:1496394942:6d9c703cd7409eda1b&api=1&no_preview=1";

    private void downloadFile(String url, String saveFilePatch){
        try {
            File SaveFile = new File(saveFilePatch);
            URL u = new URL(url);
            URLConnection con = u.openConnection();
            int lengthofContext = con.getContentLength();

            DataInputStream dataInputStream = new DataInputStream(u.openStream());
            byte[] buffer = new byte[lengthofContext];
            dataInputStream.readFully(buffer);
            dataInputStream.close();

            FileOutputStream fos = new FileOutputStream(SaveFile);
          <b>  // ошибка выпадает в этой строке</b>
            DataOutputStream dataOutputStream = new DataOutputStream(fos);

            dataOutputStream.write(buffer);
            dataOutputStream.flush();
            dataOutputStream.close();
            fos.close();
            hideProgressIndicator();

        }catch (IOException e){
            hideProgressIndicator();
            e.printStackTrace();
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

    private void hideProgressIndicator() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                dialog.dismiss();
            }
        });
    }

    public void onClickBtnTwo(View view) {
        if (urlFile != "") {
            dialog = ProgressDialog.show(MainActivity.this, "", "Download...", true);
            new Thread(new Runnable() {
                @Override
                public void run() {
                    downloadFile(urlFile, saveFilePatch);
                }
            }).start();
        }else {
            System.out.println("null photo");
        }
    }

в манифесте прописано
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Понравилась статья? Поделить с друзьями:
  • Как составить план счастливого дня
  • Как найти чертежи в soul knight
  • X rebirth как найти базу сплитов
  • Как найти очень красивую жену
  • Как найти обратно пропорциональное значение