Android OS > Spica (GT-i5700)

app2sd na Eclair 2.1 dla i5700

(1/12) > >>

maryush:
Malo sie udzielam, ale w tym wypadku podziele sie moim wlasnym osiagnieciem (pod namowa niektorych osob ;p). Tak podobno nie ma app2sd dla Spice z romem 2.1:



jak widac da sie, jest tylko jeden maly problem - wszystko trzeba z reki robic, nie udalo mi sie opracowac jeszcze automatu ktory to by robil, zaleta - ma sie rownoczesnie dostepne i nowy storage i stary.

Przepis w skrocie (root wymagany):
- robimy partycje na karcie sd (mozna znalezc na sieci jak to sie robi)
- podlaczamy telefon do kompa i teraz:

--- Kod: ---adb shell
su
mkdir /data_old
mkdir /data_new
mount -t ext2 /dev/block/vold/179:2 /data_new

--- Koniec kodu ---

i teraz najgorsza zabawa, trzeba zrobic kopie wszystkich plikow z /data - nie jest to proste - czemu? bo root na spice ma jakis dziwny problem z uprawnieniami, chownem trzeba zmieniac uprawnienia by przechodzila kopia, ale potem jest zabawa z nadawaniem ich z powrotem. Ja to zrobilem w inny sposob:

--- Kod: ---cat /dev/stl5 > /sdcard/data-stl5.img

--- Koniec kodu ---

przegranie pliczku na kompa, pod linuxem podmontowanie tak:

--- Kod: ---mount -o loop data-stl5.img /punkt/montowania

--- Koniec kodu ---

nastepnie spakowanie zawartosci /punkt/montowania (do tar.gz), przegranie go na telefon, wypakowanie, i zabawa z chownem

ostatni krok to wydanie polecenia pod adb:

--- Kod: ---# mount -o bind /data_new /data

--- Koniec kodu ---

i sprawdzenie czy wszystko dziala, jak nie, uruchamiamy ddms'a z sdk i patrzymy w logi, jesli sa problemy z uprawnieniami, zaczyna sie zabawa w nadawanie - mi na szybko pomoglo zmienienie wszystkich uprawnien dla katalog /data/system i /data/apk oraz /data/apk-private na 777...

kwestia otwarta jest jeszcze dodanie montowania partycji z karty do startu systemu i binda, jak to rozwiaze to postaram sie moze zrobic skrypt ktory ulatwi migracje, ale nie obiecuje - zalezy to od mojego wolnego czasu (tak swieta byly ;p)
Połączone: Kwiecień 07, 2010, 00:25:11ok poprzednia wersja sprawiala pewne problemy (np. zapetlone wykladanie sie panteonu ;p), oto nowa wersja, sprawdzona i dziala - plik z zalacznika nalezy rozpakowac na karte pamieci i nastepnie wydac polecenia:

--- Kod: ---cp /sdcard/app2sd.sh /data/local/tmp/
cp /sdcard/app2sd.mount /data/local/tmp/
chown root.root /data/local/tmp/
chmod 775 /data/local/tmp/app2sd.sh

--- Koniec kodu ---
a nastepnie:

--- Kod: ---cd /data/local/tmp/
./app2sd.sh

--- Koniec kodu ---

po skonczeniu pracy skryptu trzeba sprawdzic czy istnieja wszystkie pliki w /data_new/app/, /data_new/app-private i /data_new/dalvik-cache

o tym ze karta pamieci musi miec partycje ext2 dodatkowa nie bede wspominal - jedynie jedna bardzo wazna sprawa - ta partycja musi byc za partycja fat, czyli jako druga. Testowalem na 512MB partycji - dziala bez problemow.

W razie problemow z dzialaniem systemu nie trzeba robic wipe, wystarczy podczas bootowania ze podlaczymy telefon do komputera, w momencie jak zniknie animowane logo samsunga wpisujemy:

--- Kod: ---adb shell
su
remount rw
cd /system/etc/
cat install-recovery.sh | grep -v bind > install-recovery.sh-clean
cat install-recovery.sh-clean > install.recovery.sh
rm install-recovery.sh-clean
remount ro

--- Koniec kodu ---

jesli zrobimy to wystarczajaco szybko zanim uruchomi sie sam dalvik i odpali launcher'a - mamy dzialajacy poprawnie system bez restartu :) w innym wypadku mozna zrobic sobie profilaktycznie restarta telefonu (shell -> reboot)

dodatkowa porada - jesli w testach wyjdzie ze wszystko dziala poprawnie, to mamy na karcie przygotowana przez skrypt kopie bezpieczenstwa plikow z /data/app i /data/app-private (stan sprzed modyfikacji), dzieki temu mozna wyczyscic sobie /data_old/app i /data_old/app-private ze zbednych plikow i zwolnic troszke miejsca dodatkowego. Miejsce to jest przydatne podczas instalacji apk - jesli system wyswietli komunikat o bledzie otwarcia pliku apk i braku pamieci to znaczy ze brakuje wolnego miejsca na /data_old - wtedy jedyna metoda to przeczyszczenie tych katalogow w tamtym miejscu. Przywracania z kopii nie bede podawal bo chyba kazdy na googlu znajdzie jak rozpakowywuje sie pliki tar.gz.

Aha to wersja beta, nie biore odpowiedzialnosci za ewentualne uszkodzenia systemu/telefonu (nie powinny miec miejsca - ale rozne przypadki sie zdarzaja). W wypadku tej modyfikacji nie wgrywamy niczego na stale do romu, wiec po wipe wszystko powinno dzialac po staremu.

