После установки Cyanogenmod на Samsung Galaxy S внутренняя память телефона стала неверно отображаться — как SD карточка. Надо восстановить справедливость.
В Linux монтирование дисков и их обозначение происходит согласно таблице разделов. Эта таблица храниться в /etc/fstab. Android — это тоже OS в основе которой лежит Linux. А значит подобная таблица должна присутствовать.
Располагается она в /system/vold.fstab и имеет примерно такое содержание
dev_mount emmc /mnt/emmc 1 /devices/platform/mmci-omap-hs.1/mmc_host /mmc0 dev_mount sdcard /mnt/sdcard auto /devices/platform/mmci-omap-hs.0/mmc_host/mmc1
Запускаю эмулятор терминала, входящий в состав Cyanogen Mod 7.
Далее:
$ su
Разрешаю использование root эмулятору терминала. Этим занимается SuperUser, которая есть в комплекте.
# cd /system/etc
# cp vold.fstab vold.fstab.backup
Мысль заключается в том, чтобы подправить таблицу разделов так, чтобы по пути /mnt/sdcard располагалась SD карта памяти, а не внутренняя память телефона. Меняю label и путь до точки монтирования для mmc0 и mmc1:
Изменения вношу, естественно, с помощью vi — в unix системе он должен присутствовать.
# vi /system/etc/vold.fstab
Привожу к виду:
dev_mount sdcard /mnt/sdcard 1 /devices/platform/mmci-omap-hs.1/mmc_host/mmc0 dev_mount emmc /mnt/emmc auto /devices/platform/mmci-omap-hs.0/mmc_host/mmc1
Перезагрузка и проверка.
Теперь по пути /mnt/sdcard находиться то, что и нужно было. А именно SD карта памяти на 8Gb вместо внутренней памяти в 2Gb