基本上 Emulator /system 目錄是唯讀的,要解除其唯讀屬性可以透過下列方法:
adb remount adb push libmy.so /system/lib
但是,在 Android 2.0 (Eclair) 以後,上面的作法會出現這樣的錯誤:
failed to copy 'hosts' to '/system/etc/hosts': No space left on device或
failed to copy 'hosts' to '/system/etc/hosts': Out of memory
解決方法是,開啟模擬器時不要直接從 AVD Manager介面開,請下指令:
emulator -avd youravdname -partition-size 128接著再對這個模擬器使用上面的方法就不會出現錯誤了。
深究其原因是 partition size 預設是 64MB。從 adb shell 用 df 指令觀察的結果,/system 在2.x 的 image mount 之後剩下空間是 0K。因此即使 remount 之後也無法寫入。
Filesystem 1k-blocks Used Available Use% Mounted on tmpfs 128276 0 128276 0% /dev tmpfs 128276 0 128276 0% /mnt/asec /dev/block/mtdblock0 77568 77568 0 100% /system /dev/block/mtdblock1 129152 54988 74164 43% /data /dev/block/mtdblock2 65536 1156 64380 2% /cache /dev/block/vold/179:0 1044472 65608 978864 6% /mnt/sdcard /dev/block/vold/179:0 1044472 65608 978864 6% /mnt/secure/asec
可惜AVD Manager 沒地方可以設定 partition size。所以目前只能在 console 以手動下指定開emulator囉。
0 意見:
張貼留言