私は、Play で利用できない商用市場向けのアプリケーションを開発しています。また、カスタム ビルドされた特定のターゲット デバイスがありますが、私が作成したものではありません。特定のサードパーティ SDK リソースを SDCard ディレクトリにインストールする必要があります。たったこれだけで、やることは簡単です。
私が直面している問題は、どういうわけか sdcard ディレクトリが読み取り専用でマウントされていることです。実際には SD カードではなく、内蔵ドライブのパーティションであることに注意してください。それは実際にはその時点で rw をマウントしていましたが、何かが変更され、現在は読み取り専用の sdcard ディレクトリで立ち往生しています。
私がこれまでに試したこと:
SDカードのマウントポイントを再マウントしようとしました。機能していません。ルートとしてログインしている場合でも。エラーはありません。
mount -o remount,rw /dev/block/mmcblk1p4 /mnt/sdcard
/proc/mounts を確認しました。/proc/mounts を見ると、sdcard がマウントされていることがわかります。私が知らないのは、Androidに同等のfstabがあるかどうかです。そのため、オプションを変更します。vold.fstab はそのために行くべき場所だと言われましたが...
/dev/block/mmcblk1p4 /mnt/sdcard vfat ro,relatime,uid=1000,gid=1015,fmask=0202,dmask=0202,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8 ,errors=remount-ro 0 0
vold.fstab を確認しました。これは、/proc/mount に表示されるデバイスとは異なります。
dev_mount sdcard /mnt/sdcard 4 /devices/platform/mmci-omap-hs.1/mmc_host/mmc1 dev_mount usbdisk /mnt/sdcard/usbdisk auto /devices/platform/ehci-omap.0 dev_mount extsd /mnt/sdcard/extsd auto /devices/platform/mmci-omap-hs.0/mmc_host/mmc0
ブートからの logcat 出力を確認しました。マウントにエラーがあったことを示すものは何もありませんが、mount/vold が logcat に報告するかどうかさえわかりません。ただし、起動中のアプリケーションが SD カードに書き込めないことを示す多くのエラーがありました。
この時点で私は非常に混乱しています。これを修正する確実な方法を知っている人はいますか?
編集:
今回はさまざまなマウントオプションを試しました
mount -w -o remount /dev/block/mmcblk1p4 /mnt/sdcard
これはしばらくの間機能し、いくつかのファイル操作を実行できますが、最終的にはほとんど数分以内に RO に戻ります。