[Galaxy S 4 General] xXConcasXx:
[GUIDE]UPSM & Emergency Mode for Samsung Galaxy S4 LL 5.0.1 (GT-I9505 & GT-I9515)

ITALIANO:

GUIDA PASSO A PASSO PER NEOFITI PER STOCK ROM E CUSTOM ROM LOLLIPOP 5.0.1

ENGLISH GUIDE COMING SOON!!!

Requisiti:

- Root del dispositivo

- Framework (services.jar) Deodexed o FULL ROM Deodexed

Link per gli allegati: https://mega.nz/#!7dtlnB7R!tXQQqwFusnPv9BzEyGl6-IyAuRiRTsME--uaxFZwGF8

Procedura:

1. Eseguite il De-odex del Framework (solo se non lo avete già fatto in precedenza), personalmente consiglio di utilizzare JoelDroid Tool :D

-- Come eseguire il Deodex del Framework --

1a. Andate su Impostazioni

1b. Attivate la Modalità sviluppatore

- Per attivare la Modalità sviluppatore andate su Info su dispositivo e premete 5 volte di seguito sulla voce Versione build -

1c. Tornate indietro e cercate la voce Modalità sviluppatore, (È sopra Info sul dispositivo) una volta trovata selezionatela e

1d. Attivate il Debug USB (da questa fase in poi consiglio di tenere il Display del cellulare sempre acceso.. personalmente vi consiglio di attivare la voce Resta attivo, permette di tenere il Display sempre acceso, se collegato con un cavo di alimentazione o USB tramite PC..)

1e. Collegate il cellulare al PC ed estraete la cartella Android_SDK dall'archivio allegato android_sdk.zip

SE NON AVETE I DRIVER ADB INSTALLATI, E' NECESSARIO INSTALLARLI (ALLEGO I DRIVER)

Per installare i driver, scollegate il cellulare dal PC, eseguite il file adb_drivers.exe, installate i driver tramite la procedura guidata e infine continuate la guida dalla fase 1e (Chiaramente i driver verrano installati al momento della connessione del telefono al PC, pertanto attendere prima di andare avanti con la fase 1e, tuttavia dovrebbe essere sottinteso..)

1f. Una volta estratta la cartella Android_SDK, apritela e tenendo premuto il tasto Shift fate click col tasto destro sulla cartella platform-tools e selezionate Apri finestra di commando qui

1g. Digitate:

adb devices

Dovrebbe apparire un output analogo al seguente:

List of devices attached
<device_id> unauthorized

1h. Successivamente digitate:

adb start-server

Dal cellulare dovrebbe apparirvi una schermata analoga alla seguente..

http://imgur.com/jdiTbzW

(Fai click sul link per visualizzare l'immagine)

1i. Premete su OK

-- Per services.jar only De-odex:

1j. Dal Prompt dei comandi di Windows digitate:

adb pull /system/framework C:/system/framework

-- Per FULL ROM De-odex

1j. Dal Prompt dei comandi di Windows digitate:

adb pull /system/framework C:/system/framework

successivamente..

adb pull /system/app C:/system/app

e anche

adb pull /system/priv-app C:/system/priv-app

1.k Una volta completata l'operazione andate su C: da (Risorse del computer se usate WinXP) o (Computer se usate Win7 in su) o (Questo PC se usate Win10) e spostate la cartella system (Consiglio nel Desktop)

1l. Adesso estraete la cartella Deodexer dall'archivio joeldroid.zip in allegato

1m. Aprite JoelDroidLollipopBatchDeodexer.exe all'interno della cartella Deodexer estratta

1n. Una volta aperto fate click sul tasto Browse e selezionate la cartella system precedentemente spostato da C:.. (Quella che contiene il framework o/e la cartella app e priv-app) e fate click su Start Process

2. Una volta completato il De-Odex (Richiede pochi minuti a seconda della vostra selezione) con un qualunque strumento di gestione archivi (Io uso WinRAR) andate nella cartella system e successivamente framework e cercate services.jar, fate click col tasto destro e selezionate Apri con WinRAR..)

3. Una volta aperto con WinRAR estraete il file classes.dex in una cartella o se preferite nel Desktop (Consigliato)

4. Adesso estraete la Cartella Dex Manager all'interno dell'archivio dex_manager.zip allegato

5. Spostate il file classes.dex all'interno della cartella Dex Manager

6. Successivamente aprite il file Dex Manager.exe e una volta aperto fate click su Decompile, attendete che l'operazione sia terminata e

7. Tornate nella cartella Dex Manager dovrebbe essere apparsa una nuova cartella al suo interno di nome Source, apritela e dirigetevi secondo quest'ordine su: com > android > server e selezionate il file SystemServer.smali (ATTENZIONE!! Vi consiglio di utilizzare Notepad++ per apportarvi modifiche)

8. Adesso.. da Notepad++ andate su Cerca e selezionate Trova e digitate:

.method static final startEmergencyModeService

Vi dovreste trovare in una schermata analoga alla seguente..

http://imgur.com/TLhl4si

