Cześć. Ja jestem Archi, developer romu ArchiDroid i część z Was może mnie już znać, część nie.
Ten temat powstał z prostego powodu. Po przeczytaniu wszystkich tutoriali w tym dziale doszedłem do wniosku, że każdemu z nich czegoś brakuje lub bazuje on na przestarzałych i niebezpiecznych metodach. Większość userów sobie nawet nie zdaje sprawy z potencjalnego ryzyka podczas używania metod z w/w tutoriali, a winę za ich błędy zrzuca na aktualnie działający rom :facepalm:. Czuję więc potrzebę "naprostowania" tych błędów i zebranie wszystkiego w jedno miejsce.
Dodatkowo chcę mieć jedno miejsce, do którego mogę odsyłać userów z requestami typu "zaktualizuj bootloadera".
Moja skrzynka PW na tym forum nie jest punktem obsługi technicznej. Jeśli masz pytanie do poniższego kompendium ZADAJ JE W TEMACIE, zastrzegam sobie prawo do zignorowania PMek, które zaśmiecają mi skrzynkę i absolutnie nie mam zamiaru na nie odpowiadać.
Słowniczek pojęć, które musisz znać:
adb - Android Debug Bridge, czyli innymi słowy powłoka shell (terminal) umożliwiający komunikację pomiędzy dwoma urządzeniami przy pomocy określonych komend.
Odin - Oryginalnie stworzony przez Samsung'a, zmodyfikowany przez community xda program, który pozwala na flashowanie (wgrywanie) poprzez adb określonych rzeczy na nasz telefon. Wykorzystywany był początkowo przez developerów Samsunga do testowania swoich softów, a w internecie ukazał się wyłącznie dzięki jednemu z przecieków.
Kernel - Główne jądro systemowe, zbiór bardzo wielu funkcji i procedur. "Serce" naszego systemu operacyjnego. Realizuje wszystkie żądania i akcje innych skryptów i programów. Wszystkie zdarzenia są realizowane przez kernel.
Bootloader - kod maszynowy niskiego poziomu. Jest to najważniejsza część każdego urządzenia i pozwala na "włączenie" danego urządzenia i wykonania określonych funkcji, w naszym przypadku - załadowanie kernela. Zawiera swojego własnego minimalistycznego kernela, "mikrojądro", które umożliwia dalsze operacje.
Rom - Kompletne oprogramowanie, "system operacyjny" bazowany w naszym przypadku na Androidzie.
Recovery - Swoista wariacja romu, która umożliwia podstawowe operacje wykonywane w obrębie telefonu. Koncepcją recovery jest umożliwienie użytkownikowi naprawy Romu bezpośrednio z poziomu telefonu. Jest to obraz "read-only memory", czyli statyczny niemodyfikowalny kod, który może zostać załadowany przez Bootloadera.
Jak wygląda włączanie naszego telefonu?
1. Poprzez mechaniczną reakcję na zdarzenia Płyta Główna naszego telefonu odczytuje i wykonuje kod, który jest Bootloader'em i zawiera się na samym początku naszej pamięci wewnętrznej.
2. Bootloader poprzez swoje mikrojądro wykonuje dalszą operację ładowania systemu. Może załadować statyczny obraz systemu (np. recovery), załadować inne jądro systemowe (Kernel'a) lub powłokę adb, czyli popularny "Download mode".
3. Kernel ładuje dalszą część systemu operacyjnego Android.
4. System operacyjny Android odwołując się do kernela ładuje swoje pozostałe komponenty (tryb graficzny, reakcję na eventy itp.)
Teraz powinieneś już mniej więcej wiedzieć w uproszczeniu jak dokładnie działa Twój telefon. Te informacje wbrew pozorom są bardzo istotne.
Sudden Death
Nasz Galaxy S3 cierpi na bardzo nieciekawą przypadłość, nazywaną "Sudden Death". Krąży wiele mitów w związku z tym zjawiskiem, dlatego też mam zamiar to wszystko naprostować i opisać o co w tym chodzi.
Sudden Death to nic innego jak fizyczne uszkodzenie płyty głównej naszego smartfona, a konkretniej to pamięci eMMC. Nazwa "Sudden Death" wzięła się z angielskiego i oznacza "nagła śmierć". Najczęstszy scenariusz SD wygląda tak, że zostawiamy podłączony telefon do ładowania na noc, wstajemy rano, a telefon - cegła. Nie odpowiada, świeci się tylko dioda. Próbujemy go zresetować i ciach, śmierć.
Czy jest to spowodowane ładowaniem?
NIE. Ładowanie telefonu tylko sprzyja zjawisku SD, ponieważ ryzyko SD wzrasta gdy telefon jest w stanie "Awake", czyli nie jest w deep sleepie, tylko jest wybudzony lub działa w trybie "pozornego uśpienia" (np. na skutek nasłuchiwania eventów facebooka). Ładowanie telefonu pozostawia go de facto w stanie Awake na okres ładowania czyli w naszym przypadku kilka godzin, a to sprzyja SD.
Co zawiniło?
Wadliwy chip płyty głównej oraz pośrednio kernel. Zleca on wykonywanie akcji, które są pośrednio niebezpieczne i w efekcie mogą prowadzić do uszkodzenia bloków eMMC i efektu SD.
Jak się obronić?
Samsung wydał aktualnie dwie poprawki na SD, oznaczone odpowiednio V1 oraz V2. Poprawka V1 jest dostępna od buildów XXELLA włącznie. Poprawka V2 jest dostępna od buildów XXEMB2 włącznie. V1 niweluje skutek "uszkadzania" bloków eMMC, natomiast V2 poprawia działanie V1 oraz zawiera workaround (obejście) problemu już uszkodzonych bloków (o wiele mniej rebootów i innych problemów).
Jak już wiemy winny jest kernel, a nie rom czy też sam Android. Dlatego też powinniśmy upewnić się, że:
a) Posiadamy aktualnego bootloadera, w przynajmniej wersji XXELLA.
b) Posiadamy aktualnego kernela, czyli w przypadku pure-stocków aktualny system (rom). W tym momencie dla Polski XEO najnowszy jest XXEMD2, dla niektórych brandowanych romów jest to XXELLA, także wszystko w porządku. Jeśli używasz customowych romów to na 99.9% również jesteś bezpieczny, o ile nie jest to jakaś przestarzała wersja bazująca jeszcze na Androidzie 4.1.1 lub wcześniej. Sam SD nie dotyczy oczywiście romów, tylko kernela, ale w większości przypadków kernel łączy się z romem (chyba, że ktoś używa customowego kernela, wtedy musi się upewnić, że jest aktualne).
c) Posiadamy aktualne recovery (tylko w wypadku używania custom recovery). Aktualnie bezpiecznymi jest najnowszy CWM w wersji 6.0.32 oraz jego pochodne np. PhilZ Touch Recovery.
Punkt a) jest dostępny w punkcie #2 flashowania dostępnym niżej. Punkt c) jest dostępny w punkcie #3, a punkt b) możesz zrealizować poprzez aktualizacje OTA swojego stockowego romu lub wgranie aktualnego custom romu, poprzez punkt #4.
Pomocy, trafiłem do tego tematu z już zbrickowanym telefonem, co robić?
Nic nie zrobisz. Telefon jest cegłą. Jeśli masz telefon na gwarancji to możesz bez problemu oddać go do serwisu, wymienią Ci płytę główną i telefon wróci cały i zdrowy. Z tego co mi wiadomo nie ma możliwości sprawdzić czy korzystałeś z nieoryginalnego oprogramowania (root/kernel/recovery/rom), a więc nawet w takim przypadku nie musisz się obawiać.
Pomocy, mam podejrzenie, że zostałem pośrednio dotknięty przez SD!
Jest taka możliwość. Jeśli masz objawy "dotknięcia" przez SD, czyli najczęściej losowe restarty, zawieszki i inne problemy (występujące na pure-stockowym romie oraz kernelu) to pomóc mogą dwie rzeczy. Przede wszystkim upewnij się, że używasz fixa V2 (Punkty a) b) c) dostępne wyżej) bo on naprawia takie pośrednie uszkodzenia. Jeśli to nie pomoże zainteresuj się Repartycjonowaniem. Jest to ostatnia rzecz, która może pomóc w tym przypadku.
Pomocy, telefon nie wstaje, ale pokazuje się logo. W download modzie PRODUCT NAME jest pusty!
Identyczny scenariusz jak z brickiem. Tutaj również nic nie pomoże, włącznie z repartycjonowaniem. Oddaj telefon na gwarancję.
EFS V2, IMEI null/null 0049XXX
Ten punkcik został dodany w związku z faktem ogromnej ilości uszkodzeń partycji /efs i możliwymi powikłaniami.
Po pierwsze i najważniejsze, jeśli zrobiłeś backup /efs z okresu, kiedy wszystko działało to na 99.99% możesz odetchnąć z ulgą, jako że jest duża szansa naprawy Twojego problemu. Jeśli backupu /efs jeszcze nie zrobiłeś proponuję go zrobić NATYCHMIAST, jako że może Ci kiedyś ocalić życie sgs3, a jeśli już cierpisz na opisany tutaj problem to na backup /efs już za późno.
Po pierwsze mały opis sytuacji. /efs to partycja systemowa zawierająca wszystkie istotne dane telefonu, takie jak IMEI, adres MAC nadajnika bluetooth/wi-fi oraz różne inne informacje, chociażby fakt simlocka.
Samsung zaszczycił nas swoją niedawną aktualizacją, która również została wypuszczona na Polskę. Dzięki temu wyróżniamy dwa "formaty" /efs:
EFS V1, od pierwszego buildu aż do XXEMG4.
EFS V2, od buildu XXEMG4 włącznie wyżej.
Konwersja EFS V1 na EFS V2 następuje w momencie uruchomienia romu XXEMG4 oraz modemu XXEMG4. Jak wiemy /efs to bardzo czuły punkt naszego telefonu i jak widać szansa na uwalenie go podczas konwersji jest dość duża.
Objawy uszkodzenia /efs to IMEI null/null lub IMEI zaczynający się od 0049. Jeśli nasz IMEI jest poprawnie wyświetlany to NIE mamy uszkodzonego /efs i problem musi leżeć gdzieś indziej (a zatem ten poradnik nie pomoże w rozwiązaniu go).
No ale do rzeczy. W tym momencie zakładam, że nie masz ochoty/chęci/możliwości oddania telefonu na gwarancję i chcesz to naprawić sam(a). Jeśli tak nie jest to oddaj telefon na gwarancję bo w żaden "ładny" sposób się tego naprawić nie da. Jeśli natomiast pierw chcesz spróbować naprawić samemu, a dopiero jak się nie uda oddać na gwarancję to zapraszam do czytania dalej.
Pierwszym krokiem jest wgranie custom recovery, czyli wykonanie punktów #1 oraz #3 dostępnych poniżej. Jak już się uporamy z recovery to możemy przejść do próby naprawy.
Po pierwsze, i najważniejsze. /efs może się popsuć na dwa sposoby. Z przechodzenia z EFS V1 na EFS V2 lub z przechodzenie EFS V2 na EFS V1. De facto druga opcja nie jest nawet możliwa, ale o tym wspomnę za chwilę.
Zamieszczam teraz linki do dwóch modemów, które spakowałem.
XXEMB6, EFS V1 -> https://mega.co.nz/#!vVBC1SKI!ciUGMtpuZ_h-eChCgPqjWdb7u30u8VgsAT7fvm2Ir6E
XXEMG4, EFS V2 -> https://mega.co.nz/#!3dIHQbzS!_eKAsXtVqaG5BCpWaPX3SiPrjxyEAHmkvNLmkNEIcZU
Najlepiej pobierz i wrzuć na telefon obydwa.
Teraz tak. Jeśli masz backup swojego /efs z EFS V1 to jesteś w domu, przywracasz ten backup i flashujesz modem XXEMB6. Zadziała na 99.99%. Jeśli backupu nie masz to trzymasz kciuki, że /efs nie uległ całkowitemu zniszczeniu i flashujesz XXEMB6. Flashuje się oczywiście poprzez opcję install zip from internal/external sdcard i wybierając daną opcję. Po krótkiej chwili klikamy na reboot now, żeby zrestartować telefon.
Jeśli się udało i IMEI powrócił robisz teraz obowiązkowo nowego backupa /efs, po czym flashujesz oryginalny rom XXEMG4 od samsunga przez Odina lub moją paczkę XXEMG4 (jeśli paczka znowu popsuje IMEI to wracasz do tego punktu jeszcze raz i tym razem flashujesz pełny rom). Po tym upewniasz się że IMEI i wszystko powróciło na swoje miejsce. Jeśli tak ponownie robisz backup /efs, teraz masz dwa backupy - efs'a v1 oraz efs'a v2. Obydwa trzymaj na czarną godzinę.
Jeśli IMEI nie powrócił to również nic straconego. Wracasz do recovery i tym razem flashujesz paczkę XXEMG4, po czym restartujesz telefon. IMEI powinien być już na swoim miejscu, wiem że przynajmniej 3 osobom w ten sposób pomogłem odzyskać efs (xxemg4 => xxemb6 => xxemg4), więc jest duża szansa, że nawet jak w punkcie wyżej się nie udało to teraz się uda, a i tak xxemb6 musiałbyś sflashować i odpalić, żeby później sflashować xxemg4. Tak więc w tym momencie powinno być już wszystko dobrze, jeśli tak jest nie zapomnij o backupie /efs.
A teraz najważniejsze. O ile z EFS V1 na EFS v2 XXEMG4 umie nam dokonać konwersji to w drugą stronę to tak nie działa. Modemy sprzed XXEMG4 nie umieją czytać EFS V2 i to jest powód dla którego będą wyświetlać IMEI 0049. Owszem nadal można korzystać ze wszystkich romów, ALE jeśli którykolwiek z nich flashuje "na twardo" modem wcześniejszy niż XXEMG4 to musisz flashować moją paczkę za każdym razem po sflashowaniu danego romu. Prawdopodobnie nie będzie to aż tak bolesne już niedługo, jako że wszyscy developerzy się do tego przystosowują, ale na tą chwilę jest jeszcze multum romów, które flashują na twardo modemy sprzed ery XXEMG4, a więc musimy sami zamienić go na xxemg4 po instalacji.
Jeśli powyższe kroki się nie udały tj. w żadnym z tych dwóch wypadków nie udało się przywrócić /efs to ostatnią nadzieją jest sflashowanie XXEMD2 od Samsunga przez odina (oraz pierwsze uruchomienie), a następnie sflashowanie XXEMG4 od Samsunga, również przez odina. Jeśli po takiej pełnej podmiance IMEI się nie pokaże to w tym momencie możliwości nam się kończą. Zastosuj się do punktu #8, aby odzyskać gwarancję, którą utraciliśmy próbując samemu to naprawić i oddaj telefon do serwisu.
Mam nadzieję, że te punkty komuś ocalą kiedyś w przyszłości telefon, jako że ocaliłem już przynajmniej kilka SGS3 w ten sposób, a moja skrzynka PM nie wytrzymuje naporu wiadomości 😉
DZIAŁA! DZIĘKI!!
Od października zaczynam studia w Warszawie także odezwę się i stawiam browar!
Nie wierzę w Twoje umiejętności stary, ogromny szacun za poświęcony czas i przygotowanie tych dwóch paczek, już myślałem że mam po telefonie, ale nagle Archi zbawiciel uratował mi /efs!
🙂
UDAŁO SIĘ!!!
🙂 DZIĘKI WIELKIE, piwo poszło!
Skoro już doczytałeś do tego momentu to możesz teraz wybrać swoją dalszą przygodę ze swoim Galaxy S3. Wybierz teraz swój typ użytkownika:
1) Użytkownik pure-stockowych romów [zachowanie gwarancji]
2) Użytkownik customowych romów [utrata gwarancji]
Zacznę pierw od usera nr. 1.
Jako user pure-stockowych romów nie możesz mieć żadnej części swojego telefonu, która jest uznawana za systemową, a nie została oficjalnie stworzona przez Samsunga. W tym celu jedyne co zalecam zrobić przez Odina to aktualizację roma do pure-stock (#4) oraz ew. zaktualizowanie bootloadera (#2, ale to łączy się z #4). Jakakolwiek inna rzecz (rootowanie, wgrywanie custom recovery, custom kernela, custom roma) skutkuje utratą gwarancji i developerzy Samsunga mogą bez problemu dojść do tego, że telefon był zrootowany czy posiadał custom recovery. Nie należy jednak wpadać w panikę bo prawie zawsze możesz bez problemu wrócić z custom roma na oryginalny rom i przy zachowaniu odpowiednich kroków nie ma możliwości dojść do tego, że działałeś na nieoficjalnym systemie. To znaczy jest możliwość, ale nikt nie ma czasu i pieniędzy, żeby Ci to udowodnić 🙂.
Tak więc jeśli chcesz być pewny, że cokolwiek by się nie stało to masz gwarancję - zaktualizuj system przez kiesa lub sflashuj jedynie pure-stock roma poprzez punkt #4 i pozostań userem nr 1. Jeśli natomiast chcesz kontynuować to w tym momencie przechodzimy do usera nr 2 i sensu istnienia tego poradnika.
Zaczynamy!
UWAGA! Przede wszystkim polecam zgrać wszystkie ważniejsze rzeczy w bezpieczniejsze miejsca. Mam tu na myśli naszą aktualną pamięć wewnętrzną, kontakty na telefonie (nie dotyczy tych na SIM) i inne rzeczy, które być może chcielibyśmy mieć później. Należy to zrobić przede wszystkim dlatego, że większość operacji, które znajdują się poniżej usunie aktualne pliki, ustawienia i aplikacje, co zresztą powinno być dla Ciebie oczywiste. Tak więc zgrywamy wszystko co istotne i przechodzimy dalej.
No to jedziemy.
Drogowskaz
1. Jednorazowo wykonujemy punkt #1 - Wstępne przygotowania Odina.
a) W przypadku chęci używania romów od Samsunga (pure-stock, Odin) wykonujemy punkty #0 oraz #4 - Zmiana CSC oraz wgrywanie przez Odina romu w formacie .tar.md5
b) W przypadku chęci używania Custom Romów (nie od Samsunga, CWM) wykonujemy punkty (#4), #3 oraz punkt #5 - Wgrywamy custom recovery oraz custom rom. Zanim jednak się do tego zabierzemy również mogę polecić wgranie najnowszego romu od Samsunga via Odin (punkt #4, bez niepotrzebnej zmiany CSC), ponieważ flashowanie Odinem aktualizuje nisko-poziomowe komponenty naszego telefonu, w tym bootloadera. Jest to zabieg bezpieczny, a dzięki temu upewniamy się, że "tam niżej" wszystko jest w porządku i gra. W szczególności powinniśmy to zrobić jeśli nasz aktualny rom odstaje dłużej jak pół roku od aktualnej bazy. Świetnym przykładem jest XXELLA, który nadal jest "w obiegu" w przypadku romów brandowanych. Ten build ma już prawie rok na stan w którym pisałem tego posta. Także jeśli nie wiesz czy aktualizacja Odinem jest Ci potrzebna - wykonaj ją 😉.
---
W przypadku chęci oddania telefonu na gwarancję po zabawie z romami wykonujemy punkt #8 - Zerujemy licznik i naszą wszelką aktywność i wracamy do pure-stocka.
UWAGA, PODANE PONIŻEJ PUNKTY SĄ NIEZALEŻNE I NIE POWINNY BYĆ WYKONYWANE JEŚLI NIE ZAJDZIE TAKA POTRZEBA. Trzymaj się powyższego drogowskazu w celu osiągnięcia konkretnego celu i nie wykonuj punktów, które nie są w drogowskazie zapisane.
#0 Zmiana CSC
Na początek musimy wiedzieć, że istnieje kilka wersji romów stockowych, które są przeznaczone na naszego SGS3. Różnią się one przede wszystkim czymś, co nazywa się CSC. CSC to tzw. "Consumer Software Customization" i jest to kod, który precyzuje położenie geograficzne i providera. Dla Polski istnieją zarówno romy brandowane i niebrandowane. Rom niebrandowany pochodzi prosto od Samsunga i ma CSC o kodzie "XEO" - taki właśnie mamy jeśli kupiliśmy telefon bezpośrednio od Samsunga lub w żaden sposób nie "dotknięty" przez naszych polskich providerów, takich jak np. Orange. Poza tym istnieją również romy brandowane, które posiadają inne CSC, np. OXA, ERA czy IDE. Są to romy brandowane, czyli niejako "przygotowane" przez providerów.
Jeśli jesteśmy przekonani, że mamy CSC XEO, czyli brak żadnych aplikacji Orange/T-Mobile/Play, brak oznak takiego brandu na obudowie (logo orange) to nie musimy nic robić i możemy pominąć ten krok. Jeśli natomiast nie jesteśmy pewni lub od razu widzimy, że branda posiadamy to przystępujemy do debrandowania.
Zaczynamy od wgrania i zrootowania naszego pure-stocka. Wykonujemy punkty #1, #4 oraz #6 dostępne poniżej. W punkcie #4 musimy wgrać rom, który ma już wbudowane XEO czyli jakikolwiek XEO dla Polski np. XXEMD2 czy aktualny dziś XXEMG4 (linki w punkcie #8). Następnie pobieramy i instalujemy tą aplikację z Google Store. Odpalamy aplikację, zaznaczamy opcję "Try with ROOT mode" i klikamy Change CSC, po czym akceptujemy żądanie SuperUser. Z listy, która nam się pokaże wybieramy "XEO" i klikamy Install (robimy to nawet w przypadku gdy jest już zaznaczone XEO lub nie jest nic zaznaczone). Telefon się "zawiesi" na kilka sekund po czym zresetuje się automatycznie do recovery, pojawi się zielony android, a za chwilę automatycznie załaduje nam się system z naszym nowym CSC.
UWAGA! Ta operacja czyści cały obszar /data naszego aktualnego systemu oraz może również ruszyć /data/media, czyli naszą pamięć wewnętrzną.
UWAGA! Ta operacja nabija licznik Odina i może również zmienić status urządzenia na custom. Jeśli zamierzamy flashować custom romy to nie musimy się tym przejmować bo i tak będzie wynosił 1, ale jeśli mamy zamiar wskoczyć na tryb gwarancyjny to dodatkowo pobieramy i instalujemy aplikację Triangle Away stąd -> [2014.01.15][ROOT] TriangleAway v3.26 - Post #1 - XDA Forums , odpalamy ją i akceptujemy requesta SuperUser. W przypadku SuperUser'a kousha możliwe jest, że po zaakceptowaniu aplikacja po prostu się wyłączy. W tym celu akceptujemy "na stałe", a potem odpalamy aplikację - będzie już normalnie działać. Następnie upewniamy się, że wszystkie dane w "Current Status" są poprawne, w szczególności model GT-I9300, po czym klikamy na "Reset Flash Counter", klikamy Continue i czekamy na reboot. Po reboocie klikamy Vol-Up, aby potwierdzić reset.
W tym momencie mamy już w pełni poprawne CSC XEO i możemy przejść dalej.
Istnieje również alternatywna metoda, która zawiera w sobie repartycjonowanie i jest opisana Forum po zmianach, link nie działa
.
#1 Wstępne przygotowywania
1. Pobierz mojego Odin Archi Edition oraz rozpakuj gdziekolwiek sobie życzysz wraz z całą zawartością.
2.
[Windows edycje N] Upewnij się, że posiadasz brakujące kodeki - "media feature pack". Przykładowy link dla Windowsa 8.1 N jest tutaj .
[Windows 7+] Podłącz swój telefon poprzez kabel USB do komputera (jeśli nie robiłeś tego wcześniej) i po instalacji sterowników zrestartuj swój komputer. To dość istotne. Teraz jesteś już gotowy do dalszego działania. Odłącz komórkę od komputera.
[Windows XP] Ściągnij dodatkowo sterowniki stąd -> [Driver][03.04.2013]SAMSUNG ♣USB Drivers♣ for Mobile Phones -LATEST VERSION- - xda-developers
3. Wyłącz swój telefon (jeśli był włączony) i poczekaj na wibrację oznaczającą gotowość.
4. Przytrzymaj kombinację Vol-Down+Home+Power, aby wejść w tryb download, a następnie zaakceptuj wejście poprzez Vol-Up. Powinieneś ujrzeć napis "Downloading, do not turn off the target!"
5. Kliknij na Odina prawym przyciskiem myszy i wybierz "Uruchom jako administrator" (Windows Vista i nowsze).
6. Podłącz swój telefon (w trybie download mode) do komputera.
#2 Aktualizacja Bootloadera
-> ODIN (Punkt #1) <-
1. Kliknij przycisk "Bootloader" w Odinie oraz wybierz odpowiedniego bootloader'a ze swojego dysku. Powinieneś uzyskać podobny wynik jak na poniższym obrazku:
2. Wciśnij przycisk "Start" i odczekaj kilka sekund. Telefon powinien automatycznie się zrestartować z już zaktualizowanym bootloaderem, a w Odinie powinieneś zobaczyć:
I po chwili:
3. Odłącz telefon od komputera.
Gratulacje, właśnie używasz najnowszego bootloadera.
#3 Wgrywanie Custom Recovery
-> ODIN (Punkt #1) <-
Uwaga! Istnieje możliwość nadpisania recovery poprzez pure-stock. Lekarstwem na to jest pozostanie w recovery i brak odpalania pure-stock romu. Custom romy nie dotykają recovery, toteż jest to sytuacja jednorazowa. Jeśli masz zamiar sflashować custom roma to pierw wrzuć na telefon tego roma w postaci pliku .zip, a następnie sflashuj custom recovery i bez odpalania swojego aktualnego roma wykonaj resztę podpunktów.
1. Kliknij przycisk "PDA" w Odinie oraz wybierz odpowiednie recovery ze swojego dysku.
2. Odznacz opcję "Auto Reboot" w Odinie. Powinieneś uzyskać podobny wynik jak ja na poniższym obrazku:
3. Wciśnij przycisk "Start" i odczekaj kilka sekund. Telefon nie zrestartuje się sam tym razem. Po chwili w Odinie powinieneś zobaczyć:
4. Odłącz telefon od komputera.
5. Przytrzymaj kombinację "Vol-up + Home + Power" aż do pojawienia się logo Samsung Galaxy S3 (około 8 sekund)
6. Telefon powinien się w tym momencie automatycznie zrebootować do naszego nowego recovery. Powinieneś być w stanie zobaczyć oznaczenie "PhilZ Touch" i "CWM Base". Wybierz opcję "Power Off", aby wyłączyć urządzenie. Jeśli recovery spyta się o Disable Stock Recovery - wybierz "Yes". Jeśli recovery spyta się o jakiekolwiek inne opcje (w tym root device) wybierz "No".
#4 Flashowanie dowolnego romu w postaci .tar.md5 (Odin / Samsung)
-> ODIN (Punkt #1) <-
Aby sflashować dowolny rom w postaci pliku .tar.md5 przez Odina wykonujemy punkty 1-8 z punktu #8, który jest dostępny poniżej.
#5 Flashowanie dowolnego romu w postaci pliku .zip (CWM / Custom)
-> RECOVERY (Punkt #3) <-
1. Ściągnij i umieść dowolny rom w postaci .zip (np. Forum po zmianach, link nie działa ) na swoim telefonie - najlepiej na swojej zewnętrznej karcie, ale jeśli takowej nie posiadasz to na wewnętrznej pamięci swojego telefonu.
2. Wyłącz swój telefon.
3. Wejdź w recovery kombinacją Vol-Up+Home+Power.
4. [ZEWNĘTRZNA KARTA] Jeśli masz swój rom na zewnętrznej karcie to upewnij się, że recovery jest w stanie się do niego dostać. Wybierz opcję "Install Zip" => "Choose zip from External sdcard" i sprawdź czy pokazuje się lista plików i nasz plik .zip (nie wybieraj go). Jeśli wszystko jest ok wybierz "Go Back", aż wrócisz do ekranu głównego.
5. Wybierz "Wipe Data/Factory Reset => "Clean to Install a New ROM". Od tego momentu stracisz swój aktualny system i nie będziesz mógł go załadować. Upewnij się więc, że masz dostatecznie naładowaną baterię i jesteś mentalnie gotowy na instalację 🙂.
6. [ZEWNĘTRZNA KARTA] Jeśli masz swój rom na zewnętrznej karcie to wybierz dodatkowo "Mounts and Storage" => "format /data and /data/media (/sdcard)". UWAGA! to czyści całą zawartość naszej wewnętrznej pamięci (obszar /data/media) na której także są nasze backupy internal. Nie wybieraj tej opcji jeśli chcesz zachować dane z tego obszaru. Czyszczenie potrwa mniej więcej 30 sekund.
7. Wybierz opcję "Install Zip", następnie "Choose zip from (External) sdcard", wybierz swój rom i postępuj dalej zgodnie ze wskazówkami instalatora "AROMA". Po skończonym flashowaniu wybierz opcję "Reboot System Now", aby załadować nowy rom. Pierwszy boot może zająć ok. 5 minut.
--- DODATKI ---
Poniżej opisane kroki NIE SĄ potrzebne do korzystania z custom romów. Nie wykonuj ich, jeśli nie musisz.
#6 Rootowanie
-> ODIN (Punkt #1) <-
Słowem wstępu - Rootowanie powinno się wykonywać wyłącznie na niezrootowanych romach, czyli pure stockach. Większość custom romów jest już zrootowana, a zatem ten krok nie jest wymagany (i nie jest wskazany).
1. Pobieramy Autoroot dla I9300 od Chainfire stąd -> xda-developers - View Single Post - [GT-I930x/T/N][sHV-E210*][sHW-M440S] CF-Auto-Root
2. Wyodrębniany z paczki plik .tar.md5 (Odin nas nie interesuje) i umieszczamy go na miejscu PDA w naszym Odinie.
3. Klikamy start i po krótkiej chwili mamy już zrootowany rom.
Ta metoda NIE modyfikuje w żaden sposób recovery!
#7 Backup
-> RECOVERY (Punkt #3) <-
Słowem wstępu - Backup jest bardzo ważny i polecam się nim zainteresować przed jakąkolwiek dalszą czynnością związaną z recovery.
1. Wejdź w recovery kombinacją Vol-Up+Home+Power.
2. Wybierz opcję "Backup & Restore" => "Custom Backup & Restore" => "Misc Nandroid Settings"
3. Zmień "Compression" na "max" jeśli sobie życzysz. Dzięki temu backup zajmuje o wiele mniej miejsca, a recovery kompresuje/dekompresuje pliki w locie.
4. Zmień "ORS Backup Target" na "/sdcard" jeśli nie posiadasz przynajmniej 2 GB wolnego miejsca na swojej zewnętrznej karcie (lub nie posiadasz jej w ogóle)
5. Cofnij się o jeden ekran do góry "Go Back" i wybierz "Custom Backup Job"
6. Odznacz wszystkie zaznaczone opcje (x) i zaznacz "Backup efs" poprzez (x)
7. Kliknij "Start Custom Backup Job", a następnie wybierz miejsce (Internal/External). Backup /efs będzie umieszczony w /(external_)sdcard/clockworkmod/custom_backup/.efs_backup. Jest on ukryty i wymaga root explorera, aby skopiować go np. na komputer. To akurat nie jest zbytnio ważne - najważniejsze że jest. Root explorerem zajmiemy się po flashu nowego roma.
8. Teraz odznacz (x) z opcji "Backup efs" oraz zaznacz (x) we wszystkich innych opcjach prócz "Reboot" oraz rozpocznij backup przyciskiem "Start Custom Backup Job". W zależności od kompresji i szybkości I/O pamięci backup może zając od mniej więcej 5 do 15 minut.
9. Backupy możesz później zgrać na komputer, a w recovery bez problemu je później przywrócić (jeśli oczywiście byłaby taka potrzeba)
#8 Powrót do Pure-Stock / Zerowanie Licznika / Przywracanie Gwarancji
-> ODIN <-
Słowem wstępu - Pewnego dnia może się zdarzyć sytuacja gdy chcielibyśmy wrócić do oryginalnego softu od Samsunga np. w przypadku oddawania telefonu na gwarancję lub sprzedaży czy oddania. Taka sytuacja powinna być w zasadzie jednorazowa i oczywiście można ją powtarzać ile razy się chce, ale generalnie nie wykonuj jej, jeśli nie masz ku temu wyraźnego powodu, bo po prostu nie ma sensu 🙂.
1. Wchodzimy do recovery standardowo poprzez wyłączenie telefonu i kombinację Vol-Up + Home + Power.
2. Wybieramy "Wipe Data/Factory Reset => "Wipe Data/Factory Reset". Ta opcja usuwa katalog /data i działa identycznie jak opcja format /data, ale pozostawia /data/media. Jeśli chcielibyśmy od razu również usunąć nasze "prywatne" rzeczy z /data/media to możemy wybrać zamiast tego "Mounts and Storage" => "format /data and /data/media (/sdcard)". Jeśli mamy stockowe recovery to również nie jest to problemem, ponieważ taka opcja się tam znajduje (Wipe Data/Factory Reset).
3. Wybieramy opcję "Advanced => Reboot Bootloader" lub "Reboot to Download Mode", jeśli mamy stockowe recovery oraz podłączamy telefon do komputera.
4. Wchodzimy na oficjalną stronę SamMobile -> Firmwares | SamMobile
Ja w tym wypadku od razu wybrałem Wam wariant XEO. XEO oznacza telefon niebrandowany, czyli pochodzący fabrycznie od Samsunga, a nie konkretnego providera. Jeśli mieliśmy telefon brandowany to możemy zmienić ostatnią kategorię na Poland - Orange/Plus/Play/T-Mobile. Jest to w zasadzie tylko zabieg kosmetyczny, żeby przypadkiem nikt się do tego nie doczepił bo w zasadzie każdy oficjalny Rom od Samsunga powinien być honorowany. Pobieramy daną wersję, która nas satysfakcjonuje (ostatnia Poland - XEO lub brandowana), w tym celu musimy się zarejestrować. Jeśli ktoś chce zaoszczędzić chwilę to wrzucam bezpośredni link do XXEMD2 XEO dla Polski -> Hotfile.com: Hébergement de fichiers par un clic: I9300XXEMD2_I9300OXXEMD1_XEO.zip , w przypadku brandowanych romów lub innej wersji xeo należy się zarejestrować i ściągnąć.
5. Po pobraniu danego pliku rozpakowujemy go i wyodrębniamy interesujący nas plik .tar.md5
6. Kliknij przycisk "PDA" w Odinie oraz wybierz właściwy plik .tar.md5 z wyodrębnionego archiwum .zip. Powinieneś uzyskać podobny wynik jak ja na poniższym obrazku:
7. Kliknij przycisk "Start" i cierpliwie poczekaj. Telefon po flashu powinien automatycznie się zrestartować i załadować nasz nowy rom.
8. Odłącz telefon od komputera.
9. Rootujemy naszego pure-stock'a (Punkt #6)
10. Ściągamy najnowszy Triangle Away stąd -> xda-developers - View Single Post - [2013.03.21][ROOT] TriangleAway v2.90 i instalujemy na naszym telefonie.
11. Odpalamy w/w Triangle Away i akceptujemy requesta SuperUser. W przypadku SuperUser'a kousha możliwe jest, że po zaakceptowaniu aplikacja po prostu się wyłączy. W tym celu akceptujemy "na stałe", a potem odpalamy aplikację - będzie już normalnie działać.
12. Upewniamy się, że wszystkie dane w "Current Status" są poprawne, w szczególności model GT-I9300. Następnie klikamy na "Reset Flash Counter", klikamy Continue i czekamy na reboot. Po reboocie klikamy Vol-Up, aby potwierdzić reset.
13. Usuwamy Triangle Away poprzez menadżer aplikacji, jako że nie będzie nam już potrzebny.
14. Zmieniamy CSC na XEO poprzez punkt #0 - ściągając samą aplikację, jako że rom i roota już mamy.
15. Odpalamy SuperSU i wybieramy opcję "Kompletny unroot".
Finalnie przechodzimy jeszcze raz do Download Mode poprzez wyłączenie telefonu i kombinację Vol-Down + Home + Power & Vol-Up. Upewnimy się teraz, że wszystko jest na swoim miejscu.
Interesującym nas napisem jest "CUSTOM BINARY DOWNLOAD", "CURRENT BINARY" oraz "SYSTEM STATUS". Powinniśmy uzyskać odpowiednio "No", "Official" "Official". Jeśli wszystko się zgadza upewniamy się, że nigdzie nie ma śmieci (np. .apk Triangle Away w naszej pamięci wewnętrznej) i oddajemy telefonik na gwarancję, a jeśli nie to czytamy dalej 😉.
-----
Generalnie wszystkie powyższe punkty powinny bez problemu zadziałać dla przynajmniej większości userów, ale Stocki czasem umieją płatać figle i mogą nam zmienić system status czy current binary na Custom w związku tymczasowym rootem. O to się nie trzeba martwić, ale należy się upewnić, że przynajmniej Custom Binary Download jest "No (0 counts)". To jest bardzo istotne. Jeśli tak jest to wystarczy, że jeszcze raz sflashujemy pure-stocka, czyli wykonamy punkty 1-7. Posiadamy co prawda stock recovery, ale factory reset działa w identyczny sposób. Po tym w Download Mode powinny się już bez żadnego zająknięcia pojawić właściwe wartości. Jeśli jakimś cudem tak się nie stanie to pojawią się po kilkunastu godzinach i/lub resetach.
W ten sposób pozbyliśmy się jakiejkolwiek własnej aktywności w związku z oprogramowaniem i odzyskaliśmy gwarancję 😉.
------
Kompendium Wiedzy
Governory CPU
Governor CPU to nic innego jak "Planista", czyli "zarządca". Jest on potrzebny w celu odpowiedniego podziału zasobów i pełni rolę takiego "supervisora", który dokładnie określa każdy proces i jego przydział zasobów.
Czemu jest więc aż taki ważny?
Dla każdego momentu działania systemu M potrzebna jest jakaś minimalna wydajność X, która spełnia wymogi optymalnego działania systemu (bez ubytku wydajności).
Za duża wydajność - Większe zużycie baterii.
Za duża oszczędność baterii - Niewystarczająca moc do optymalnego działania (lagi, zawieszki)
Za długi czas dostrajania - Strata na wydajności lub oszczędności baterii (zależy czy zaczynamy od wydajności mniejszej czy większej niż wymagana).
Założeniem każdego governora jest zbalansowanie potrzebnej w danej chwili wydajności X, tak żeby osiągnąć jak najlepszą oszczędność baterii Y, w jak najkrótszym czasie dostrajania Z.
Przypominam, że w SGS3 wyróżniamy rdzenie (od 1 do 4) oraz taktowanie tych rdzeni (od 200 MHz do 1400 MHz, bez OC). Każdy aktywny rdzeń pożera energię oraz wyższe taktowania pożerają więcej energii (bo rdzeń otrzymuje większe napięcie => pracuje wydajniej => pożera więcej baterii).
Poniższe opisy oraz wartości są moją subiektywną opinią i mogą nie odpowiadać rzeczywistym wartościom.
Więcej - Lepiej
1. PegasusQ
Początkowo bazowany na governorze "ondemand", obecnie jeden z najbardziej sprawiedliwych i zbalansowanych governorów. Domyślny dla stocków i większości CM. Dostraja frequency oraz liczbę rdzeni startując z MIN aż do MAX. Kieruje się zasadą min frequency max cores (jak najwięcej aktywnych rdzeni z jak najmniejszym taktowaniem). Swoje algorytmy opiera o aktualne obciążenie systemu "workspace", czyli cpu load. Niestety z racji jego charakterystyki zajmuje mu trochę czasu zanim się "dostroi" do potrzebnego frequency, a zatem wydajność jest dość niska na samym początku.
Wydajność - 2 | Zużycie Baterii - 3 | Szybkość Dostrajania - 1
2. Hotplug
Alternatywa dla PegasusQ. Działa na bardzo podobnej zasadzie, z tą różnicą że kieruje się max frequency low cores, podczas gdy pegasusq min frequency max cores. Tutaj zdania są podzielone, jedni sądzą że hotplug działa wydajniej, inni wręcz na odwrót.
Wydajność - 2,5 | Zużycie Baterii - 2,5 | Szybkość Dostrajania - 1
3. LulzactiveQ
Zainspirowany governorem "interactive" oraz "smartass". Podobnie jak PegasusQ działa na zasadzie dostrajania i balansowania, ale można rzec, że zaczyna od MAX do MIN, a nie na odwrót jak w przypadku pegasusq. Jest to dość istotne, ponieważ w porównaniu do pegasusq nie mamy tutaj żadnych ubytków wydajności, podczas gdy pegasusq musi się "dostroić". Lulzactive pomimo polityki MAX do MIN nadal zachowuje bardzo ładny wynik baterii.
Wydajność - 4 | Zużycie Baterii - 1,5 | Szybkość Dostrajania - 1,5
4. SmartAss V2
SmartAss to governor, który stara się "spojrzeć w przyszłość" i nie zaczyna ani od MIN, ani od MAX'a. Rozpoczyna dostrajanie od "środka", a ten środek jest definiowany przez bardzo zaawansowane algorytmy, które określają gdzie ten "środek" mniej więcej się znajduje. governor bardzo lubiany przez dużą część userów. Bardzo dobra alternatywa dla zbalansowania zarówno wydajności, jak i baterii.
Wydajność - 2,5 | Zużycie Baterii - 2,5 | Szybkość Dostrajania - 2
5. Performance
Idea performance jest prosta. Ustawiamy maksymalne frequency i włączamy wszystkie możliwe core'y. Może to zabrzmieć trochę idiotycznie, ale niektórzy developerzy dowiedli tezy, która twierdzi, że procesor traci zbyt dużo czasu i energii na dostrajanie i próby balansowania, a w efekcie osiągamy wyłącznie gorsze wyniki. Osobiście się z tą tezą nie zgadzam i sądzę, że lulzactive oraz smartass pod tym względem działają znacznie lepiej.
Wydajność - 5 | Zużycie Baterii - 0 | Szybkość Dostrajania - 5
6. Powersave
governor zupełnie odwrotny do performance. Lockujemy procesory na minimalnej wartości zdefiniowanej przez usera. Na dzień dzisiejszy jeden z najmniej użytecznych governorów
Wydajność - 1 | Zużycie Baterii - 4 | Szybkośc Dostrajania - 5
7. Userspace
Kolejny przykład najmniej użytecznego i niezoptymalizowanego governora. Pozwalamy aplikacji definiować moc procesora, którą potrzebuje. W efekcie zawsze dostajemy nieoptymalne rozwiązanie, ponieważ frequency zarządza aplikacja, a nie system.
Wydajność - 2 | Zużycie Baterii - 1 | Szybkośc Dostrajania - 5
8. ZZmoove
ZZmoove to innowacyjny governor w fazie aktywnego developmentu, bazujący początkowo na starym dobrym smoove. ZZmoove zakłada, że najlepszą wydajność oraz zużycie baterii osiągamy w przypadku jak najszybszego zakończenia działania aplikacji. W efekcie jest to bardzo szybko skalowalny governor, który w przypadku obciążenia przechodzi bardzo szybko na kolejne frequency, aż do skończenia działania aplikacji lub aktywnego używania procesora, wtedy z powrotem wraca do poprzedniego frequency uznanego za stosowne dla tzw. "Idle". To jest bardzo ciekawe, ponieważ wbrew pozorom obecnie CPU jest używany cały czas z obciążeniem X, który ZaneZam nazywa "Idle", oraz obciążeniem Y, który generujemy wskutek konkretnych czynności (np. odpalania aplikacji). Dodatkowo niweluje on ubytek wydajności w związku z dostrajaniem, ponieważ bardzo szybko wskakuje na max i min, bez potrzeby wolnego przechodzenia przez wszystkie frequency. Wbrew pozorom również nie działamy na max frequency jak w przypadku lulzactiveq, ponieważ zzmoove wykrywa moment, w którym "więcej jako procesor już nie przyspieszy" i w efekcie zatrzymuje się na aktualnym frequency aż do następnej czynności i zgodnie z nią zwiększa swoje frequency lub odpowiednio je zmniejsza.
Wydajność - 3 | Zużycie Baterii - 3 | Szybkość Dostrajania - 4
Pytanie dnia brzmi "Który najlepszy?"
Odpowiedź brzmi podobnie jak w przypadku romów. To zależy. Każda osoba jest inaczej wyczulona na działanie systemu i jednej całkowicie nie przeszkadza "rozgrzewanie si ę" takiego pegasusq, z kolei innej krew się gotuje jak to widzi.
Co ja polecam? Ja polecam ZZmoove na profilu Optimized lub PowerSave. Drugi w kolejce prawdopodobnie będzie Smartass V2, a trzeci PegasusQ. Czemu? W większości przypadków zużycie procesora wynosi 200 Mhz, podczas używania dotyku i podstawowych funkcji wzrasta do 800 Mhz (TouchBoost), a czasem nawet i więcej. Liczy się wiec albo bardzo szybko skalowalny governor, albo taki który zaczyna od maxa lub gdzieś wysoko. W efekcie końcowym szybka skalowalność to większa wydajność oraz dodatkowa oszczędność baterii podczas takiego "dostrajania", a więc zarówno ZZmoove będzie tutaj bardzo dobry z jego polityką "as fast as possible" lub Smartass V2, który rozpoczyna próbkowanie od całkiem przyzwoitej wartości. Czemu więc znalazł się tu PegasusQ? Powód jest jeden - bardzo dobry balans wydajności z zużyciem baterii.
Obecnie wygląda to mniej więcej tak jak pokazują to liczby. ZZmoove ma najlepszy stosunek wydajność/bateria i trzyma baterię tak dobrze (albo i nawet lepiej) niż PegasusQ. Z kolei Smartass poświęca część baterii na osiągnięcie podobnej wydajności co ZZmoove. Reszta governorów nie jest "zła" bo chociażby LulzactiveQ też spełnia się bardzo dobrze, ale po prostu nie jest optymalna. Ja staram się tutaj przedstawić rozwiązanie najbardziej zoptymalizowane, a wiadomo że tak jak już napisałem wcześniej każdy user ma własnie widzimisię.
Governory I/O
Podobnie jak w przypadku CPU mamy governory również I/O. I/O to skrót od Input/Output i określa w tym wypadku governora zarządzającego zapisem oraz odczytem danych z pamięci. Jak dobrze wiemy dysk czy generalnie jakaś pamięć może wykonywać tylko jedną operację READ lub WRITE w danym momencie M, a zatem trzeba odpowiednio zarządzać "kolejką", tak żeby uzyskać optymalne rozwiązanie.
1. Noop
Noop to typowy bardzo prosty governor typu FCFS - "First Come First Served". Oznacza to realizację zadań zgodnie z ich czasem pojawienia się. Bardzo prosty i oszczędny governor, lecz niezbyt dobrze zoptymalizowany.
2 Deadline
Jak sama nazwa wskazuje governor ten realizuje requesty zgodnie z ich deadlinem, czyli maksymalnym czasem oczekiwania. Mamy I/O requesty ważniejsze (odczyt stanu systemu z danego momentu) oraz mniej ważne (np. synchronizację danych z chmurą google). W FCFS (czy Noop jak kto woli) oba te requesty byłyby zrealizowane w kolejności ich pojawienia się. W deadlinie natomiast wyróżniamy requesty ważniejsze i mniej ważne, które dodatkowo kontroluje deadline - request synchronizacji google'a w końcu się doprosi o swoją kolej, ale będzie musiał zaczekać aż wszystkie requesty z krótszym deadlinem zakończą działanie.
3. ROW
Row to skrót od "Read Over Write" i działa dokładnie tak jak sugeruje jego nazwa. Requesty READ są traktowane jako o wiele ważniejsze od requestów WRITE i system w pierwszej kolejności będzie się starał zrealizować wszystkie requesty READ, a dopiero na samym końcu requesty WRITE. Nazywany również "Write only when it's time for that", czyli "zapisuj tylko wtedy, kiedy będzie na to czas" - co oznacza brak read requestów. Oczywiście są odchylenia od tej zasady, głównie w przypadku bardzo dużej kolejki. Wtedy system stara się zrealizować "zagłodzone" requesty WRITE, a następnie wrócić do realizacji READ.
4. CFQ
CFQ to skrót od "Completely Fair Queuing", co w w wolnym tłumaczeniu brzmi "bardzo sprawiedliwa kolejka". Domyślny governor dla stocków oraz niektórych CM'ów. Traktuje requesty Read oraz Write jednakowo. Różnica między Noop, a CFQ jest taka, że Noop przekazuje requesty od razu do kontrolera i wnioskuje, że ten sobie je zrealizuje we własnej konwencji, podczas gdy CFQ balansuje requesty i wysyła je "częściami".
5. SIO
SIO to skrót od "Simple I/O (Scheduler)" i generalnie jest to połączenie schedulera Noop z Deadline'm. Nadal realizuje requesty "od razu" podobnie jak noop, ale z pewnym MINIMALNYM odchyleniem priorytetowym, bez sortowania requestów.
6. BFQ
BFQ to pewna wariacja CFQ. CFQ zakładał sprawiedliwy podział według requestów. BFQ zakłada sprawiedliwy podział według ilości danych, które się requestuje. Oznacza to, że duża liczba małych requestów będzie traktowana tak samo sprawiedliwie jak mała liczba dużych requestów. Wbrew pozorom działa to bardzo sprawnie z tego powodu, że małe requesty nie musza czekać na swoją kolej, a szybko "wyprzedzić" te większe.
7. ZEN
ZEN to scheduler bardzo podobny do SIO, ale z jeszcze większym naciskiem na noop. Nadal używa deadlinea to określenia sprawiedliwości, ale nie wykonuje żadnego sortowania. Różnica zasadnicza jest taka, że traktuje requesty synchroniczne z większym priorytetem niż requesty asynchroniczne, podczas gdy w SIO/Noop/Deadline jest to na tym samym poziomie.
8. FIOPS
FIOPS to governor I/O stworzony z myślą o pamięciach flash oraz dyskach SSD. Działa na bardzo podobnej zasadzie co CFQ, ale jest nieco bardziej zoptymalizowany pod tym kątem.
No i ponownie nadciąga pytanie dnia. "Który I/O scheduler najlepszy?". Tutaj już wygląda to trochę lepiej niż w przypadku CPU bo można jasno określić pewne zasady. Bazujemy na urządzeniach mobilnych - liczy się dla nas przede wszystkim wydajność, a nie synchronizacja pomiędzy R/W. M.in dlatego też osobiście uważam ROW lub FIOPS za najlepszy scheduler dla androida. FIOPS sprawdza się świetnie na urządzeniach mobilnych opartych o technologię flash, podczas gdy ROW pomimo "zwyczajnej" implementacji nadrabia wydajność priorytetem READ. Dobrym wyborem jest również SIO z powodu prostoty i szybkości serwowania requestów wciąż zachowując pewne wytyczne.
Jak czytać wersje romów od Samsunga?
Stockowe buildy Samsunga składają się z 6 lub 7 znaków. Za przykład na dziś weźmiemy sobię XXUGNA5.
XXUGNA5
Zawsze najbardziej istotne dla nas są 3 ostatnie znaki, oznaczone powyżej na czerwono.
Pierwsze 2 znaki określają region na który został wydany release. Największa część buildów będzie posiadała "XX" - Region Europa. Jest również dla przykładu XW - Indie / Azja, oraz ZS - Chiny.
Romy z innego regionu mogą się różnić zestawem CSC, wstępnie instalowanych aplikacji czy funkcjonalności specyficznej dla danego regionu, jednakże flashowanie ich na nasze SGS3 niczym się nie różni od flashowania romów z serii XX. Tak więc to nie jest tak, że chiński release "nie działa" bo jest z chin, działa wszystko przeznaczone na SGS3.
Kolejne 2 znaki, czasem 1 określa numer wersji Androida. Jest on przyznawany przez Samsunga i "bumpowany" co wersję - dla przykładu obecny Android 4.3 ma UG, poprzedni (przeciek) Androida 4.2.2 miał UF, poprzedni (Android 4.1.2) miał tylko jeden znak - E. Tak więc można przypuszczać, że wydany Kitkat będzie miał znak UH lub H.
I teraz dochodzimy do najważniejszego punktu układanki, 3 ostatnich znaków. Oznaczają one kolejno Rok wydania, miesiąc wydania oraz numer wersji.
Dla roku 2014, mamy literkę N. Dla roku 2013 mieliśmy literkę M, dla 2012 L. O ile jakimś cudem wsparcie Samsunga dojdzie do roku 2015, powinna to być literka O
Następnie mamy miesiąc.
Tu jest tak nieco mniej ciekawie, ponieważ nie ma konkretnego porządku poza tym, że A to styczeń, a K lub L to grudzień. Niektóre buildy są "podczepiane" pod ten sam miesiąc, z jakiegoś dziwnego powodu Samsung nie używa literki I 😉.
Finalnie dochodzimy do numeru wersji z danego miesiąca. Pierwsza wersja to 1, ostatnia Z. Najczęściej numer wersji mieści się w zakresie 1-9, ale nie zawsze, jak to było z XXELLA chociażby.
Idąc tym tokiem myślenia, XXELLA to release przeznaczony na europę, wyposażony w androida 4.1(.2), z roku 2012, miesiąca grudzień w wersji 10.
Tak więc XXUGML2 od XXUGMK6 różni się tym, że XXUGML2 to release drugi z kolejnego miesiąca, a zatem jest nowszy.
Od tej pory już chyba każdy wie jak odczytywać release'y i z czym to się je 😉.
Finalnie pragnę zauważyć, że XXUGMK6 dla Niemiec od XXUGMK6 dla Anglii nie różni się absolutnie niczym pod kwestii samego systemu, jedyna różnica to inne CSC, czyli bloatware i wstępnie preinstalowane aplikacje. Należy również nie sugerować się listą romów wrzucanych na sam mobile, ponieważ na samej górze jest najnowszy zuploadowany ROM, co nie znaczy jednocześnie że jest to najnowsza skompilowana baza. Jedyne co nas interesuje to numer PDA wersji, który rozpisałem powyżej, a wraz z nim numer Changelist, który tyczy się bezpośrednio numeru PDA.