Witajcie.
Jestem misiek735, od dość niedawna stałem się szczęśliwym posiadaczem n7100. Przesiadłem się z i9300, i zauważyłem że jest tu mały bałagan 😛
Skontaktowałem się więc z użytkownikiem JustArchi, który wyróżnia się niezwykłą wiedzą na temat samego Linuxa jak i Androida, przez co jego rom- ArchiDroid- na chwile obecną uważany jest za jeden z najlepszych wypieków na i9300.
JustArchi stwożył Kompendium Wiedzy na temat Androdia jak i SGS3. Za zgodą Archiego, postanowiłem trochę przerobić to kompendium i wstawić dla nas, aby w końcu skończyły się podstawowe pytania typu : jak wrócić do stocka? jak skasować licznik? itp. itd.
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 Note II 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ć?
Jak już wiemy winny jest kernel, a nie rom czy też sam Android. Dlatego też powinniśmy upewnić się, że:
a) Posiadamy aktualnego najnowszego bootloadera,
b) Posiadamy aktualnego kernela, czyli w przypadku pure-stocków aktualny system (rom). 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 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, 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. Oddaj telefon na gwarancję.
Wykonanie kopii EFS
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.
Kopia /efs jest niezbędna dla każdego, kto chce zacząć zabawę z Androidem. 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 robienia kopii. Opiszę w jaki sposób wykonać kopię /efs na przykładzie Philz Touch Recovery.
-Odpalasz ładne fioletowe recovery, i kolejno wchodzisz w:
-Backup and Restore, Advanced Backup and Restore, Custom Backup Job.
-Odznaczasz wszystko, zostawiasz tylko zaznaczone (x) Backup efs.
-Klikasz na Start Custom Backup Job, wybierasz Backup to internal sdcard (jeśli chcesz aby zapisało się na pamięci wewnętrznej telefonu) lub Backup to External sdcard (jeśli chcesz aby zapisało się na zewnętrznej karcie pamięci).
-Po wykonaniu, możesz w razie czego wykonać jeszcze jedną kopię, poprzez TWRP. Lepiej mieć 2 kopie niż wcale. Różnica jest taka, że po wybraniu opcji Advanced Backup and Restore wybierasz TWRP Backup & Restore, itd.
-resetujesz telefon podłączasz do kompa, i po otworzeniu pamięci wewnętrznej (bądź zewnętrznej, zależy gdzie zapisałeś kopię) znajdujesz foldery o nazwie "clockworkmod" oraz TWRP. Kopiujesz je na kompa, i trzymasz na czarną godzinę. Folder TWRP powinien ważyć ok. 5,1 mb, a folder clockworkmod ok. 25 mb.
UWAGA!
TWRP zapisuje kopię w taki sposób, że pliki są widoczne.
Clockworkmod zapisuje kopię w folderze clockworkmod/backup/.efs_backup - wiesz co oznacza ta kropka przed efs_backup? A no to, że folder jest ukryty (dla androida, każdy folder z nazwą rozpoczynającą się kropką jest ukryty). Zostało tak zrobione, aby nie grzebać w tych folderach i czasami czegoś nie usunąć. Jeśli bardzo Ci zależy na zobaczeniu co tam dokładnie jest (nie wiem po co) to sobie włącz obsługę ukrytych plików w telefonie. Wchodzisz w aplikację moje pliki, menu ustawienia, pokaż ukryte pliki. Od tej pory zobaczysz ten folder w clockworkmod/backup.
Wgrywanie /efs odinem / custom recovery. - Imei 0049, null/null
Proszę zapoznać się z punktami #1 Wstępne przygotowywania oraz #3 Wgrywanie Custom Recovery
Wiele osób ma problemy ze swoim imei = /efs. Opiszę tutaj sposób jak rozwiązać problem z brakiem możliwości dzwonienia.
Jeśli dokonywaliśmy jakichkolwiek modyfikacji które zmieniają modem (update softu, wgrywanie custom romu) i nasze imei to 0049, najprostszym sposobem jest wgranie modemu który mieliśmy przed modyfikacjami. Jeśli z jakiegoś powodu jest to niemożliwe, bądź jeśli nie pamiętamy jaki mieliśmy modem, najlepiej wgrać XXDME4 http://forum.xda-developers.com/attachment.php?attachmentid=2059507&d=1371826644 . Problem z imei powinien ustąpić.
Aczkolwiek jak się nie uda, a imei jest nadal 0049 lub co gorsza null/null, proszę czytać dalej.
UWAGA! Przywracanie modemu w przypadku kiedy mamy imei null/null na 99% nie rozwiąże problemu!
Zapewne zadajecie sobie też pytanie jak przywrócić efs w formacie *.img, *.tar, *.gz, *.md5.
Otóż przywrócenie kopii efs jest możliwe i poprzez recovery i poprzez odin, są tylko małe różnice.
W recovery (na przykładnie Philz Touch recovery) możemy przywrócić kopię w formacie*.tar oraz *.img. Robimy to w sposób następujący:
1. Włączamy recovery (vol +, home, power), puszczamy z chwilą pojawienia napisu Samsung Galaxy Note II N7100
2. Wchodzimy kolejno w Backup and Restore, Advanced Backup and Restore, Custom Restore Job
3. Odznaczamy wszystko co jest zaznaczone
4. Kiedy wszystko odznaczyliśmy, mamy do wyboru Restore efs [.tar] oraz Restore efs [.img]. W zależności ile razy klikniemy, taką będziemy mieli opcję.
5. Jak już wybraliśmy swoje rozszerzenie efs, klikamy
>> Start Custom Restore Job <<
6. Wybieramy (w zależności gdzie mamy kopię) pierwszą opcję (jeśli kopia jest na pamięci wewnętrznej) bądź drugą (jeśli kopia jest na karcie pamięci).
7. Wybieramy plik z odpowiednim formatem, i czekamy.
Jeśli wcześniej wykonaliśmy kopię poprzez TWRP, to przywraca się ją w bardzo podobny sposób co opisałem, z tym że:
W punkcie 2. Wchodzimy kolejno w Backup and Restore, Advanced Backup and Restore, TWRP Backup & Restore, Restore from TWRP format
W punkcie 3. Odznaczamy wszystko co jest zaznaczone
W punkcie 4. Kiedy wszystko odznaczyliśmy, mamy do wyboru Restore efs [.tar]. Nie ma możliwości wybrania .img
Postępujemy od punktu 5 i dalej.
Przywracanie /efs za pomocą odina
Przede wszystkim należy mieć kopię /efs na komputerze.
Odin przywróci nam recovery w formatach *.tar, *.gz, *.md5
1. Włączamy Odina, jako PDA podajemy ścieżkę dostępu do pliku z wyżej wymienionymi kopiami /efs
2. Na telefonie wchodzimy w tryb download (vol-, home, power, zezwalamy vol+). Podłączamy do kompa i klikamy start)
UWAGA!
Próba wgrywania softu 3-plikowego nie uratuje nam imei! Wręcz przeciwnie. Soft 3-plikowy w chwili obecnej posiada stary modem oraz stary bootloader. Jeśli ktoś myśli, że zrobi downgrade bootloadera, wgra 3plikowca z nadzieją powrotu imei to się myli! Można tylko pogorszyć sytuację.
Skoro już doczytałeś do tego momentu to możesz teraz wybrać swoją dalszą przygodę ze swoim Galaxy Note II. 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. 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.
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.
a) Jednorazowo wykonujemy punkt #1 - Wstępne przygotowania Odina.
b) W przypadku chęci używania wyłącznie romów od Samsunga (pure-stock) wykonujemy punkty #0 oraz #4 - Zmiana CSC oraz wgrywanie przez Odina romu w formacie .tar.md5
c) W przypadku chęci używania custom romów (nie od Samsunga) wykonujemy punkty #3 oraz punkt #5 - wgrywamy custom recovery oraz custom rom.
d) 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.
#0 Zmiana CSC
Na początek musimy wiedzieć, że istnieje kilka wersji romów stockowych, które są przeznaczone na naszego SGNII. 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. 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 -> http://forum.xda-developers.com/attachment.php?attachmentid=2151331&d=1375119037 , 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-N7100, po czym klikamy na "Reset Flash Counter", klikamy Continue i czekamy na reboot. Po reboocie klikamy Vol-Up, aby potwierdzić reset.
#1 Wstępne przygotowywania
1. Pobierz Odina: [27.08.2013 LATEST] Odin 3.09, Odin 1.85 | All versions! | Samsung ROM Flashing Tools - xda-developers
Philz Touch Recovery: Dev-Host - The Ultimate Free File Hosting / File Sharing Service
2. [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 Zmiana Bootloadera / Downgrade bootloadera
Oryginlany wątek: http://forum.xda-developers.com/showthread.php?t=2089353
Przedstawiam instrukcję zmiany bootloadera na starszy. Jest to o tyle przydatne, że można użyć romu 3plikowego, który pozwala na pełne wyczyszczenie telefonu ze zbędnych śmieci po starych customowych softach/modach itp.
UWAGA! Wymagany root.
UWAGA! Jeśli masz włączone opcje programisty, odpuść sobie punkt 1.
1. Wchodzimy w telefonie w ustawienia, informacje o urządeniu, i klikamy 10 razy w wersję jądra/w wersję oprogramowania/w numer wersji (zależne od systemu)
2. Wchodzimy w ustawienia, opcje programisty, zaznaczamy Debugowanie USB
3. Pobieramy ten plik: http://forum.xda-developers.com/attachment.php?attachmentid=1628334&stc=1&d=1357675322 Wypakowujemy do folderu, uruchamiamy plik N7100_Restore_OLD_BOOTLOADER, i podłączamy telefon do komputera. Postępujemy według wskazówek programu.
4. Po zakończeniu pobieramy ten plik: http://forum.xda-developers.com/attachment.php?attachmentid=1628335&stc=1&d=1357675322 , i wypakowujemy (poiwinien być plik o nazwie: BOOTLOADER_N7100XXDLJ2_422394_REV00_user_low_ship.tar.md5)
5. Odpalamy odina, dodajemy plik z 4 punktu jako pda, wchodzimy w tryb download i wgrywamy.
6. Sprawdzamy czy bootloader się zmienił za pomocą tego programu: http://forum.xda-developers.com/attachment.php?attachmentid=1628602&stc=1&d=1357682573 (postępujemy podobnie jak w punkcie 3)
#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.
3. Wciśnij przycisk "Start" i odczekaj kilka sekund. Telefon nie zrestartuje się sam tym razem.
4. Odłącz telefon od komputera.
5. Przytrzymaj kombinację "Vol-up + Home + Power" aż do pojawienia się logo Samsung Galaxy Note II(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 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).
Oto przykładowe sposoby rootowania:
https://forum.android.com.pl/topic/248769-root-metoda-exynos-abuse/
Forum po zmianach, link nie działa
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 : 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ć.
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.
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 i instalujemy na naszym telefonie-> xda-developers - View Single Post - [2013.07.29][ROOT] TriangleAway v3.01
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-n7100. 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, a następnie wchodzimy w SuperSU i wybieramy opcję "Kompletny unroot".
14. 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", "None/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 SGNII wyróżniamy rdzenie (od 1 do 4) oraz taktowanie tych rdzeni (od 200 MHz do 1600 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.
Tak jak napisałem na początku: Te informacje zawdzięczamy naszemu koledze JustArchi, z góry w imieniu wszystkich bardzo mu dziękuję 🙂