(Fai click sul link per visualizzare l'immagine)

9. Sostituite la seguente porzione di codice:

.method static final startEmergencyModeService(Landroid/content/Context;)V
.registers 1
.param p0, "context" # Landroid/content/Context;

.prologue
.line 2314
return-void
.end method

con..

.method static final startEmergencyModeService(Landroid/content/Context;)V
.registers 6
.param p0, "context" # Landroid/content/Context;

.prologue
.line 2194
:try_start_0
invoke-static {p0}, Lcom/sec/android/emergencymode/EmergencyManager;->getInstance(Landroid/content/Context;)Lcom/sec/android/emergencymode/EmergencyManager;

move-result-object v1

.line 2195
.local v1, "emMgr":Lcom/sec/android/emergencymode/EmergencyManager;
invoke-virtual {v1}, Lcom/sec/android/emergencymode/EmergencyManager;->readyEmergencyMode()V
:try_end_7
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_7} :catch_8

.line 2200
.end local v1 # "emMgr":Lcom/sec/android/emergencymode/EmergencyManager;
:goto_7
return-void

.line 2196
:catch_8
move-exception v0

.line 2197
.local v0, "e":Ljava/lang/Exception;
const-string v2, "SystemServer"

new-instance v3, Ljava/lang/StringBuilder;

invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

const-string v4, "Starting emergency service failed: "

invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v3

invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

move-result-object v3

invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v3

invoke-static {v2, v3}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I

goto :goto_7
.end method

10. Una volta fatto ciò salvate le modifiche apportate al file

11. Andate sulla cartella Dex Manager, riaprite Dex Manager.exe nel caso l'avete chiuso e fate click su Compile

12. Una volta terminata la procedura, nella cartella Dex Manager verrà generato un nuovo file nominato New_classes.dex

13. Spostate tale file sul Desktop, eliminate classes.dex e rinominate New_classes.dex in classes.dex

14. Adesso, andate sulla cartella system e successivamente framework, cercate services.jar, apritelo usando WinRAR ed eliminate classes.dex al suo interno, una volta fatto ciò, dal Desktop trascinate il nuovo classes.dex modificato all'interno dell'archivio.

Ora è necessario importare il nuovo framework.. e i 3 file apk che gestiscono il servizio..

1. Dall'allegato EmergencyAPK.zip estraete la cartella app nel Desktop

2. Ora spostatela nella cartella system (quella che contiene il framework)

3. Ora nella cartella system al suo interno, dovreste trovarvi due sottocartelle se avete scelto il metodo Only services.jar De-odex ovvero:

-app

-framework

Altrimenti dovreste trovarvi 3 sottocartelle ovvero:

-app

-framework

-priv-app

Se avete fatto ciò, ora sarà neccessario creare un file zip Flashabile per la recovery vi allego una zip gia pronta di nome TWRP_template.zip

-- Per services.jar only De-odex:

4a. Dalla cartella system e successivamente framework cancellate tutto ad eccezione di services.jar, poi aprite il file TWRP_template.zip e trascinateci dentro usando WinRAR la cartella system

-- Per FULL ROM De-odex

4b. Aprite il file TWRP_template.zip e trascinateci dentro usando WinRAR la cartella system

5. Ora se non avete una recovery modificata vi consiglio di utilizzare la TWRP (ve le allego) insieme al Tool Odin

6. Spegnete il cellulare e dirigetevi in Download Mode, ci sono due modi per arrivarci..

METODO 1: (Veloce e consigliato)

1. Da Google Play Store cercate Android Terminal Emulator

2. Vi consiglio di installare quella di Jack Palevich (Io mi ci trovo bene)

3. Una volta installato, apritelo, dal launcher si chiama Emulatore Terminale

4. digitate il seguente comando:

su

Successivamente digitate..

reboot bootloader

5. Attendete.. e dovreste ritrovarvi nella modalità Download

METODO 2:

1. Spegnete il dispositivo

2. Una volta spento, riaccendetelo tenendo premuti simultaneamente per circa 5 secondi i tasti VOL giù, HOME e POWER

3. Dovrebbe mostrarvi una schermata analoga alla seguente, voi premete sul tasto VOL su

http://imgur.com/UwlgsSl