I jeszcze jedno - jesli pojawia sie jakies problemy z dzialaniem skryptu - piszcie smialo :)

abigor82:
Niestety u mnie nie działa  :( wywala mi #!/system/xbin/busybox: not found z terminala telefonu jak i z adb shell,  polecenia echo i "#" jak wpisuje "exit" skrypt zaczyna pracowac jednak na wiekszość komend dostaje : brak dostępu.
Oczywiście mam tel z rootem , przed odpaleniem skryptu próbowałem remount rw.

maryush:
a masz utworzona partycje na karcie sd tak jak pisalem? (jako druga)
i masz rom 2.1? bo jak nie znajduje busybox'a to bedzie problem :) - ogolnie - u mnie busybox na i570exxjcb jest w /system/xbin/busybox,
i uruchamiales skrypt jako root? (adb shell, su, dopiero skrypt)

abigor82:
tak mam partycje ext2 druga, za  fat32, oczywiscie 2.1  jce z kernelem LkKernelDevTest ale probowalem tez na standardowym z JCE, busyboxa mam bo mam moda lkmod 2.5.1 jest remount itd. no i to jest dziwne bo u mnie tez busybox jest w /system/xbin/   "ls | grep busybox" tak wypluwa. Próbowałem jako root "su" i probowałem remount rw przed odpaleniem. Może coś przeoczyłem muszę iść do pracy wieczorem jeszcze spróbuję. Dzięki tak czy inaczej dobra robota z taka iloscia pamieci jak ma spica app2sd jest niezbedne.

maryush:
Jak by co to pisz - w najgorszym wypadku zrob tak, otworz sobie ten pliczek na kompie, i linijka po linijce wykonuj polecenia, gdzie cos sie wywali to daj znac (ofcoze pomin pierwsza linijke ;p) wraz z dokladnym bledem, moga byc problemy z uprawnieniami - dla tego jak pisalem na poczatku u mnie skonczylo sie raz robieniem chmod 777 /data/data/* i tak samo dla /data/app i /data/app-private - druga metoda jest bezpieczniejsza i daje cos czego nie daje pierwsza - wystarczy zmienic jedna linijke w pliku /system/etc/recovery-install.sh (ta z mount -o bind) i mamy po staremu :)

W sumie ciekawi mnie jak duzo danych system robi na dziendobry po pierwszym starcie na /data i jakie to dane - bede musial kiedys zrobic wipe i zerknac - to moze uda sie jeszcze bardziej odchudzic ten skrypt, albo zrobic jeszcze inna metode na app2sd :)

Ogolnie ta metoda jest posrednim app2sd - tzn. mamy aplikacje na karcie sd ale jest jedno powazne ale - w starym /data zostaje i jest uzywany na bierzaco katalog data - w momencie kiedy byl na karcie to telefon krzyczal przy starcie o tym ze uid instalacji jest niezgodny, a nastepnie pantheon wpadal w nieskonczona petle restartow - pojawialy sie dolne ikony, dwie nad nimi i restart przy ladowaniu widgetow - stad druga metoda, ciekawe jak to wygladalo by w wypadku calkowicie czystego systemu i zrobienia wipe (za duzo ustawien mialem... stad pojscie w zaparte i robienie bez koniecznosci wipe)

To ma jedna wade - jesli mialo sie zapchana partycje /data oryginalna to app2sd moje duzo nie zmieni - tzn. mozna bedzie instalowac soft (hehehe do ilosci 134 app - wiecej pantheon nie pokaze, ale mam juz hacka na niego - ktos zainteresowany? ;p), telefon pokaze wiecej pamieci, ale w pewnym momencie dojdzie do zapchania sie oryginalnej i bedzie wtedy komunikat o braku miejsca w pamieci by wykonac instalacje... Stad najbezpieczniej jest robic tego typu zmiane jak ma sie jak najwiecej miejsca wolnego na prawdziwym /data, albo po zrobieniu reczne kasowanie apk z /data_old/app/ i dex'ow z /data_old/dalvik-cache/

ps. czy jest ktos kto jest gotowy zrobic wipe i sprawdzic najkrotsza mozliwa wersje:
- utworzyc partycje na karcie (druga!) i w ramach kontroli czy wszystko jest ok:

--- Kod: ---adb shell
$ su
# mkdir /data_new
# mount -t ext2 /dev/block/vold/179:2 /data_new
# df
<tu powinno pojawic sie to data_new wraz z podana wielkoscia wolnego miejsca i zajetego>

--- Koniec kodu ---
jezeli jest ok to mozna dodac wpis ponizszy do /system/etc/install-recovery.sh:

--- Kod: ---if [ ! -d /data_new ];
then
   mkdir /data_new
   mkdir /data_old
   chmod 771 /data_old
   chmod 771 /data_new
   chown system.system /data_old
   chown system.system /data_new
   mount -t rfs /dev/stl5 /data_old
   mount -t ext2 /dev/block/vold/179:2 /data_new
   mount -o bind /data_new /data
fi;

--- Koniec kodu ---

zapisac, i wipe (o ile sie nie myle to ten plik nie jest tykany przy restore - jak jest to na dzien dzisiejszy innej metody niz druga nie ma (w 100% skutecznej - caly czas jade na tym app2sd i kurde mam wrazenie jak by szybciej instalacja programow przebiegala, ogolnie jak by szybkosc operacji wzrosla wzgledem tego systemu rfs Samsunga)

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej