Saya melihat beberapa menyebutkan di sini tentang membuat kartu SD berformat ext4, tetapi tidak ada panduan. Pertanyaan yang berkaitan erat ini menyarankan tidak ada cara untuk melakukannya, tetapi pertanyaan saya berbeda karena ponsel saya secara khusus di-root.
Saya memformat kartu saya sebagai ext4 (GUID partisi-table); ponsel Cyanogenmod saya memasangnya di /mnt/fuse/sdcard1
. Saya mengikuti instruksi di sini untuk memasang kartu di /storage/sdcard1
, dengan membuat skrip berikut di/data/local/userinit.sh
#!/system/bin/sh
REALMNT=/mnt/fuse/sdcard1_real
if ! [ -d "$REALMNT" ]; then
mkdir "$REALMNT" || exit 1
fi
mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT"
sdcard "$REALMNT" /storage/sdcard1 1023 1023 &
Saya memulai kembali dan mencoba menyalin file (menggunakan ES File Explorer) dan menempelkannya ke direktori induknya, yang gagal:
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
Saya benar-benar dapat memutar file dengan baik, jadi saya bisa membukanya. FWIW, ketika saya mencoba menyalin dari titik mount asli ( /mnt/fuse/sdcard1
), saya mendapatkan kesalahan yang sedikit berbeda:
Failed to copy the file bar.mp3
Saya menggunakan Samsung Galaxy S3 dengan Cyanogenmod 10.2.0-i9300.
== EDIT ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
Itu saja. Tidak ada sdcard1_real
dalam direktori ini, jadi saya kira skripnya gagal?
== EDIT2 ==
Saya mencoba memodifikasi skrip untuk memecahkan masalah. Script dimulai dengan baik, tetapi kemudian gagal mkdir "$REALMNT"
dengan kesalahan /data/local/userinit.sh[6]: : not found
.
== EDIT3 ==
Saya tahu bahwa skrip tidak berfungsi, jadi memperbaikinya dapat menyelesaikan pertanyaan saya, tetapi saya pikir yang berikut ini menarik. Saya memformat kartu SD saya di komputer Linux saya, dan mentransfer beberapa file ke dalamnya. Anehnya, kesalahan izin hanya terjadi di subdirektori yang saya buat. Di root partisi (via /storage/sdcard1
), saya sudah memiliki izin menulis.
ls -l /mnt/fuse/
danls -l /mnt/fuse/sdcard1_real
. Kemudian edit pertanyaan Anda untuk memasukkan hasilnya. Dugaan saya adalah "izin file yang salah" - baik untuk mount, atau untukfoo/
direktori pada kartu. Ingat, ext4 mendukung izin file * nix lengkap, termasuk. pengguna dan grup.su
terminal untuk mendapatkan root. Anda mungkin perlu mengonfirmasi pemberian izin di telepon, jika Anda melakukannya untuk pertama kalinya.echo Script executed > /mnt/fuse/sdcard1/test.log
, dan memeriksa apakah itu berjalan sama sekali. Jika demikian, buat baris sebelum-ke-terakhirmount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
dan periksa pesan kesalahan. Atau menjalankan script secara manual untuk melihat:su /data/local/userinit.sh
.touch
menunjukkan bahwa skrip sedang berjalan. Saya mencoba menjalankan skrip secara manualsu /data/local/userinit.sh
, tetapi ini gagal. Saya juga mencobasu echo foo
, dan mendapatkan kesalahan yang sama:Unknown id: echo
.echo
untuk output setiap perintah sebelum dieksekusi, dan redirect output kesalahan dengan2>>
.Jawaban:
Ini seharusnya diperbaiki beberapa bulan yang lalu, tetapi orang masih melaporkan masalah. Saya dapat membaca item di kartu, tetapi tidak memiliki izin menulis. Untuk memperbaikinya, saya menggabungkan strategi dari beberapa sumber .
Tanda
$
dan#
tunjukkan meminta, jadi jangan mengetikkannya.Ini mengubah izin kartu SD. Pemilik dan grup berubah dari
system
menjadimedia_rw
, dan juga memberikan akses tulis grup.sumber
Tidak yakin apakah ini bisa membantu, tapi mungkin masalahnya Anda mencoba memasang di tempat yang salah? Ini adalah skrip kerja saya yang berfungsi pada S3 mini dengan CM11:
Lokasi REALMNT sudah ada, jadi tentu saja mkdir tidak pernah dipanggil. Dan media_rw / sdcard1 sudah dimiliki oleh media_rw
Saya juga harus memperbarui /etc/permissions/platform.xml untuk memasukkan:
<group id="media_rw"/>
di:<permission name="android.permission.WRITE_EXTERNAL_STORAGE">
sumber
su
gagal me-mount):
android.stackexchange.com/questions/82089/... `Saya menggunakan cm-11-20140804-SNAPSHOT-M9-mondrianwifi.zip.Ada jawaban yang diposting oleh adasdadasd yang ingin saya terima, tetapi sejak itu dihapus. Saya akan mereproduksinya di bawah, dan menerima jawaban saya, tetapi jika adasdadasd muncul kembali, tolong posting ulang dan saya akan menghapus ini dan menerima jawaban Anda.
sumber