(Fai click sul link per visualizzare l'immagine)

6. ORA FARE MOLTA ATTENZIONE: appariranno le seguenti voci:

ODIN MODE
PRODUCT-NAME: GT-I9505 o GT-I9515
CURRENT BINARY: Custom
SYSTEM STATUS: Custom
KNOX KERNEL LOCK: 0x0
KNOX WARRANTY VOID: 0x1
CSB-CONFIG-LSB: 0x30
SECURE DOWNLOAD: Enable
WRITE PROTECTION: Enable
eMMC BURST MODE: enable

A noi interessa la voce "PRODUCT-NAME" pertanto nel file recovery.zip in base al modello selezionare la cartella adatta..

Se come PRODUCT-MODE avete come valore GT-I9505 allora andrete nella cartella "jfltexx" altrimenti se avete GT-I9515 andrete nella cartella "jfvltexx", miraccomando fate attenzione in questa fase..

Una volta appurato ciò dalla cartella estraete il relativo file recovery.tar.md5 nel Desktop (Consigliato)

7. Ora nell'allegato odin.zip estraete la cartella Odin nel Desktop (Consigliato), apritela e eseguite Odin3 v3.09.exe

8. Se il cellulare è stato precedentemente scollegato dal PC, collegatelo e attendete 2 secondi.. da ODIN dovrebbe comparire:

0:[COM(NUMERO PORTA UTILIZZATA)]

per esempio se state utilizzando la porta

0:[COM5]

La schermata dovrebbe essere analoga alla seguente..

http://imgur.com/z32RFxF

(Fai click sul link per visualizzare l'immagine)

9. Se siete in Download Mode e il dispositivo è stato riconosciuto da Odin e quindi mostra 0:[COM(NUMERO PORTA UTILIZZATA), fate click sul tasto AP e selezionate la recovery (recovery.tar.md5) estratto in precedenza

10. Verrà mostrato il seguente messaggio:

<OSM> Enter CS for MD5..
<OSM> Check MD5.. Do not unplug the cable..
<OSM> Please wait..

Se il file img è valido verrà mostrato

<OSM> recovery.tar.md5 is valid.
<OSM> Checking MD5 finished Sucessfully..
<OSM> Leave CS..

Pertanto sarà possibile procedere facendo click su Start

11. Se il processo è andato a buon fine, Odin dovrebbe mostrare una voce con scritto PASS e il dispositivo dovrebbe riavviarsi

Dovrebbe apparirvi una schermata analoga alla seguente:

http://imgur.com/Zs2HuDp

(Fai click sul link per visualizzare l'immagine)

12. Una volta riavviato il dispositivo, tenetelo collegato al PC, e copiate il file TWRP_template.zip (quello fatto da voi in precedenza) nel cellulare

13. Ora dal cellulare aprite l'Emulatore terminale e digitate:

su

successivamente..

reboot recovery

14. Fatto ciò attendete e dovreste ritrovarvi in una schermata analoga alla seguente:

http://imgur.com/cQVCDkR

(Fai click sul link per visualizzare l'immagine)

15. Bene.. selezionate "Mount e spuntate la casella System

16. Tornate indietro, e selezionate Install, cercate il percorso del file zip flashabile TWRP_template.zip

17. Una volta trovato, selezionate il file zip flashabile e fate uno swipe verso destra per confermare e attendete l'installazione.. (dura pochi secondi)

18. Adesso ritornate nella Home premendo indietro e selezionate Wipe

19. Selezionate Advanced Wipe e spuntate le caselle Dalvik-cache e Cache e fate uno swipe verso destra per confermare

20. Una volta terminato il wipe tornate nella Home e selezionate Reboot e infine Reboot System

Allego un video per mostrarvi la procedura nel caso non mi sia spiegato

https://youtu.be/_FO08ACDfdc

(Fai click sul link per visualizzare il video)

21. Ora ci sarà da attendere un pochino.. la dalvik cache deve essere ricostruita

INFINE COME ULTIMA FASE DOVRETE AGGIUNGERE IL RIFERIMENTO SULLA QUICK PANEL

1. Dirigetevi su Google Play Store

2. Cercate SQLite Editor

Io vi consiglio di installarvi questo: (l'applicazione è da acquistare ma ne vale la pena.. e costa poco)

http://imgur.com/iCaE1oR

(Fai click sul link per visualizzare l'immagine)

3. Una volta installato SQLite Editor apritelo e andate nella sezione Apps

4. Successivamente cercate e scegliete Memorizzazione impostazioni, selezionate il Database settings.db e infine aprite la tabella system

5. Ora cercate la voce: notification_panel_active_app_list_for_reset e modificatela aggiungendo:

UltraPowerSaving;

Come da esempio:

http://imgur.com/dwf5pYq

(Fai click sul link per visualizzare l'immagine)

6. Fate click su Save

7. Chiudete SQLite Editor e aprite il Quick Panel come da esempio:

http://imgur.com/1FKrNX1

(Fai click sul link per visualizzare l'immagine)

8. Fate click sull'icona della matita per modificare

9. Infine come nell'esempio premete su Ripristina

http://imgur.com/6oT27iC

(Fai click sul link per visualizzare l'immagine)

AVETE COMPLETATO L'OPERAZIONE, ORA SE RIABBASSATE IL QUICK PANEL VI TROVERETE L'ICONA Risp. en. avanzato

http://imgur.com/WxKR5SF :D :D :D

(Fai click sul link per visualizzare l'immagine)

UN BIG THANKS A:

@joeldroid per il suo fantastico "JoelDroid Lollipop Batch Deodexer Tool"

@Jasi2169_TeamURET per il suo fantastico "Dex Manager"

Preciso che è possibile eseguire tutte le operazioni anche senza questi due Tool ma ve li consiglio vivamente, per semplificare e velocizzare l'opera.

Preciso che questa modalità è ancora in fase sperimentale pertanto potresti riscontrare presenza di bug mentre è attiva.

Preciso anche che qualsiasi responsabilià ricade sull'utente

Guida a cura di xXConcasXx

Se volete utilizzare questa guida, potete condividerla tuttavia, dovete citarmi!! Grazie.