Poniżej przedstawione działania, chociaż sprawdzone przez autora niniejszego poradnika, stanowią EKSTREMALNE zagrożenie dla twojego telefonu. Wszystko co robisz, robisz na własną odpowiedzialność - nie odpowiadam za żadne negatywne skutki ingerencji w układ partycji twojego telefonu! Jednakowoż autor poradnika przetestował go (póki co do wskazanego momentu;)), nie notując negatywnych skutków.
Nowy układ przeznaczony jest dla custom ROMów NIE OPARTYCH na Stocku
od Samsunga (wynika to przede wszystkim z wielkości tych ROMów i korzystaniu
z partycji /preload, nie z ograniczeń technicznych)
Pomysłodawcą jest użytkownik forum XDA - Tesla-MADAL93, właściwie wszelkie podziękowania należą się właśnie jemu!!
UWAGA!! Zanim przejdziesz do działania - przeczytaj cały poradnik, ponieważ istotne i kluczowe informacje mogą być rozmieszczone w treści tekstu w każdej z części. Na chwilę obecną (chociaż nie powinno być problemów) autor poradnika nie testował "metody powrotnej", zadowolony z aktualnego stanu rzeczy;)).
Domyślny układ partycji:
Docelowy układ partycji:
Część I: Przygotowania.
1. Obecna procedura wymaga posiadania środowiska Linux (testowane na Ubuntu 12.04 LTS)
AKTUALIZACJA!!! [/center]
Poniżej opisaną procedurę zmiany układu partycji możesz przeprowadzić z użyciem system Windows (testowane na Windows 7 Home) z użyciem wiersza poleceń. Metoda sprawdzona przez użytkowników oraz autora tego poradnika. Proces nie różni się od analogicznego z wykorzystaniem dystrybucji Linuxa. [/center] [/size][/b][/color]
2. Konfiguracja połączenia USB (telefon musi być widoczny z poziomu recovery) Szczegóły znajdziesz np. tutaj: XXXXX
3. Działający ADB (Android Debug Bridge) (nie ma potrzeby instalacji całego ADK, wystarczy skopiować plik adb, nadać właściwe uprawnienia i dodać ścieżkę). Szczegóły np. tutaj: [dodam w późniejszym terminie]
4. Zalecam zrobienie kopii niezbędnych aplikacji i danych (np. przez Titanium Backup) - wykorzystanie nandroid backup niszczy nowy układ partycji.
5. Operacje na pamięci odbywają się z użyciem programu/komendy parted
6. Potrzebujesz zewnętrznej karty pamięci micro SD;)
7. Nowy układ partycji wymaga zamiany układu pamięci przed pierwszym uruchomieniem ROMu. (Szczegóły w części IV poradnika)
8. Możliwe, że Odin nie radzi sobie dobrze, ze zmienionym układem partycji, o powrocie do „normalności” przeczytasz w części IV.
[side Note: nic nie stoi na przeszkodzie, by dokonać innej modyfikacji - w sposób, by zaoszczędzona powierzchnia została wykorzystana na powiększenie karty wewnętrznej do około 2 GB, wtedy będzie można instalować niektóre większe gry]
[side Note 2: Autor poradnika, na własne potrzeby, opracowuje ROM (a właściwie schemat) przywracający standardowy układ pamięci – z jedną, zewnętrzną, kartą pamięci – w takim przypadku zamiana pamięci byłaby bezcelowa i zbyteczna. Na chwilę obecną występują jednak błędy uniemożliwiające implementację tego rozwiązania;))]
Część II: Teoria
Przedstawiana metoda zakłada usunięcie części partycji pamięci telefonu oraz ich odtworzenie, z nowymi rozmiarami. Dodatkowo jedna z partycji zostaje usunięta całkowicie (Fota), inne, wymagane/sprawdzane przez system – innymi słowy wymagane do działania telefonu – zostały pomniejszone do minimum.
Ze względu na konieczność zachowania kolejności partycji, ich nazw itp. - kolejność ich tworzenia nie odzwierciedla kolejności wynikającej z "zajmowanych" komórek/bajtów w pamięci, dlatego, gdy nie chcesz wykorzystać z układu zaproponowanego przeze mnie - musisz dokładnie rozpisać układ pamięci przed właściwą ingerencją w "terenie";)).
Proponowany układ przewiduje:
1. Zmniejszenie partycji /system - z ok. 640 MB do 420 MB (autor poradnika używa paczek minimal gapps, toteż zostaje mi jeszcze „bezpieczne” wolne miejsce, na ew. tweaki i modyfikacje na aplikacjach systemowych itp. W przypadku pełnych paczek gapps powierzchnia taka może okazać się niewystarczająca.
2. Zwiększenie partycji /Data - z 1.3 GB na około... 3.3 GB
3. Zmniejszenie partycji /Cache - z ok. 320 MB na ok. 100 MB
4. Zmniejszenie partycji /preload - z ok. 330 MB do ok. 64KB:)
5. Usunięcie partycji Fota
6. Zmniejszenie partycji /UMS ("karta wewnętrzna") - z ok. 1.2 GB na... ok. 64KB:)
Wygląda to mniej więcej tak, jak na drugim obrazku powyżej.
[table=width: 500, class: grid, align: center]
Numer partycji
nazwa partycji
początek
koniec
rozmiar MB
3
SYSTEM
105906
525906
420
4
CACHEFS
3848809
3948809
100
5
DATAFS
525906
3848809
3322,903
8
UMS
3948873
3948937
0,064
9
HIDDEN
3948809
3948873
0,064
[/table]
Powyższa tabela przedstawia kolejność tworzenia partycji, a nie ich rzeczywisty układ!
Część III: Procedura zmiany wielkości partycji
Ok., czas na działania właściwe. Zakładam, że korzystasz z zaproponowanego układu, wykonuj poszczególne kroki DOKŁADNIE w podanej kolejności!
1. Uruchom telefon w trybie recovery, w menu „mounts and storage” odmontuj wszystkie partycje [widoczne: mount] i połącz z komputerem za pomocą kabla usb.
2. Uruchom terminal (Ctrl+Alt+T)
2a. Wpisz komendę: adb devices. Powinieneś zobaczyć podłączone urządzenie (ciąg znaków)
3. Wpisuj kolejno (enter po każdej komendzie):
adb shell
su
parted /dev/block/mmcblk0
unit kb
print
Czas na pożegnanie domyślnego układu - jeśli chcesz to zrobić, zrób to teraz;))
Usunięcie innych, niż wskazane może mieć tragiczne konsekwencje!!)
. Wpisuj kolejno, od ostatniej:
rm 8
rm 11
rm 9
rm 4
uwaga! nawet jeśli przed powyższą procedurą odmontujesz wszystkie partycje - w tym momencie (najprawdopodobniej) wyskoczy ci błąd. Nie odłączając telefonu od kabla wejdź do menu "mounts and storage" i odmontuj partycję CACHE.
jeszcze raz:
rm 4
rm 5
rm 3
[ok., właśnie usunąłeś „bezpieczne” partycje. Teraz pora na odtwarzanie. Partycje tworzone są w kolejności wyznaczonej przez „brakujące”, toteż, żeby zachować ich kolejność i nazwy musimy starannie dobierać początek i koniec partycji].
Wpisz (żeby zobaczyć co narobiłeś🙂)):
print
A teraz już tworzymy (kopiuj tylko linijki zaczynające się od mkpart;)):
(SYSTEM, partycja nr 3)
mkpart primary 105906 525906
(CACHEFS, partycja nr 4)
mkpart primary 3848809 3948809
(DATAFS, partycja nr 5)
mkpart primary 525906 3848809
(HIDDEN, partycja nr 8)
mkpart primary 3948873 3948937
(UMS, partycja nr 9)
mkpart primary 3948809 3948873
Pewnie można to było zrobić jedną komendą podczas tworzenia, ale zmieńmy nazwy (ważna wielkość liter):
name 3 SYSTEM
name 4 CACHEFS
name 5 DATAFS
name 8 UMS
name 9 HIDDEN
(OK, teraz zobaczmy co tam w trawie piszczy):
print
Podoba się?🙂
Ostatnia rzecz – Samsung uczynił z naszej magicznej partycji HIDDEN (/preload) partycję szczególną – bez niej system nie chce ruszyć, a recovery nie chce jej sformatować. Dlatego musimy ją sformatować z poziomu parted, czyli (po każdej komendzie czekasz, aż system ją wykona):
mkfs
y
9
ext2
To już właściwie wszystko.
Teraz jeszcze przygotowanie ROMu do działania z nowym układem:
a) z poziomu recovery sformatuj partycje: /data /system /cache
b) zamień pamięci (zgodnie z informacją z części IV)
c) upewnij się, że ROM + (ew. gapps) zmieści się na nowej partycji /system
d) Ciesz się nowym układem partycji;)
Część IV: Dodatki oraz przebiegi alternatywne;))
1. Zamiana pamięci.
a) Szczegóły zmiany pamięci dla ROMów opartych na Androidzie 4.1x-4.2.x: [później, obecnie weź go z pierwszego postu, stąd:
Forum po zmianach, link nie działa
b) Szczegóły dla ROMów opartych na Androidzie 4.3.x: dorzucę później...
c) Autor nie używał do tej pory żadnego ROMu opartego na Androidzie 4.4.x – zatem w przypadku, gdy chcesz skorzystać z niniejszego tutoriala, kwestię zamiany pamięci musisz załatwić we własnym zakresie.
WAŻNE - powrót nie był testowany!!! Przemyśl, czy na pewno chcesz spróbować zmiany układu partycji w tej sytuacji
2. Powrót do domyślnego układu.
AKTUALIZACJA!!!
Procedura przywrócenia domyślnego układu partycji, sprawdzona przez autora poradnika:
Aplikacja: Odin w wersji 3.09
Plik wymagany: plik pit
Po uruchomieniu programu Odin – wybierz wskazany wyżej plik, zaznacz opcję repartition (możliwe, że zaznacza się automatycznie po wyborze pliku pit) podłącz telefon uruchomiony w trybie Download.
Wybierz opcję Flash.
Po kilku sekundach telefon się zrestartuje.
Teraz masz do wyboru 3 opcje:
a) instalacja Firmware Samsunga
Bez konieczności wyjmowania baterii możesz wcisnąć (podczas uruchamiania się systemu) kombinację: Vol Down + Power + Home, w celu uruchomienia trybu Download.
Wybierz plik z firmware Samsunga jako PDA (dodatkowo plik CSC, jeśli firmware było wieloplikowe) i wybierz opcję Flash.
W ten sposób, po restarcie uruchomi się system w wersji 4.1.2 [metoda jeszcze nie testowana przeze mnie, aczkolwiek powinna działać - w ten sposób uzyskujesz oryginalny układ partycji, wraz z oryginalnym systemem plików. Sprawdzę także, czy jest możliwy powrót z użyciem jednego flashowania (pit + firmware)]
b) Instalacja custom ROMu (Android 4.1+)
Bez konieczności wyjmowania baterii możesz wcisnąć (podczas uruchamiania się systemu) kombinację: Vol UP + Power + Home, w celu uruchomienia trybu Recovery
Jeśli w tym momencie użyjesz komendy parted przez adb Shell (jak w podstawowym opisie), zobaczysz, że modyfikowane uprzednio partycje mają co prawda wielkości oryginalne, ale nie posiadają systemu plików:
adb shell
su
parted /dev/block/mmcblk0
unit kb
print
Dlatego należy najpierw sformatować partycję /HIDDEN (preload) z użyciem parted:
mkfs
y
9
ext2
Teraz z poziomu Recovery sformatuj partycje /system, /data, /cache.
Możesz instalować wybrany przez siebie ROM na oryginalnym układzie partycji (różnica: partycja HIDDEN sformatowana w systemie ext2, w oryginale – ext4).
Powyższa metodatestowana przeze mnie z uzyciem CM11 Macława.
Przebieg alternatywny:
Jeśli przed opisaną powyżej procedurą miałeś zainstalowane firmware z oryginalnym kernelem Samsunga – niezbędna będzie instalacja (przynajmniej) tymczasowego recovery z pliku update.zip, który znajdziesz na pewno gdzieś na forum.
c) ponowne re partycjonowanie według własnego schematu (lub przykładu z części głównej poradnika)
W tym przypadku postępujemy po prostu zgodnie z przebiegiem podstawowym procedury;)).
3. Sytuacje szczególne. Może się zdarzyć, że używasz ROMu, w którym domyślnie zastosowano opcję użycia partycji /preload (HIDDEN) jako swap. Wówczas, szczególnie podczas migracji z różnych wersji Androida konieczne będzie formatowanie tej partycji w recovery programem parted z poziomu adb shell (tak jak robiłeś to w tym poradniku) [zakładam, że uruchomiłeś już komendę parted /dev/block/mmcblk0]:
mkfs
y
9
ext2
4. Informacje dodatkowe od innych użytkowników:
Ryccardo z XDA informuje między innymi, że:
W przypadku zastosowania ekstremalnie małej partycji CACHEFS (/cache) należy bezwzględnie dodać (zmienić/zastąpić – jeśli istnieją) w build.prop następujące wpisy:
dalvik.vm.dexopt-data-only=1
dalvik.vm.dexopt-cache-only=0
Oryginalny post tu
@miryn podaje za Xoenem, między innymi o:
1. Błędzie w programie/komendzie parted. Według tej informacji parted niedokładnie „przyznaje” adresy początku/końca partycji – co może skutkować błędem „overlappingu” partycji. Radzi, by po każdej tworzonej partycji wykonać funkcję „print”, sprawdzając czy adres końca utworzonej partycji jest zgodny z zamierzeniem użytkownika.
@maxprzemo twierdzi natomiast, że błąd ten może powstać w przypadku tworzenia partycji w innej niż wskazana w poradniku kolejności
Ponadto nie wiadomo, czy błąd miałby dotyczyć wersji parted pod Windows, linuxa czy też obu…
2. Możliwości stosowania nandroid backupu (przez recovery) wykonanego przed repartycjonowaniem po wykonaniu tego procesu.
Metoda nie sprawdzona przez autora poradnika, natomiast przy jego tworzeniu uwzględniłem tezę @tesla-MADAL93, według której:
(…)first make a backup of your apps and your files (use titanium or another app with same function, not a nandroid backup because after making new-sized partitions restoring a nandroid backup will make you to use only old space (into specific on Data partition), so if you have for example 3 GB partitions and you restore a nandroid made with old 2 GB you can use only 2 GB instead of real 3 GB size. So after repartition you have to do a clean install of the ROM that you want.
Advice for future (just in case): if you don't have Heimdall install it, Odin just sucks with repartititioned devices”
W wolnym tłumaczeniu
(…) najpierw zrób backup swoich aplikacji i plików (użyj TB albo innej apki z takimi funkcjonalnościami, a nie nandroid backup, pinieważ po utworzeniu partycji z nowymi rozmiarami po przywróceniu backupu używane (widoczne) będą stare rozmiary, zatem jeśli masz np. 3 GB na partycji DATA i przywrócisz android backup ze starą wartością 2 GB, możesz wykorzystać jedynie 2 GB, zamiast faktycznych 3 GB. Zatem po re partycjonowaniu musisz zrobić clean install wybranego przez siebie ROMu. Porada na przyszłość: jeśli nie masz Heimdalla to go zainstaluj, ponieważ Odyn ssie używany na urządzeniach ze zmienionym układem partycji.
To ostatnie stwierdzenie zostało już obalone (co potwierdził sam @tesla-MADAL93, zatem i pierwsze nie musi być prawidłowe.
Link do oryginalnego postu @miryn https://forum.android.com.pl/topic/370521-zwiae-kszenie-miejsca-na-aplikacje-repartycjonowanie/