INSTALLA NUOVE APP
Guida completa al jailbreak e al sideload di app di terze parti utilizzando WebIDE
Guida completa al jailbreak e al sideload di app di terze parti utilizzando WebIDE
Questa pagina spiegherà tutto ciò che devi sapere sull'installazione di applicazioni di terze parti su KaiOS. "INSTALL OMNISD" è una guida introduttiva allo scopo e all'utilità del Jailbreak di tutti i dispositivi KaiOS, e focalizzata sui metodi più sicuri (JAILBREAK UFFICIALE e INIEZIONE CACHE) , finalizzata a non interrompere gli aggiornamenti ufficiali.
Utilizza il seguente indice per navigare meglio in questa pagina:
Il sideload è il processo di trasferimento di file tra due dispositivi locali, in particolare tra un computer e un dispositivo mobile. Su Firefox OS era una proprietà naturale e può essere fatto utilizzando ADB e DevTools anche su più dispositivi KaiOS ( sorgente ). L' installazione di OmniSD è un classico esempio.
Molti dispositivi possono eseguire il sideload di app di terze parti, ma altri dispositivi richiedono patch speciali ( controlla l'elenco ). Cominciamo vedendo come eseguire il sideload in modo naturale, prima di passare al jailbreak.
Modalità debug : il tuo dispositivo deve essere abilitato al debug. Normalmente è sufficiente comporre il codice di debug*#*#33284#*#*, mentre su alcuni dispositivi (in aggiunta) è necessario aprire un menu usando il codice*#*#0574#*#*e da lì abilitare il debug USB.
Installa Android Debug Bridge : per qualsiasi connessione al dispositivo è importante poter utilizzare la shell. In questo caso dobbiamo eseguire il comando
adb forward tcp:6000 localfilesystem:/data/local/debugger-socket
Installa WebIDE : scegli una vecchia versione di Firefox (59 o precedente) o Pale Moon (28.6.1 o precedente) purché sia basata su Gecko, oppure usa l'emulatore Kaios ufficiale Kaiostr (per quest'ultimo non è necessario digitare alcun comando ADB) .
Abilita la modalità debug sul tuo dispositivo;
Collega il dispositivo al PC utilizzando un cavo USB;
Apri WebIDE e connettiti al "Remote runtime" (questo dovrebbe funzionare sull'emulatore ufficiale Kaiostr), se non lo vedi, avvia il comando " adb forward tcp: 6000 localfilesystem: / data / local / debugger-socket " e clicca di nuovo su " Runtime remoto ". Se viene visualizzato un messaggio di errore sulla mancata corrispondenza della data di build, puoi tranquillamente ignorarlo. Se la connessione non funziona, prova a riavviare il telefono, eseguendo il comando "adb forward" e riconnettiti.
Seleziona la cartella dell'applicazione nel pulsante "Apri app in pacchetto" di WebIDE.
Con il "pulsante Play" triangolare in alto al centro di WebIDE, l'app verrà installata sul tuo telefono.
WebIDE in passato era uno strumento utilizzato per Firefox OS, quindi con le ultime versioni del browser Firefox ha perso molte funzioni utili per noi per sviluppare applicazioni su KaiOS. Fortunatamente ci sono alcune versioni disponibili:
Kaiostr (emulatore ufficiale), disponibile per Ubuntu linux dal sito ufficiale developer.kaiostech.com
Firefox 59 o precedenti, consigliato particolarmente per utenti macOS (viste le scarse risorse)
Palemoon 28.6.1 o precedenti, il migliore in quanto non va in conflitto con l'installazione di Firefox esistente
"WebIDE ti consente di collegare gli Strumenti per gli sviluppatori di Firefox a un numero di altri browser. Con esso, devi prima impostare uno o più runtime. Un runtime è un ambiente in cui eseguirai ed eseguirai il debug dell'app. Un runtime potrebbe essere un Dispositivo KaiOS collegato al desktop tramite USB (o tramite Wi-Fi da Firefox 39), oppure potrebbe essere un simulatore di sistema operativo Firefox installato sul desktop stesso.
Successivamente, crei un'app o ne apri una esistente. Se si desidera creare una nuova app, è possibile iniziare con un modello che include la struttura della directory e la piastra di caldaia minima necessaria per iniziare, oppure un modello più completo che mostra come utilizzare un'API privilegiata. WebIDE mostra i file della tua app in un albero e puoi modificarli e salvarli usando un editor di sorgenti integrato.
Ovviamente, non è necessario utilizzare l'editor integrato: è possibile sviluppare l'app completamente al di fuori di WebIDE e utilizzarla solo per il debug. Infine, puoi installare l'app in uno dei runtime ed eseguirla. Puoi quindi aprire la solita suite di strumenti per sviluppatori - Inspector, Console, JavaScript Debugger e così via - per esaminare e modificare l'app in esecuzione. "
Il metodo di jailbreak ufficiale differisce dal normale sideload solo per il fatto che, dopo il punto 5, è richiesto un "ripristino di fabbrica privilegiato" direttamente dall'applicazione per il jailbreak che installeremo (OmniSD, Wallace o Wallace-Toolbox ) premendo il tasto # da esso, in modo da attivare automaticamente tutte le opzioni "Sviluppatore". Dopo il ripristino, sarà necessario ripetere l'intera procedura se si desidera utilizzare queste applicazioni per un uso diverso (sideload senza PC o permessi di root).
La modalità privilegiata, come dice la parola stessa, è una modalità di avvio in cui l'utente ha il pieno controllo sugli strumenti di sviluppo e sui componenti nascosti del dispositivo, come il menu "Sviluppatore" nell'app "Impostazioni", è anche possibile eseguire il debug sulle applicazioni preinstallate e accedere alle "Preferenze dispositivo" da WebIDE.
Questa modalità consente comunque di ottenere gli aggiornamenti e può essere rimossa semplicemente eseguendo un normale ripristino delle impostazioni di fabbrica dall'app Impostazioni o dalla modalità di ripristino.
Il menu "Sviluppatore" consente di eseguire il debug su un dispositivo , oltre ad accedere ad ADB e DevTools , oltre a varie altre utilità che possono essere consultate qui . È nascosto all'interno dell'app "Impostazioni", ed è visibile solo quando il dispositivo è in "modalità privilegiata".
Dopo due anni di ricerca, siamo finalmente giunti a uno schema preciso su come funziona il jailbreak su diversi dispositivi KaiOS. L'approccio si basa sul tipo di processore utilizzato sul dispositivo, Qualcomm, Spreadtrum o Mediatek. Grazie a questo studio, siamo riusciti a effettuare il jailbreak di molti dispositivi KaiOS diversi:
SITUAZIONE 1, tipica dei dispositivi basati su Qualcomm. Se il codice * # * # 33284 # * # * necessario per il debug funziona, dobbiamo verificare se abbiamo accesso ad ADB e WebIDE. Se tutto va bene possiamo usare OmniSD o Wallace Toolbox per ottenere il jailbreak;
SITUAZIONE 2, tipica dei dispositivi basati su Spreadtrum. Se il codice * # * # 33284 # * # * necessario per il debug funziona, dobbiamo verificare se abbiamo accesso ad ADB e WebIDE. Se il risultato è negativo, abilitare il debug utilizzando il codice * # * # 0574 # * # * e riprovare ad accedere ad ADB e WebIDE. Se tutto va bene possiamo usare Wallace-toolbox per ottenere il jailbreak;
SITUAZIONE 3, tipica dei dispositivi basati su Mediatek. Il codice di debug non funziona, controlliamo se Fastboot è disponibile. Se ce l'abbiamo, controlliamo se è possibile eseguire il flashing della partizione "cache". Se tutto va bene, usare il cosiddetto metodo "cache injection" e avremo il menu "Sviluppatore";
SITUAZIONE 4, tipica di tutti i dispositivi bloccati. Il codice di debug non funziona e Fastboot non è disponibile nemmeno per eseguire il flash delle partizioni. Controlliamo se abbiamo altri strumenti per eseguire il flash delle partizioni. Se sì, possiamo utilizzare il metodo "iniezione cache" e otterremo il menu "Sviluppatore";
SITUAZIONE 5. Il codice di debug non funziona, Fastboot non è disponibile e non abbiamo nemmeno gli strumenti per eseguire il flashing delle partizioni. Il jailbreak non è ancora possibile.
Come puoi vedere, non tutti i dispositivi KaiOS hanno le stesse possibilità . Per aiutare gli utenti a capire meglio quale metodo di installazione è più adatto, abbiamo classificato i dispositivi KaiOS. Scopri di più nella sezione dedicata:
Questo nuovo metodo di Jailbreak è nato su Discord da un'idea di Luxferre e Tbrrss il 22 settembre 2020 ed è ideale per far apparire temporaneamente il menu Sviluppatore, in modo da poter abilitare facilmente ADB e DevTools.
Questo è probabilmente il modo più semplice e versatile per eseguire il jailbreak della maggior parte dei telefoni basati su KaiOS esistenti. Abbiamo deciso di chiamarlo W2D ( web-to-dev ) perché si basa su una proprietà nascosta ma totalmente ufficiale (come confermato da Fabrice, architetto di KaiOS e Firefox OS) che la classe MozActivity è visibile dal contesto del browser:
new MozActivity({name: "configure", data: {target: "device", section: "developer"}})
Per quanto riguarda l'utilizzo, è molto semplice per la maggior parte dei telefoni KaiOS:
Vai su https://w2d.bananahackers.net dal browser del telefono e fai clic su "Launch Developer Menu". In alternativa usa https://dorime.surge.sh/ e clicca sul pulsante " DORIME 2 ", in entrambi i casi si aprirà il Menu Sviluppatore nascosto ;
Abilita prima ADB, poi "ADB e DevTools" nella voce di menu Debugger. Verificare che l'icona del bug compaia nel pannello ;
Assicurarsi che la connessione ADB e WebIDE funzioni, connettersi tramite WebIDE o gdeploy e installare Wallace Toolbox versione 0.0.5 o successiva, oppure OmniSD ;
Utilizzando Wallace Toolbox, seleziona il tasto # ("Abilita menu sviluppatore") e riavvia il telefono quando richiesto, oppure esegui un ripristino delle impostazioni di fabbrica privilegiato utilizzando OmniSD ;
Dopo il riavvio, assicurati che il menu Sviluppatore sia ancora presente in Impostazioni> Dispositivo e puoi connetterti al telefono in modalità privilegiata.
NOTA che per i dispositivi KaiOS a marchio Doro , tutte le installazioni possono attualmente essere eseguite solo in modalità FFBM a causa del modo in cui il server ADB viene avviato lì.
Questo è il processo di jailbreak per Nokia 8110 4G e tutti i dispositivi abilitati al debug, che consente di installare le proprie app dalla scheda SD o anche dalla memoria interna senza patchare la partizione di sistema.
NOTA: avrai bisogno di ADB e WebIDE installati e configurati sul tuo computer (vedi la guida su come "installare applicazioni con WebIDE"), inoltre i tuoi dati verranno cancellati durante il processo.
1) Aggiorna il firmware con l'ultima versione disponibile, vai su Impostazioni / Dispositivo / Informazioni dispositivo / Aggiornamento software
2) Comporre il codice segreto *#*#33284#*#* (per semplificare la memoria supponi di scrivere *#*#debug#*#*con la tastiera). Un'icona di bug dovrebbe apparire nella barra delle applicazioni di sistema sopra. Ulteriori informazioni qui .
3) Collega il dispositivo al PC tramite un cavo USB, può essere visto come memoria esterna o meno, l'importante è che venga rilevato come dispositivo da ADB.
Se WebIDE non lo vede, avviare questo comando per connettersi al socket del debugger del dispositivo:
adb forward tcp:6000 localfilesystem:/data/local/debugger-socket
Se viene visualizzato un messaggio di errore relativo alla mancata corrispondenza della data di creazione, puoi tranquillamente ignorarlo. Se la connessione non funziona, prova a riavviare il telefono, esegui il nuovamente il comando adb forward e riconnettiti.
4) Scaricare e decomprimere il pacchetto OmniSD autonomo da qui (collegamenti alternativi qui o qui ) . Seleziona la sua cartella in "Open packaged app" di WebIDE.
5) Con il triangolare "pulsante Play" in alto, al centro di WebIDE, OmniSD verrà installato sul telefono. L'app si aprirà automaticamente.
Puoi utilizzare questo metodo con qualsiasi altra applicazione che desideri installare dal tuo PC, senza OmniSD, quindi, con lo svantaggio di dover utilizzare un PC e di non essere in grado di installare app che richiedono privilegi più elevati (come le app che consentire l'accesso ROOT). Ma la procedura non è ancora completa.
6) Se tutto va bene, premere # quando l'utilità è in esecuzione e confermare la richiesta di eseguire il ripristino delle impostazioni di fabbrica privilegiate.
7) Al termine del ripristino, il menu "Sviluppatore" dovrebbe apparire nella scheda "Dispositivo" in Impostazioni. Abilitare il debugger in modalità "ADB e DevTools" o utilizzare nuovamente il codice *#*#33284#*#*
8) Ripetere i passaggi da 3 a 5 e OmniSD verrà installato sul telefono e pronto ad accettare i pacchetti di app.
( fonte di Luxferre)OmniSD accetta pacchetti di app in formato .zip. Un archivio deve contenere tre file:
file application.zip (con l'attuale app per KaiOS / FFOS compatibile con WebIDE);
file update.webapp (può essere vuoto ma deve essere presente);
3. file metadata.json nel seguente formato:
{"version": 1, "manifestURL": "app://[your_app_id]/manifest.webapp"},
dove [your_app_id]deve essere sostituito con l'attuale ID (origine) dell'app registrata nel manifest e manifest.webapp all'interno dell'application.zip deve essere rinominata se viene chiamata in modo diverso.
A parte questo, la struttura dell'applicazione in application.zip deve corrispondere alla struttura generale dell'app KaiOS e Firefox OS. Vedi developer.kaiostech.com per maggiori dettagli.
Un jailbreak sicuro per i telefoni KaiOS basati su MediaTek (senza manomettere alcuna partizione di avvio o di sistema) è stato reso possibile grazie al metodo di iniezione della cache, o "cache injection". A differenza di altri, non richiede nemmeno il ripristino delle impostazioni di fabbrica e fornisce pieno accesso privilegiato agli sviluppatori (consentendo di utilizzare, ad esempio, OmniSD e così via). Questo è stato testato anche su dispositivi Qualcomm e Spreadtrum, diventando il miglior metodo di jailbreak!
Si noti che i dispositivi abilitati al debug possono installare applicazioni utilizzando ADB e WebIDE direttamente, e sono tutti basati su Qualcomm o Spreadtrum e possono utilizzare codici assenti nei dispositivi basati su Mediatek, che invece possono sfruttare altre connessioni tramite shell o browser:
Utilizzo di Wallace Toolbox (Qualcomm / Spreadtrum)
Utilizzando un browser basato su Chrome (ca. pollici)
Usare una "shell adb" come root
Utilizzo di Python e Fastboot (metodo originale)
Per tutti i metodi sopra elencati, l'unico obiettivo è quello di poter inserire un file nella partizione /cache, chiamato __post_reset_cmd__ con la parola " root " all'interno. Di seguito le procedure, elencate in ordine di difficoltà, dalla più semplice alla più complessa:
Wallace Toolbox è una cassetta degli attrezzi universale per il tweaking interno di KaiOS, con 14 utili funzioni racchiuse in una piccola app, basata su LibWallace e diverse ricerche indipendenti. Puoi saperne di più nella sezione dedicata al ROOT.
Requisiti
Wallace Toolbox dal repository ufficiale, su gitlab.com/suborg/wallace-toolbox
WebiDE e ADB (se stai usando Windows, macOS o linux), o solo KaiosRT (se stai usando una distribuzione Linux).
Procedimento
Basta installare Wallace-Toolbox come qualsiasi altra app;
apri l'app e premi il tasto # , quindi conferma il riavvio.
L'app abilita automaticamente il Menu sviluppatore, senza dover eseguire un ripristino privilegiato.
ca.in. (sta per "cache injection") è un helper basato su WebUSB per questo metodo di jailbreak utilizzabile collegandosi al sito cain.bananahackers.net utilizzando Chromium, Google Chrome, Opera o Microsoft Edge (altri browser come Firefox e Safari non supportano ancora WebUSB). Oltre a questo, non sono necessarie altre installazioni.
Essenzialmente è un mtk-bootseq + fastboot combinato su WebUSB. Utilizza la classe helper USBIO in javascript.
NOTA: il progetto è altamente sperimentale: usalo a tuo rischio e pericolo, non si accettano reclami ma se sei pronto per il test, informa se ha funzionato per il tuo dispositivo.
Procedimento
Se hai un telefono KaiOS basato su MediaTek e non puoi accedere a Fastboot con una combinazione:
Premere "Enter Fastboot (MTK);
Inserire il cavo;
Collegati rapidamente alla porta del preloader MTK una volta che appare nel menu USB del browser.
Una volta che sei in modalità Fastboot, procedi come segue:
Premi "Jailbreak";
Collegarsi alla porta "Android" una volta che appare nel menu USB del browser.
Dopo il riavvio, il menu Sviluppatore dovrebbe apparire nella sezione Impostazioni - Dispositivo.
Se il lampeggiamento non riesce:
Riconnettersi in modalità Fastboot;
Premere "Tentativo di sblocco OEM";
Ripeti l'intera procedura.
Requisiti
Installa un'app di root (sicura) usando ADB o WebIDE, se il tuo dispositivo non ha "busybox", installa anche OmniBB .
Se il telefono non è in grado di installare app, è necessario applicare la patch alla partizione / boot (non sicura).
Procedimento
Usa i seguenti comandi dalla shell ADB (rooted):
adb shell
echo 'root' > /cache/__post_reset_cmd__
reboot
Dopodiché, dovrebbe apparire il menu Sviluppatore.
In teoria, puoi anche modificare la partizione /cache per includere questo __post_reset_cmd__file con la stringa di root e ottenere lo stesso risultato dopo il prossimo avvio.
Requisiti
Usa l'archivio in questo link: https://cloud.disroot.org/s/JBTFz7DZ6D4Gspt/download
Se necessario, driver aggiuntivi su Windows
Procedimento
1. Installa ADB e Fastboot. Installa i driver necessari se su Windows.
2. Metti il telefono in modalità Fastboot. Esegui i passaggi seguenti (da 2.1 a 2.3) se il telefono non dispone della combinazione di tasti Fastboot:
2.1. Installa Python 3 e pyserial come dipendenza. Installa i driver della porta seriale MediaTek necessari se su Windows.
2.2. Determina quale porta appare in / dev (su Linux / Mac) o in COMx (su Windows) quando colleghi il dispositivo spento al PC e premi ripetutamente il tasto Fine.
2.3. Metti il telefono in modalità Fastboot con il seguente comando (lo script è nell'archivio):
python3 mtk-bootseq.py FASTBOOT your_port
(dove your_port è la porta che hai rilevato nel passaggio precedente)
3. Esegui il flash dell'immagine della cache preparata (l'immagine è nell'archivio):
fastboot flash cache cache-jb.img -u
4. Ricollegare il cavo USB ed eseguire il riavvio NORMALE:
fastboot reboot
5. Verificare che il menu Sviluppatore sia a posto (Impostazioni> Dispositivo> Sviluppatore).
6. Verificare di poter entrare in ADB selezionando prima la modalità di debug "Solo ADB" e poi "ADB e DevTools".
7. Riavvia il sistema in Recovery mode: usa la combinazione per il tuo dispositivo per accedervi o abilita l'accesso ADB + DevTools ed esegui:
adb reboot recovery
8. Ripristina la partizione della cache: trova e seleziona la voce "wipe cache partition" nel menu di ripristino del Recovery.
9. Riavvia nel sistema e avrai pieno accesso privilegiato fino al prossimo ripristino delle impostazioni di fabbrica!
NOTA: Teoricamente, questo metodo può funzionare anche su dispositivi non MediaTek (Spreadtrum o anche Qualcomm) purché sia possibile metterli in modalità Fastboot ed eseguire il comando fastboot flash cache cache-jb.img -u.
Consulta la guida "CACHE INJECTION" in lingua originale per ottenere anche i link e i collegamenti necessari:
Molti dispositivi sono rilasciati con il bootloader bloccato e senza codici che possano abilitare il debug, per esempio il CAT B35. Consultare la nostra lista per maggiori dettagli.
In questa guida non dobbiamo fare altro che abilitare il "menu sviluppatore" e ADB se non autorizzati / disabilitati sul dispositivo. Ciò dovrebbe garantire il normale funzionamento di KaiO senza perdere gli aggiornamenti. I requisiti di base sono:
Il tuo PC con ADB installato e configurato;
Un modo per ottenere il file userdata.img dal telefono (ad esempio utilizzando EDL.PY e il corretto firehose per il dispositivo);
Un editor esadecimale, come wxHexEditor , per leggere e gestire il file usedata.img;
Una shell di root sul tuo PC.
Utilizzando EDL.PY per il tuo dispositivo (ad esempio your-firehose-x0000b.mbn ) devi sapere come:
Ottenere il layout della tabella delle partizioni con l'opzione -printgpt:
python3 edl.py -loader your-firehose-x0000b.mbn -printgpt
Eseguire il backup di qualsiasi partizione dal dispositivo con l'opzione -r [partname] [filename]. Ad esempio (nel nostro caso dobbiamo lavorare su "userdata"):
python3 edl.py -loader your-firehose-x0000b.mbn -r recovery userdata.img
Cancellare la partizione , fornire l'opzione -e [partname]:
python3 edl.py -loader your-firehose-x0000b.mbn -e userdata
Eseguire il flash della nuova immagine della partizione , fornire l'opzione -w [partname] [filename]:
python3 edl.py -loader your-firehose-x0000b.mbn -w userdata userdata.img
Il modo più semplice per eseguire questa operazione è correggere le impostazioni di runtime developer.menu.enabled nell'immagine della partizione userdata. L'unico problema è che, a differenza della partizione di sistema, questa impostazione in userdata risiede in un qualche tipo di database. Quindi, per evitare il disimballaggio, la ricerca, l'applicazione di patch e il reimballaggio, possiamo ricorrere all'applicazione di patch dirette sporche di una partizione userdata scaricata:
1. Aprire il dump della partizione userdata in un editor esadecimale come wxHexEditor ;
2. Cerca la stringa developer.menu.enabled nel dump;
3. Trova il frammento di stringa faultValu più vicino accanto ad esso;
4. Misurare esattamente 8 byte dall'ultima lettera u (il byte target dovrebbe essere 00) e modificare il valore di quel byte da 00 a 01 .
Sì, cambiamo un singolo bit nell'immagine enorme che pesa oltre 1 GB e dopo il riavvio del dispositivo viene visualizzato il menu sviluppatore dove dovrebbe: in Impostazioni - Dispositivo - Sviluppatore. Ottieni l'accesso sia ADB rootato che DevTools.
5. " Salva con nome" , in questo modo creeremo una copia di backup del nostro file senza modificare l'originale.
Per poter utilizzare ADB sul tuo dispositivo ci sono due metodi. Il più semplice è patchare direttamente il firmware (una partizione fondamentale, diversa da quella dei dati utente), questo è l'argomento di un'altra guida sul Firmware personalizzato, disponibile su BananaHackers.net
La disponibilità di ADB dipende dalla sua presenza all'interno della partizione di avvio (contenente i driver). Comunque, se preferisci continuare a lavorare sulla partizione dati, questa guida è per te.
Ora che abbiamo abilitato il menu Sviluppatore in Impostazioni, dobbiamo abilitare l'adbkey sulla partizione. Aggiungi il file /home/.android/adbkey.pub dal tuo PC a /data/misc/adb/adb_keys in questo modo:
1. Montare userdata.img personalizzato e utilizzare i privilegi di root per navigare / modificare il file, ad esempio:
mkdir /MOUNTPOINT
mount -o loop /LOCATION/userdata.img /MOUNTPOINT
dove LOCATION è dove si trova la cartella contenente il file userdata.img e MOUNTPOINT è la cartella in cui è stato montato, ad esempio / mnt / img
2. Copia la chiave adb-publick /data/misc/adb/adb_keys usando questo comando:
cd ~/.android
cp -R adbkey.pub /MOUNTPOINT/misc/adb/adb_keys
3. Smontare il file userdata.img con il comando umount /MOUNTPOINT/
Ora il tuo file userdata.img personalizzato è pronto per il flashing. Questo metodo è il modo più sicuro che non interrompe gli aggiornamenti.
Se tutto ciò non dovesse bastare, consultare la guida sulla personalizzazione del firmware, nella sezione ROOT.