Často kladené dotazy (Rootování a firmware)
Z Android Wiki
[editovat] Jak rozdělím kartu pro App2SD a swap?
Především jedno upozornění - abyste mohli App2SD a/nebo swap uspokojivě používat, potřebujete mít kartu tzv. třídy 6. Třída určuje (mimo jiné) maximální rychlost, jakou je karta schopna přenášet data, přičemž i karty třídy 6 nebo nově se objevující třídy 8 jsou výrazně pomalejší než interní paměť telefonu. Proto je vhodné mít kartu co nejrychlejší. Někteří uživatelé sice provozují App2SD a swap i na kartách třídy 4, ale vzhledem k cenám karet se opravdu vyplatí investovat nevelkou sumu do karty třídy 6 (pokud možno do některé z osvědčených značek, např. Sandisk, Kingston nebo Transcend). Třídu karty poznáte poměrně snadno - pokud se na kartu podíváte, měli byste ze strany, ze které se nachází logo výrobce a další údaje, najít také malou číslici v kroužku. To je právě označení třídy. Není-li tam žádná k nalezení, je takřka jisté, že jde o kartu třídy 2, tedy o nejpomalejší běžně dostupnou třídu karet. Karty třídy 2 se obvykle běžně dodávají přibalené společně s telefonem, když ho kupujete.
[editovat] Rozdělení karty s pomocí alternativního recovery
Jde o úkon, který budete muset dělat patrně pouze jednou. Tento návod předpokládá, že už máte v telefonu nainstalovaný alternativní recovery image, nebo že máte alespoň možnost ho nastartovat prostřednictvím fastboot Pozor! Pokud se budete řídit tímto návodem, přijdete o veškerá data, která na kartě byla do té doby uložena, takže si VŠE DŮLEŽITÉ ZAZÁLOHUJTE! (Ať už na jinou kartu nebo přímo do PC.)
Nastartujte telefon do recovery režimu: na vypnutém telefonu stiskněte současně tlačítko Domů a červené tlačítko a držte je tak dlouho, dokud se telefon nezapne. Alternativně můžete, pokud máte přístupný fastboot, recovery nastartovat příkazem 'fastboot boot název_recovery_image.img'. Jakmile nastartujete recovery, potřebujete přístup k příkazovému řádku. Majitelé T-Mobile G1 či jiného telefonu s hardwarovou klávesnicí zvolí v nabídce svého recovery volbu pro vstup do konzole a mohou pracovat přímo na telefonu. Majitelé HTC Magic, HTC Hero a dalších telefonů bez hardwarové klávesnice jsou odkázáni na adb z Android SDK - musí tedy telefon po startu připojit k PC s instalovaným Android SDK a pracovat s pomocí adb terminálu z PC. V konzoli byste po jejím spuštění měli vidět příkazovou řádku, která začíná dvojitým křížkem. To znamená, že máte root přístup. Pokud vidíte dolar, pak vaše recovery root přístup neobsahuje a nemůžete dále pokračovat.
[editovat] Rozdělení 8GB karty v poměru 7.2GB pro běžná data, 500MB pro App2SD a 32MB swap
V konzoli zadejte následující:
parted /dev/block/mmcblk0 print
Pokud chcete v průběhu rozdělování využít volné místo na kartě v maximální možné míře, všimněte si jednoho z prvních řádků, v němž stojí něco podobného tomuto:
Disk /dev/block/mmcblk0: 8166MB
Kapacitu paměti v MB si zapamatujte a následně při rozdělování hodnoty, uvedené v tomto návodu, patřičně upravte tak, abyste kartu vyplnili skutečně beze zbytku. Jelikož až na výjimky není potřeba swap partition větší než 64MB a ve většině případů dokonce postačí 32MB, musíte samozřejmě při volbě velikosti jednotlivých partition postupovat odzadu a od maxima odečíst postupně požadovanou velikost swap partition a poté velikost ext2 partition, která bude sloužit pro App2SD. U té je mimochodem vcelku jedno, jakou velikost bude mít, ale obvyklé hodnoty se pohybují mezi 256-512MB. Větší asi opravdu nemá valný smysl, byť vám v tom v principu nic ani nikdo nebrání. Ale teď zpět k výpisu partition. Pokud jste kartu předtím na více partition nerozdělovali, vypíše se vám po zadání příkazu print pouze jedna primární partition FAT32. Pokud se vám jich vypíše více, ujistěte se, že je opravdu chcete smazat (a povšimněte si jejich čísel ve sloupečku Number, budete je potřebovat). Ještě jednou se také ujistěte, že máte z karty vše zazálohováno. Odstraňte původní FAT32 partition:
rm 1
Pokud jste na kartě měli partition více a opravdu je chcete odstranit, pokračujte analogicky dál s tím, že zadáte vždy odpovídající číslo partition, kterou chcete smazat. Např.:
rm 2 rm 3
Poté znovu zadejte print a ověřte si, že na kartě už nejsou žádné partiton. Pokud ne, můžete začít s vytvářením nové struktury partition:
mkpartfs primary fat32 0 7200 mkpartfs primary ext2 7200 7700 mkpartfs primary linux-swap 7700 7732
Hodnoty velikosti jednotlivých partition v příkladu výše jsou "bezpečné", tzn. při jejich dodržení vám na 8GB kartě zbyde volné místo, jehož velikost se bude kartu od karty lišit. Pokud jste si na začátku vypočítali vlastní velikosti jednotlivých partiton, zadáváte pochopitelně vlastní. Čísla v jednotlivých příkazech neznamenají nic jiného než to, na kterém "megabajtu" karty daná partition začíná a na kterém končí. Stejně tak si hodnoty upravte v případě, že pracujete s kartou jiné kapacity než 8GB. Tímto jste vytvořili potřebnou strukturu partition jak pro App2SD, tak pro swap. Ověřte si, že máte na kartě tři partition - č.1 je primární FAT32, č.2 je primární ext2 a č.3 je linuxový swap.
Zkontrolujte si také kapacitu jednotlivých partition - pro jistotu.
V tuto chvíli můžeme parted opustit:
quit
Nyní je třeba souborový systém ext2 na druhé partition převést na žurnálovací ext3.
upgrade_fs
Po dokončení běhu tohoto příkazu je karta připravená a můžete se pustit do instalace vaši nové ROM.
[editovat] Chci používat swap, ale nestojím o App2SD!
To je samozřejmě možné také a na telefonech HTC Magic modelu 32A, HTC Hero či Samsung Galaxy dokonce doporučované - tyto modely mají na ukládání aplikací v interní paměti výrazně více místa a proto je ukládání a spouštění aplikací z pomalejší karty spíše brzdí, než aby cokoliv urychlovalo. Nejjednodušší pochopitelně je vytvořit partition pouze dvě, FAT32 a swap:
mkpartfs primary fat32 0 7700 mkpartfs primary linux-swap 7700 7732
Toto řešení má ale jednu nevýhodu - v takřka všech ROM budete muset měnit nastavení swapu, protože autoři ROM předpokládají, že swap se bude na kartě nacházet na třetí partition, nikoliv na druhé, takže ho tam ani nehledají a vše je přednastavené na třetí partition. V takovém případě by vám sice ROM fungovala, ale swap by nefungoval, dokud byste ho ručně nepřenastavili. Existuje ale jistý trik, který je možné využít. Zadejte při vytváření partition postupně následující příkazy:
mkpartfs primary fat32 0 7769 mkpartfs primary ext2 7769 7700 mkpartfs primary linux-swap 7700 7732 rm 2
Není asi příliš těžké uhodnout, co se právě stalo. Vytvořili jste FAT32 partiton o velikosti 7769MB. Poté následovala swap partition o velikosti 1MB, a další swap partition o velikosti 32MB. Druhou swap partition o velikosti 1MB jste následně opět smazali. Tím sice vznikla drobná mezera volného místa, ale protože pořadí partition se aktualizuje pouze při jejich vytváření, nikoliv při jejich mazání, má 32MB swap partiton, která na kartě zbyla, stále pořadové číslo 3. ROM ji tedy najde přesně tam, kde ji bude hledat, a swap se nastaví automaticky a bude fungovat. Dlužno dodat, že krok se smazáním oné pomocné minipartition o velikosti 1MB je víceméně volitelný - pokud ji nesmažete, nic se nestane. Stejně tak ji múžete udělat větší a nechat si tak na kartě vyhrazené místo pro případné budoucí snadné vytvoření ext2 partition pro App2SD bez nutnosti mazat a znovu vytvářet menší FAT32 partition.
[editovat] Swap bez rozdělování karty?
Dalším řešením pro zprovoznění swapu bez současného používání ext3 partition je aplikace Swapper. Ta vyžaduje, abyste měli k telefonu root přístup, ale zato si v ní můžete velice snadno nastavit, kde se vaše swap partition na kartě nachází. Ale nejen to - s aplikací Swapper dokonce ani swap parition vůbec nepotřebujete - je totiž schopna (a je to dokonce výchozí stav) vytvořit si na vaší FAT32 partition vlastní odkládací soubor podobným způsobem, jakým to dělají na stolních počítačích Windows. Velice snadno v něm také můžete ovládat další parametry swapování.
[editovat] Potřebuji vůbec App2SD/swap?
Dobrá otázka. Pokud jste majitelem T-mobile G1 nebo HTC Magic ve verzi 32B, pak se u většiny ROM bez App2SD a swapu patrně neobejdete. Pokud vlastníte HTC Magic ve verzi 32A (tedy černý s logem HTC, který se prodává v českém Vodafone) nebo HTC Hero, pak tato vylepšení spíše nepotřebujete. Prakticky všechny ROM jsou schopny se v případě, že na kartě nenajdou patřičné partition, nastavit tak, aby fungovaly přímo z interní paměti telefonu. Přesto je i na těchto telefonech poměrně dobrý nápad používat swap partition (bez ext3 partition pro App2SD) v případě, že na nich provozujete ROM, která obsahuje prostředí Sense UI (aneb Rosie nebo TouchFlo), tedy prostředí z telefonu HTC Hero. Toto prostředí je na paměť znatelně náročnější než obyčejné prostředí Android OS, velice snadno se stane, že mu i na těchto přístrojích s 288MB RAM dojde paměť a telefon je pak nucen zavírat na pozadí běžící aplikace a paměť uvolňovat, což se projevuje nepříjemným cukáním a zdržováním. Použití např. 32MB swap partition telefonu se Sense UI rozhodně jedině prospěje. Volba je ale jen na vás. Dlužno podotknout, že výše uvedená doporučení ohledně swapu platí spíše pro systémy do verze 1.6. Ve verzích 2.x je už obvykle swap spíše nadbytečný a může spíš škodit než pomáhat.
[editovat] Slyšel jsem o jakési compcache. Prý je lepší/horší než swap.
Obecně, obojí může být pravda. Compcache je v zásadě ramdisk volitelné velikosti, který se používá jako swap partition, ovšem na rozdíl od swap partition se do něj případná data ukládají komprimovaná. Při správném nastavení všech parametrů compcache se její použití vyplatí, protože ačkoliv užírá část paměti, tak jí má v podstatě systém k dispozici díky oné kompresi víc. Současně je compcache pochopitelně znatelně rychlejší než pomalá swap partition na SD kartě. Použití compcache systém samozřejmě mírně zpomaluje, protože dochází k oné kompresi, která pochopitelně nevzniká jen tak sama od sebe. Ale znovu, velice záleží na tom, jak je compcache nastavená. Nastavení compcache je velice netriviální záležitost (ono i správné nastavení obyčejného swapu je docela věda). Compcache navíc může používat tzv. backing swap, což není nic jiného než možnost použít pro "nepotřebná" data v případě nutnosti ještě i swap partition na disku. Opět i tady záleží na správné konfiguraci. Obecně pro všechna tahle swapovací řešení na všech platformách platí jedna základní věc - při správném nastavení mohou výrazně pomoci. Při špatném mohou naopak situaci ještě zhoršit. V případě compcache, která de facto užírá RAM, to platí dvojnásob. Výsledek srovnání žádný swap/klasický swap/compcache může tedy mít s různým nastavením různého vítěze a záleží opravdu na konkrétní konfigurace, které z těchto řešení bude fungovat lépe. Existuje jediná možnost - vyzkoušejte a uvidíte. Mimochodem - compcache nefunguje ve všech ROM, její podpora musí být zahrnuta v kernelu, který ROM používá. Pokud kernel tuto podporu nemá, compcache se vám (na rozdíl od standardního swapu) aktivovat nepovede.

