Kir Kolyshkin (k001) wrote,
Kir Kolyshkin
k001

Category:

Android 2.2: adb; install to SD card

Разобрался, почему приложения не хотят ставиться на SD-карточку. Оказалось, что просто пока таких приложений ещё пока нет, но ставить их на карточку всё равно уже можно, только с небольшим вывертом. Перенёс несколько штук из телефона на карту. Расскажу, как.

I. Получение доступа к шеллу от телефона.

Длинный способ -- поставить (на "большой компьютер") и настроить adb. Короткий -- поставить на телефон Terminal Emulator. Описываю оба.

ADB

(0) Поставьте Android SDK.

(1) Пропишите себя в группу plugdev:
sudo /usr/sbin/usermod -a -G plugdev $USER

(2) Пропишите настройки для udev (эти -- для Nexus One):
# cat << EOF > /etc/udev/rules.d/90-android.rules
SUBSYSTEM=="usb|usb_device", SYSFS{idVendor}=="18d1", MODE="0660", GROUP="plugdev"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", SYMLINK+="android_adb"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", SYMLINK+="android_fastboot"
EOF


(3) Перелогиньтесь и проверьте, что вы в группе plugdev (id | grep plug)

(4) На телефоне поставьте галочку на Settings -> Applications -> Development -> USB debugging

(5) Подключите телефон к компу посредством USB шнурка, смотрите, появился ли нужный девайс (ls -l /dev/andr*)

(6) Запустите adb shell:
adb shell
Если вам выдали доллар -- это шелл от телефона (не рутовый, конечно).

Альтернативный вариант -- поставить на телефон Terminal Emulator, и нижеперечисленные команды делать уже в нём.

II. Инсталляция на SD card.

(1) В шелле телефона пишем:
pm getInstallLocation
в ответ получим
0 [auto]

Это значит, что приложения будут сами выбирать, куда им ставиться. Но таких приложений, у которых в манифесте указано, куда они хотят ставиться, ещё нет. Поэтому в этом режиме "авто" всё будет ставиться в память телефона. Но это можно изменить

(2) В шелле телефона пишем:
pm setInstallLocation 2
Это значит, что хотим непременно на SD card.

(3.1) Теперь можно пойти в Settings -> Applications -> Manage Applications, там ткнуть в любое приложение и нажать на (уже теперь не-серую) кнопочку "Move to SD card". Таким же образом перенести все "толстые" приложения. Не рекомендуется переносить на карточку часто используемые приложения, живые обои и т.п.

(3.2) Также можно пойти и в Маркет, где что-нибудь себе поставить. Ставиться оно будет сразу на SD card.

(4) "И увидел он, что это хорошо". Закончив работы по п. 3, надобно опять пойти в шелл телефона и восстановить там старое значение параметра InstallLocation:
pm setInstallLocation 0

Деньги, как всегда, шлите мне по почте конвертами и бандеролями.
Tags: android, linux
Subscribe
Comments for this post were disabled by the author