Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- :<<COMMENTBLOCK
- ROUTINE GENERALIZZATE
- COMMENTBLOCK
- #Pulisce e stampa a video una testata
- #Riceve in ingresso la "$Versione" e la "$Testata"
- testata () {
- clear
- echo 'Script a cura di Moroboshi_84, versione in uso: '"$Versione"
- echo 'Per commenti, o consigli visita il sito:'
- echo 'https://forums.oneplus.net/threads/problema-come-determinare-se-si-ha-una-partizione-danneggiata.199841/'
- echo 'Menu: '"$Testata"
- }
- #Stampa a video una messaggio d'errore e ferma l'esecuzione dello script
- #Riceve in ingresso il "$Messaggio"
- errore () {
- echo 'ERRORE: '"$Messaggio" && exit 2
- }
- #Ricerca un elemento all'interno di una array
- #Mi scorro tutto l'array, in "$Count" c'è il numero di elementi del vettore in "$Index" dove è presente l'elemento ricercato
- #Se vale -1 vuol dire che non è stato trovato
- #Riceve in ingresso "$Array" ed "$Elemento"
- ricerca () {
- Count=0
- Index=-1
- while [ "x${Array[Count]}" != "x" ]
- do
- if [ "${Array[Count]}" == "$Elemento" ]; then
- Index=$Count
- fi
- Count=$(( $Count + 1 ))
- done
- }
- #Verifica se una cartella esiste altrimenti la crea
- #Riceve in ingresso "$Cartella"
- cartella () {
- echo -n "$Cartella"
- if [ -d "$Cartella" ]; then
- echo ' già creata'
- else
- echo ' da creare'
- mkdir "$Cartella"
- fi
- }
- #Verifica se una file esiste altrimenti la scarica
- #Riceve in ingresso "$File_Local", "$File_Remoto"
- download_file () {
- echo -n "$File_Local"
- if [ -f "$File_Local" ]; then
- echo ' già scaricato'
- else
- echo ' scaricato'
- wget -c "$File_Remoto" -O "$File_Local"
- fi
- }
- check_md5 () {
- echo -n "$File_Local"
- Check_Md5=`md5sum "$File_Local" | grep "$File_Md5"`
- if [ -z "$Check_Md5" ]; then
- echo ' MD5 KO, provvedo alla cancellazione'
- rm "$File_Local"
- else
- echo ' MD5 OK'
- fi
- }
- :<<COMMENTBLOCK
- ROUTINE DI FUNZIONI ADB
- Comandi adb:
- adb devices lista dispositivi connessi
- adb push <local> <remote> copia un file sul dispositivo
- adb pull <remote> <local> copia un file sul computer
- adb sync <directory> sincronizza la cartella locale e quella del dispositivo
- adb shell <command> esegue un comando sul dispositivo
- adb logcat stampa log dispositivo
- adb install [-l] [-r] [-s] <file> installa un apk (-l blocca l'app) (-r reinstalla l'app) (-s installa sulla SD)
- adb uninstall [-k] <package> disinstalla un apk (-k mantiene i dati e la cache)
- adb bugreport restituisce tutte le informazioni del dispositivo
- adb backup [-f <file>] [-apk|-noapk] crea un backup (-f sposta il backup in un altra cartella) (-apk|-noapk include/esclude le app)
- [-shared|-noshared] [-all] (-shared|-noshared include/esclude contenuto SD) (-all include tutte le app installate)
- [-system|-nosystem] <packages...> (-system|-nosystem include/esclude app di sistema) (lista dei pacchetti da includere nel backup)
- adb restore <file> ripristina il file del backup
- adb wait-for-device aspetta che il dispositivo sia online
- adb start-server fa partire il servizio adb
- adb kill-server stoppa il servizio adb
- adb reboot [bootloader|recovery] riavvia il dispositivo (bootloader o recovery)
- Comandi fastboot:
- fastboot flash <partition> <filename> scrive un file in una partizione
- fastboot erase <partition> cancella e formatta una partizione
- fastboot -w cancella e formatta le partizioni userdata e cache (wipe)
- fastboot devices lista dispositivi connessi
- fastboot reboot riavvia il dispositivo
- fastboot reboot-bootloader riavvia nel bootloader
- COMMENTBLOCK
- #Questa funzione aspetta finchè adb non sia attivo, passati 5 secondi passa all'operazione successiva
- adb_aspetta_dispositivo () {
- echo 'Aspetta...'
- #timeout secondi comando da lanciare
- #Allo scadere del tempo, se il comando non ha finito l'esecuzione, passa all'istruzione successiva
- sh -c 'timeout 5 adb wait-for-device'
- }
- #Questa funzione riavvia il servizio ADB
- adb_riavvia_server () {
- echo 'Sto riavviando il servizio ADB'
- #Schema adb start-server
- #* daemon not running. starting it now on port 5037 *
- #* daemon started successfully *
- sudo adb kill-server > /dev/null
- sudo adb start-server > /dev/null
- }
- #Questa funzione controlla che il dispositivo connesso sia riconosciuto su ADB, in caso contrario riavvia il servizio
- #In ingresso necessita del "$Serial_Number"
- adb_riconoscimento_dispositivo () {
- adb_aspetta_dispositivo;
- #Schema adb devices
- #List of devices attached
- #946a10ce device
- Adb_Devices=`adb devices | grep "$Serial_Number"' device'`
- if [ -z "$Adb_Devices" ]; then
- echo 'Dispositivo non riconosciuto da adb, tento di rilanciare'
- adb_riavvia_server
- adb_aspetta_dispositivo
- Adb_Devices=`sudo adb devices > /dev/null | grep "$Serial_Number"' device'`
- if [ -z "$Adb_Devices" ]; then
- Messaggio='ADB NON RICONOSCE IL DISPOSITIVO'
- errore
- fi
- fi
- echo 'Dispositivo riconosciuto da adb'
- }
- #Questa funzione controlla che il dispositivo connesso sia riconosciuto su fastboot
- #In ingresso necessita del "$Serial_Number"
- fastboot_riconoscimento_dispositivo () {
- #Schema fastboot devices
- #946a10ce fastboot
- Fastboot_Devices=`sudo fastboot devices | grep "$Serial_Number"' fastboot'`
- if [ -z "$Fastboot_Devices" ]; then
- Messaggio='FASTBOOT NON RICONOSCE IL DISPOSITIVO'
- errore
- else
- echo 'Dispositivo riconosciuto da fastboot'
- fi
- }
- #Questa funzione fa riavviare in fastboot
- #In ingresso necessita del "$Serial_Number", da passare alla funzione figlio
- adb_riavvio_bootloader () {
- adb_aspetta_dispositivo;
- echo 'Riavvio il bootloader, se vedi "Fastboot Mode", ADB funziona correttamente'
- Adb_Bootloader=`adb reboot bootloader 2>&1`
- if [ "$Adb_Bootloader" == "error: device not found" ]; then
- Messaggio='ADB NON TROVA IL DISPOSITIVO'
- errore
- fi
- sleep 5
- fastboot_riconoscimento_dispositivo "$Serial_Number";
- sleep 5
- }
- #Questa funzione fa riavviare in recovery
- adb_riavvio_recovery () {
- echo 'Riavvio il dispositivo in recovery'
- adb reboot recovery > /dev/null
- echo 'Sul dispositivo: '
- echo 'Se sei su TWRP Recovery clicca su Install -> selezionare il file -> Swipe to Confirm Flash -> Reboot system'
- echo 'Se sei su Cyanogen Recovery cliccando su "apply update" -> "Choose from internal storage" -> "0" -> seleziona il file'
- echo 'L'"'"'update non andrà a buon fine... Reboot system now'
- echo 'nel menù principale, seleziona: 04:) Recovery'
- }
- #Questa funzione fa riavviare il dispositivo da fastboot a system
- fastboot_riavvio_dispositivo () {
- #Schema fastboot reboot
- #rebooting...
- #
- #finished. total time: 0.005s
- echo 'Riavvio il telefono'
- sudo fastboot reboot > /dev/null 2>&1
- }
- #Questa funzione recupera i bit device tampered e unlocked
- fastboot_oem_device () {
- #Schema fastboot oem device-info
- #...
- #(bootloader) Device tampered: true
- #(bootloader) Device unlocked: false
- #(bootloader) Charger screen enabled: false
- #OKAY [ 0.005s]
- #finished. total time: 0.005s
- #Redirigo stderr su stdout 2>&1
- Fastboot_Oem_Device_Info=`sudo fastboot oem device-info 2>&1 | grep '(bootloader)'`
- Device_Tampered=`echo "${Fastboot_Oem_Device_Info[0]}" | grep 'Device tampered:'| cut -d ':' -f 2 | cut -d ' ' -f 2`
- Device_Unlocked=`echo "${Fastboot_Oem_Device_Info[0]}" | grep 'Device unlocked:'| cut -d ':' -f 2 | cut -d ' ' -f 2`
- }
- #Questa funzione controlla che il bit "$Device_Unlocked", non valga false, altrimenti esegue lo sblocco
- #In ingresso necessita del "$Device_Unlocked"
- sblocco_bootloader () {
- if [ "$Device_Unlocked" == "false" ]; then
- echo 'Attenzione: Bootloader bloccato!'
- while true; do
- echo '01:) Sblocco metodo classico (Attenzione cancella i dati personali)'
- echo '02:) Sblocco senza perdita dei dati personali'
- echo '03:) Esci'
- read -p 'Scegli? ' SCELTA
- case $SCELTA in
- 1 ) sudo fastboot oem unlock > /dev/null 2>&1; echo 'https://forums.oneplus.net/threads/guida-ubuntu-oneplus-one-sbloccare-il-bootloader-installare-twrp-e-supersu.55935/'; echo 'Guida a cura di nguser'; break;;
- 2 ) tamper_bit; break;;
- 3 ) break;;
- * ) ;;
- esac
- done
- else
- echo 'Bootloader già sbloccato'
- tamper_bit
- fi
- }
- #Questa funzione copia un file nel dispositivo
- #In ingresso necessita del "$File_Local" e "$File_Remote"
- push_file () {
- echo 'Sto copiando il file ' "$File_Local"' sul dispositivo'
- adb push "$File_Local" "$File_Remote" > /dev/null
- sleep 5
- }
- :<<COMMENTBLOCK
- FUNZIONI
- COMMENTBLOCK
- #Controlla che tutte le dipendeze siano soddisfatte
- #In ingresso "$Indice_SO"
- first_menu () {
- check_dependence () {
- #Creare una funzione per ogni SO gestito, redirigo su /dev/null i risultati del comando lanciato
- check_dependence_ubuntu () {
- Lista_Pacchetti_Ubuntu=(
- 'android-tools-adb'
- 'android-tools-fastboot'
- 'libmtp-common'
- 'mtp-tools'
- 'libmtp-dev'
- 'libmtp-runtime'
- 'libmtp9'
- )
- echo '1: Sto aggiornando il sistema'
- sudo apt-get update > /dev/null
- sudo apt-get upgrade > /dev/null
- echo '2: Sto verificando il pacchetto: '
- Count=0
- while [ "x${Lista_Pacchetti_Ubuntu[Count]}" != "x" ]
- do
- Verifica_Pacchetto=`dpkg -l | grep "${Lista_Pacchetti_Ubuntu[Count]}"`
- if [ -z "$Verifica_Pacchetto" ]; then
- echo -n 'installato: '
- sudo apt-get install "${Lista_Pacchetti_Ubuntu[Count]}" > /dev/null
- else
- echo -n 'già installato: '
- fi
- echo "${Lista_Pacchetti_Ubuntu[Count]};"
- Count=$(( $Count + 1 ))
- done
- echo '3: Faccio un pò di pulizia sul sistema'
- sudo apt-get remove > /dev/null
- sudo apt-get autoremove > /dev/null
- sudo apt-get purge > /dev/null
- sudo apt-get clean > /dev/null
- sudo apt-get autoclean > /dev/null
- sudo apt-get check > /dev/null
- echo '4: Rimuovo i pacchetti orfani'
- sudo apt-get remove --purge `deborphan` > /dev/null
- echo '5: Rimuovo i pacchetti rimossi ma non purgati'
- sudo aptitude purge ~ c > /dev/null
- }
- #Inserire la voce corrispondente per la chiamata alla funzione dell'SO da gestire
- case "$Indice_SO" in
- 0 ) check_dependence_ubuntu;;
- 1 ) break;;
- * ) echo 'ERRORE';;
- esac
- }
- while true; do
- read -p 'Controllo se hai installato tutti i pacchetti? ' SCELTA
- case $SCELTA in
- #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
- [Ss]* ) check_dependence; break;;
- [Nn]* ) break;;
- * ) echo 'Rispondi con si o no.';;
- esac
- done
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- main_menu () {
- #Questa funzione fa si che l'OPO sia montabile come archivio di massa
- #In ingresso "$Indice_SO", "$Id_Vendor" e "$Id_Product"
- montare_archivio () {
- Testata='01:) Montare lo OnePlus One come archivio di massa'
- testata;
- #Redirigo su /dev/null i risultati del comando lanciato
- #INIZIO-Inserire il percorso dei file per ogni SO
- Path_File_Fuse=(
- '/etc/fuse.conf' #L'indice per referenziarlo è 0
- )
- Path_File_Mtp_Rules=(
- '/lib/udev/rules.d/69-mtp.rules' #L'indice per referenziarlo è 0
- )
- Path_File_Android=(
- '/etc/udev/rules.d/51-android.rules' #L'indice per referenziarlo è 0
- )
- #FINE-Inserire il percorso dei file per ogni SO
- File_Fuse_Conf=`sudo cat "${Path_File_Fuse["$Indice_SO"]}" | grep '#user_allow_other'`
- echo -n '1): #user_allow_other nel file '"${Path_File_Fuse["$Indice_SO"]}"
- if [ -z "$File_Fuse_Conf" ]; then
- echo ' già disasteriscato'
- else
- echo ' disasteriscato'
- #sed -i "s/vecchiastringa/nuovastringa/g" file
- sudo sed -i 's/#user_allow_other/user_allow_other/g' "${Path_File_Fuse["$Indice_SO"]}"
- fi
- #Schema della stringa da inserire nel file $Path_File_Mtp_Rules
- #ATTR{idVendor}=="idVendor", ATTR{idProduct}=="idProduct", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1",
- #ENV{ID_MEDIA_PLAYER}="1"[/#SIZE][/INDENT]
- Mtp_Rules='# OnePlus_One
- ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"[/SIZE][/INDENT]'
- File_69_Mtp_Rules=`sudo cat "${Path_File_Mtp_Rules["$Indice_SO"]}" | grep 'ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'"'`
- echo -n '2): Mtp rules nel file '"${Path_File_Mtp_Rules["$Indice_SO"]}"
- if [ -z "$File_69_Mtp_Rules" ]; then
- echo ' aggiornato'
- #accodo nel file la stringa prima creata
- echo "$Mtp_Rules" | sudo tee -a "${Path_File_Mtp_Rules["$Indice_SO"]}"
- else
- echo ' già aggiornato'
- fi
- #Schema della stringa da inserire nel file $Path_File_Android
- #ATTR{idVendor}=="idVendor", ATTR{idProduct}=="idProduct", MODE=”0666"
- Android_Rules='# OnePlus_One
- ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'", MODE=”0666"'
- File_51_Android_Rules=`sudo cat "${Path_File_Android["$Indice_SO"]}" | grep 'ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'"'`
- echo -n '3): Android rules nel file '"${Path_File_Android["$Indice_SO"]}"
- if [ -z "$File_51_Android_Rules" ]; then
- echo ' aggiornato'
- #accodo nel file la stringa prima creata
- echo "$Android_Rules" | sudo tee -a "${Path_File_Android["$Indice_SO"]}"
- else
- echo ' già aggiornato'
- fi
- echo '4): Riavvio il servizio udev'
- sudo service udev restart > /dev/null
- echo '5): Disinserire ed inserire il dispositivo nell'"'"'USB'
- echo 'https://forums.oneplus.net/threads/guida-montare-lo-oneplus-one-come-archivio-di-massa-su-ubuntu.62172/'
- echo 'Guida a cura di pablomoreno'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- #Questa funzione controlla che il dispositivo sia riconosciuto su ADB e fastboot
- #Ingresso "$Serial_Number"
- android_debug_bridge () {
- Testata='02:) Controllo Android Debug Bridge'
- testata;
- echo '1) Sul telefono:'
- echo '2) Impostazioni'
- echo '3) Info sul telefono'
- echo '4) Premete 7 volte su Numero build. Vedrete un piccolo pop-up che dice "Hai attivato le opzioni sviluppatore!"'
- echo '5) Tornate nel menu Impostazioni e scorrete in basso fino a Opzioni sviluppatore'
- echo '6) Abilitate Debug Android'
- echo '7A) Premere su OK, alla comparsa del pop-up "Consentire debug USB?"'
- echo '7B) Flaggare "Consenti sempre da questo computer" (potrebbe non presentarsi ora)'
- echo '7C) Premere su OK (potrebbe non presentarsi ora)'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- echo -n '8) '
- adb_riconoscimento_dispositivo;
- echo -n '9) '
- adb_riavvio_bootloader;
- echo -n '10) '
- fastboot_riavvio_dispositivo;
- echo 'https://forums.oneplus.net/threads/guida-ubuntu-oneplus-one-sbloccare-il-bootloader-installare-twrp-e-supersu.55935/'
- echo 'Guida a cura di nguser'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- #Questa funzione controlla i bit tampered e unlocked
- check_adb_fastboot_tamper () {
- tamper_bit () {
- ripristino_tamper_bit () {
- File_Remote='sdcard/'
- push_file;
- recovery;
- }
- fastboot_riavvio_dispositivo;
- read -p 'Premi [INVIO] appena il telefono si è riavviato...' PAUSA
- File_Local="$Cartella_Script"'/OPO/TOOLS/OnePlusOne-BootUnlocker.zip'
- File_Remoto='http://forum.xda-developers.com/attachment.php?attachmentid=2859187&d=1405749374'
- File_Md5='54fe23cf33b01cd8ff297da2623d432f'
- download_file;
- check_md5;
- while true; do
- read -p 'Attenzione vuoi ripristinare il tamper bit? ' SCELTA
- case $SCELTA in
- [Ss]* ) ripristino_tamper_bit; break;;
- [Nn]* ) break;;
- * ) echo 'Rispondi con si o no.';;
- esac
- done
- echo 'http://forum.xda-developers.com/oneplus-one/development/mod-reset-unlock-tamper-bit-t2820912'
- echo 'Guida a cura di Mnt-XDA'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- Testata='03:) Controllo Sblocco Bootloader e Tamper Bit'
- testata;
- while true; do
- read -p '1) Devo controllare che ADB e fastboot funzionino correttamente? ' SCELTA
- case $SCELTA in
- #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
- [Ss]* ) android_debug_bridge; break;;
- [Nn]* ) break;;
- * ) echo 'Rispondi con si o no.';;
- esac
- done
- echo -n '2) '
- adb_riavvio_bootloader;
- echo '3) Ora controllo i bit device tampered, unlocked siano settati correttamente'
- fastboot_oem_device;
- echo '4) Device_Unlocked: '"$Device_Unlocked"
- echo '5) Device_Tampered: '"$Device_Tampered"
- sblocco_bootloader;
- }
- recovery () {
- recovery_TWRP () {
- Link='http://techerrata.com/browse/twrp2/bacon'
- wget "$Link" -O "$Cartella_Script"'/OPO/twrp2.html'
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/twrp2.html' | grep "openrecovery-twrp-" | cut -d "<" -f 2| cut -d ">" -f 1 | grep "href=" | cut -d "'" -f 2`
- #Valorizzo l'array dei link e dei nomifile
- Count=0
- Menu=''
- while [ "x${Temp_Link_File[0]}" != "x" ]
- do
- Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- Name_File[Count]=`echo "${Link_File[Count]}" | cut -d "/" -f 7`
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | grep -v "${Link_File[Count]}"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
- done
- Temp_Md5_File=`cat "$Cartella_Script"'/OPO/twrp2.html' | grep "MD5:" | cut -d ":" -f 2 | cut -d "<" -f 1 | cut -d " " -f2`
- #Valorizzo l'array degli md5
- Count=0
- while [ "x${Temp_Md5_File[0]}" != "x" ]
- do
- Md5_File[Count]=`echo "${Temp_Md5_File[0]}" | head -n 1`
- Temp_Md5_File[0]=`echo "${Temp_Md5_File[0]}" | grep -v "${Md5_File[Count]}"`
- Count=$(( $Count + 1 ))
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='04:) Recovery TWRP2'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- File_Local="$Cartella_Script"'/OPO/RECOVERY/'"${Name_File[SCELTA - 1]}"
- File_Remoto="${Link_File[SCELTA - 1]}"
- File_Md5="${Md5_File[SCELTA - 1]}"
- download_file
- check_md5
- while true; do
- echo '01:) Flash della recovery'
- echo '02:) Boot della recovery'
- echo '03:) Esci'
- read -p 'Scegli? ' SCELTA
- case $SCELTA in
- 1 ) adb_riavvio_bootloader; sudo fastboot flash recovery "$File_Local"; echo 'Aspetta l'"'"'avvio di TWRP2';;
- 2 ) adb_riavvio_bootloader; sudo fastboot boot "$File_Local"; echo 'Aspetta l'"'"'avvio di TWRP2';;
- 3 ) break;;
- * ) ;;
- esac
- done
- fi
- rm "$Cartella_Script"'/OPO/twrp2.html'
- }
- while true; do
- Testata='04:) Recovery'
- testata
- echo '01:) TWRP2'
- echo '02:) Riavvio in recovery'
- echo '03:) Esci'
- read -p 'Scegli? ' SCELTA
- case $SCELTA in
- 1 ) recovery_TWRP; break;;
- 2 ) adb_riavvio_recovery; break;;
- 3 ) break;;
- * ) ;;
- esac
- done
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- root () {
- Testata='05:) Root'
- testata
- while true; do
- read -p '1) Devo controllare che ADB e fastboot funzionino correttamente? ' SCELTA
- case $SCELTA in
- #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
- [Ss]* ) android_debug_bridge; break;;
- [Nn]* ) break;;
- * ) echo 'Rispondi con si o no.';;
- esac
- done
- Link='http://download.chainfire.eu/supersu'
- wget "$Link" -O "$Cartella_Script"'/OPO/supersu.html'
- File_Remoto=`cat "$Cartella_Script"'/OPO/supersu.html' | grep 'UPDATE-SuperSU-' | cut -d '"' -f 4`
- Name_File=`cat "$Cartella_Script"'/OPO/supersu.html' | grep 'UPDATE-SuperSU-' | cut -d '<' -f 2 | cut -d '>' -f 2`
- File_Local="$Cartella_Script"'/OPO/ROOT/'"$Name_File"
- File_Md5='20d95246299cb7446d025d4df1bd2fa5'
- download_file
- check_md5
- File_Remote='sdcard/'
- while true; do
- read -p 'Attenzione vuoi copiare SuperSU? ' SCELTA
- case $SCELTA in
- [Ss]* ) push_file; recovery; break;;
- [Nn]* ) break;;
- * ) echo 'Rispondi con si o no.';;
- esac
- done
- rm "$Cartella_Script"'/OPO/supersu.html'
- echo 'https://forums.oneplus.net/threads/guida-ubuntu-oneplus-one-sbloccare-il-bootloader-installare-twrp-e-supersu.55935/'
- echo 'Guida a cura di nguser'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- kernel () {
- franco_kernel () {
- Md5_File_1=(
- '4ce77e7503dd2b5d9d6c97631bae4561'
- '735a8d1602e3032f6aef2e8d44136fdb'
- 'ba9fa1fa3f5e87f6b8415f5e5425498d'
- '989a9d1d37bbae500f4a0dcb88ba8715'
- '086cbe9d63e99c625420845046c839ee'
- 'dc99c3e96e797794f151ec7ea4ad9166'
- '3f39bc29d4d9cdd79287084daa64a55b'
- '4ae4bf98447b35beea07e77a0b2b2d11'
- 'bcd042cfe646cc2326ef5f34dc42c080'
- 'e2ca7f8667dfb98d0d5685b0227b250e'
- '91c7cbb1cfe244034a6fd631ca25be4c'
- 'eab795cc831a7da834eb1a7f1c5af501'
- '0d346a7302768cf1acf4db2beaf5d61c'
- '0f19dcbba5eb4ca0412cef33cf8d1859'
- 'ffee04eeed9b6a4a37dc639d09e17702'
- '8ed964213d64cd715d57a67513fb32af'
- '429c02847eead9f80cf30ee059845546'
- 'd3013cc3f53d1a82c5efb77dfa62081c'
- 'e5a0dc3a0ecc35d6f8e658fbf842767d'
- 'e34dc2f0155234448cdbf1fa1c4c13eb'
- 'a53ce10de9c7523d901e6af066727bce'
- '553d878f42d49fcaaaa3e00c9756cc1d'
- 'cc7d76dc5720adb9c6f877e0b593062a'
- '68fae1c09c31d052c041ffc89d3c969e'
- '9f07fb089e9bfafbed377fdaedbc0b98'
- 'bd4fa6cdc38d3aec3a4e2f742e2885fe'
- '66e46ff646043b0c0468c3e41158360b'
- '5aeff80be7060fffbcd055e8f2e8b505'
- '8592233a034eb25f3b3b4b2f220ee018'
- 'bc91e57a5d0e71ff19ac0554dd428fc7'
- '29e168ce206c55dbb910061f2e1f70f4'
- '83faf4252296821c148d04d9ed9b5aaa'
- '612de6864a6019ddd34f141c4064cdb8'
- 'b58329613201360fc34d93338f1c1705'
- '921d2e857b5f77acc4cc28f4a772e621'
- )
- Md5_File_2=(
- 'c9844b3d41c3365d8bc0e7e638ac87ab'
- '7173ce78d926f1c85ec33f0840747ee2'
- '11816f3c957dfd6a2a9c9c898da920a8'
- 'e83baec484ec4be233836cead6792608'
- '1be097cfdc7e9cf32d2535508dadb043'
- '7a80941806bb6204b60f6319d9aed487'
- '970defa78dc8b2cd96418feda3aa1ebb'
- '3e37acf0e3f235bbea4d1b3a6fe1136c'
- '54b1da67a6b563d18ba1ee57eae3c931'
- '76546e296d9b86ec6849a126da6823fd'
- 'a5e8e24be3b0460cfc4a952bad8a714e'
- '8a905536b5c1a706546ad3ca33e5687e'
- '16d936fbce5eca512b9c0b635e95ed9a'
- '40da444c34eb41410a2a1c65f7c654c0'
- '16e87e4afc64333141613f4ef39d5e63'
- 'edb7f8b9f54e395c2c6e413030315e57'
- 'b949208298d0ffb45dce229c3f921c8e'
- 'd51162d5806b072517b470d5da512f93'
- '3b1a2780d177aabae6de996a32f2618e'
- '623c3127fef807ec1a866750db75ec36'
- '048e9826ef0445a6a7683928aed15f4f'
- 'a771803cbde03347ae7feb094520ca5c'
- 'c4ab9c95d61c5b628a447f767aef917b'
- '2c49575a82f0dafc79b016c0f0ac7f31'
- '49993975e84abf31a40fc0166e4fe092'
- '08e95121771ea07273fd78c1d7d90319'
- '211656cffc610e02afd08417ad73a949'
- '6b7df617dfe25cc96011747647e96f23'
- '68432805c3328742b62a488fe1973390'
- 'c80ed94dba1c01fc1d4dcf3893333bbf'
- '37a1c1f05801d958243a893984fef4c7'
- 'fd20b29e9a8d31ddf16d15760eb6d8c0'
- '593dc52e8e57b8f75d160c6237a7b5e7'
- 'eec8d339424f646abbf315de08151e8c'
- '7585f0bc3109ec0e920826f99b747ca6'
- )
- Md5_File_3=(
- '5fb29e4f5237ec904b4dc6dc5cbaea53'
- '3b38014af6caa9040dfdf0ccb8c1b557'
- '98900e6fbd451630be6658d3d369298a'
- '262ab0b1b88896ba51dfef4e40f0ff61'
- 'ef886a28d9c65a811498ef9ca95ec338'
- 'bec2b702cd767c67ef595dfe72760062'
- 'e572ced85b66b747722d28794566d777'
- '2036635f3908b9b58846f5cf4183a7b6'
- '13047ce5c73c2a7002ca8984b164d657'
- 'd875ade09a400ae9aed655a118968371'
- 'afd77f2bbc2837e266a4418a753e0bf9'
- 'f19fa714987cd2b359b6309ed3761772'
- '69fdaf35335625c64be9382d7f698a0a'
- '3b64edcd2f773f21f0b7c32f094fe6da'
- '68fae1c09c31d052c041ffc89d3c969e'
- '9f07fb089e9bfafbed377fdaedbc0b98'
- 'bd4fa6cdc38d3aec3a4e2f742e2885fe'
- '66e46ff646043b0c0468c3e41158360b'
- '5aeff80be7060fffbcd055e8f2e8b505'
- '8592233a034eb25f3b3b4b2f220ee018'
- 'bc91e57a5d0e71ff19ac0554dd428fc7'
- '29e168ce206c55dbb910061f2e1f70f4'
- '83faf4252296821c148d04d9ed9b5aaa'
- '612de6864a6019ddd34f141c4064cdb8'
- 'b58329613201360fc34d93338f1c1705'
- '921d2e857b5f77acc4cc28f4a772e621'
- )
- Md5_File_4=(
- '1a50de972ee68f769a4815c33c76db8d'
- 'd502fa6404073bbec04901fb59d8d6b8'
- '28ed5006f5d56327192ce2aa6804ee3e'
- '2ba58adbd79a670e10cea3ba2ccf21a8'
- '6a802b095f3b113d31b86cf57f108a7b'
- '36ca069ed90d0375580a0d8129215ccf'
- '473798825f7231d71042152583cefb05'
- 'ecc25ad455f1fec5a28f610e1e5d226d'
- 'd175f406def5220b9e8acd411f728190'
- '40d9567b45e4ca5a784e1f01c19c1728'
- '030d2f7832ed24e1e991a400873c5c8d'
- 'f2659653d4c7d5f5344643003368f941'
- 'fc6fb5b9cb9d7563604bd07a7f902c1f'
- 'c9dd71684f1b53ed59fc76d147d6374d'
- '2c49575a82f0dafc79b016c0f0ac7f31'
- '49993975e84abf31a40fc0166e4fe092'
- '08e95121771ea07273fd78c1d7d90319'
- '211656cffc610e02afd08417ad73a949'
- '6b7df617dfe25cc96011747647e96f23'
- '68432805c3328742b62a488fe1973390'
- 'c80ed94dba1c01fc1d4dcf3893333bbf'
- '37a1c1f05801d958243a893984fef4c7'
- 'fd20b29e9a8d31ddf16d15760eb6d8c0'
- '593dc52e8e57b8f75d160c6237a7b5e7'
- 'eec8d339424f646abbf315de08151e8c'
- '7585f0bc3109ec0e920826f99b747ca6'
- )
- while true; do
- Testata='06:) Franco Kernel'
- testata
- echo '01:) CM11S boot image'
- echo '02:) CM11S zip'
- echo '03:) ROM AOSP boot image'
- echo '04:) ROM AOSP zip'
- echo '05:) Esci'
- read -p 'Scegli? ' SCELTA
- case $SCELTA in
- 1 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/CM11S/'; Md5_File="$Md5_File_1"; break;;
- 2 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/zips/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/CM11S/'; Md5_File="$Md5_File_2"; break;;
- 3 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/aosp/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/AOSP/'; Md5_File="$Md5_File_3"; break;;
- 4 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/aosp/zips/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/AOSP/'; Md5_File="$Md5_File_4"; break;;
- 5 ) break;;
- * ) ;;
- esac
- done
- if [ "$SCELTA" == "5" ]; then
- continue
- else
- cartella
- wget "$Link" -O "$Cartella_Script"'/OPO/franco.html'
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/franco.html' | grep 'boot-' | cut -d '"' -f 8`
- if [ -z "$Temp_Link_File"]; then
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/franco.html' | grep 'franco.Kernel-nightly-' | cut -d '"' -f 8`
- fi
- Count=0
- Menu=''
- while [ "x${Temp_Link_File[0]}" != "x" ]
- do
- Name_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- Link_File[Count]=`echo "$Link""${Name_File[Count]}"`
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | grep -v "${Name_File[Count]}"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='06:) Franco Kernel'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- File_Local="$Cartella""${Name_File[SCELTA - 1]}"
- File_Remoto="${Link_File[SCELTA - 1]}"
- File_Md5="${Md5_File[SCELTA - 1]}"
- download_file
- check_md5
- Tipo=`echo "$File_Local" | grep ".zip"`
- if [ -z "$Tipo" ]; then
- adb_riavvio_bootloader
- sudo fastboot flash boot "$File_Local"
- sleep 5
- fastboot_riavvio_dispositivo
- else
- File_Remote='sdcard/'
- push_file;
- recovery;
- fi
- fi
- fi
- rm "$Cartella_Script"'/OPO/franco.html'
- echo 'https://forums.oneplus.net/threads/kernel-kernel-di-francisco-franco-per-oneplus-one.45619/'
- echo 'Guida a cura di Sparkolo'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- furnace_kernel () {
- Md5_File=(
- '8d6cf2e2df4f564844ca27562858ff57'
- '2ce7c46ab2aa73fc2658b71dc811ef6a'
- 'f507ccd1aa0c2df53e8c1ce732628120'
- 'd722920f8d525899ee37db2813c5ba36'
- 'f91eeacba82c79490aba1bfe7c1d46b4'
- '170a0a9a952ecd94dab9b097fabc5388'
- '69f520ec22b853da90e0ee61d9b8abb4'
- 'f5a600f770b3c4f70b8a18667ed180fc'
- 'c19f7633fcb61680a7e8137d0bdcd878'
- 'e9434847195601e8a087beafb626c87e'
- '217a2ce653f8f7cd6d03c38599dfa371'
- 'b43d962a8e02c3a4c25205041d4811aa'
- '07c3efca4797fe7aac2b77ade6644f66'
- '3ed6567e7b48f047fb9db23e69b0e215'
- 'f1604b17c534d4e4ffa5d92545008cde'
- '43d9bbb3b793ae64e4b79aaf27ad83e3'
- '1e80ef95011c1bbd41b952d57c828368'
- '91706e0414007530a28f009a3950117e'
- '42844a025e1d22b71524d0605cc28a6f'
- '38a190c9ad3951e1f30cc7c7f4eb710d'
- '19694aad3275065ad574adca0efb6abd'
- '7b5e73e2edd27fee744c8b166da2c62b'
- '887d6d4482ea04cdbacd332da1801a77'
- '04d1ee25bf8bc47ea85a1fafaaf61162'
- '29dc21004b26bdab74f3f49b8b6e4303'
- '27a5bd9c754a876cc9d0bb0c7a29ea6c'
- 'c755d6509af21fafefe3c3401abf7405'
- '6006d84c9f7f04935d9931204373805e'
- )
- Link='http://downloads.codefi.re/savoca/furnace/bacon/old'
- wget "$Link" -O "$Cartella_Script"'/OPO/furnace1.html'
- Link='http://downloads.codefi.re/savoca/furnace/bacon'
- wget "$Link" -O "$Cartella_Script"'/OPO/furnace2.html'
- cat "$Cartella_Script"'/OPO/furnace1.html' "$Cartella_Script"'/OPO/furnace2.html' > "$Cartella_Script"'/OPO/furnace.html'
- rm "$Cartella_Script"'/OPO/furnace1.html'
- rm "$Cartella_Script"'/OPO/furnace2.html'
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/furnace.html' | grep '.zip' | cut -d "'" -f 6`
- Temp_Name_File=`cat "$Cartella_Script"'/OPO/furnace.html' | grep '.zip' | cut -d "'" -f 2`
- Count=0
- Menu=''
- Link='http://downloads.codefi.re'
- Cartella="$Cartella_Script"'/OPO/FURNACEKERNEL/'
- while [ "x${Temp_Link_File[0]}" != "x" ]
- do
- Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | grep -v "${Link_File[Count]}"`
- Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | grep -v "${Name_File[Count]}"`
- Link_File[Count]=`echo "$Link""${Link_File[Count]}"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='06:) Furnace Kernel'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- File_Local="$Cartella""${Name_File[SCELTA - 1]}"
- File_Remoto="${Link_File[SCELTA - 1]}"
- wget "$File_Remoto" -O "$Cartella_Script"'/OPO/parziale.html'
- File_Remoto=`cat "$Cartella_Script"'/OPO/parziale.html' | grep 'href=' | cut -d '"' -f 2 | head -n 1`
- File_Remoto=`echo "$Link""$File_Remoto"`
- File_Md5="${Md5_File[SCELTA - 1]}"
- download_file
- check_md5
- rm "$Cartella_Script"'/OPO/parziale.html'
- File_Remote='sdcard/'
- push_file
- recovery
- fi
- rm "$Cartella_Script"'/OPO/furnace.html'
- echo 'http://forum.xda-developers.com/oneplus-one/orig-development/kernel-furnace-1-0-0-oneplus-one-t2817651'
- echo 'Guida a cura di savoca'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- ak_kernel () {
- Md5_File=(
- '189eac3b076cc84202d3b256a2ead0fd'
- '64ba8faab7492f84ed660c927da6881f'
- 'b4fdc66dbfd271a8cd12264248e90115'
- '314d7fff7447a30a34cc0ad5769465ec'
- '042c8785974eccaedaa525766bfb9235'
- 'c6e99ee5e4328198ad023285da83aecf'
- 'c90895fa898638100ca9c6bb32f6de82'
- '62d7c2a2acf5b20e1125b37f74edf965'
- 'd273d68dcc0205d32a9b02cd36100948'
- '0546df6249afac827c9b44753a4fb8af'
- '97bd2434a7565d1ac1e2e5a58a132e12'
- '8f74bb9e5285403a2cffe4414e2b84ca'
- 'd804d74c0adeb1a954711f1271bee1d7'
- 'a46ff59c348ce33f097458d15242dc79'
- '230d4f712c98df14826e8c3bcc0db13d'
- 'd54ab7d63e1ec8411d207bda269a779a'
- '9193422998925abacd6c9084744ee22c'
- 'dfb693d465a9f0f4bdb51bf7e4b15e3d'
- '1291f594a8fc1eca41e264f6201e625f'
- 'd22229d39700319c00ac4a0bf6d09f5f'
- 'aedcd6a3b87ba32336e7cc1b9e861af3'
- '8c42a591d5ebe03b66466ad00a5cf5a2'
- 'fd08a9522bf970e72bb848f029ca6bf8'
- 'dc26092871638ba19e2140aaf0cf9f6d'
- '9d7891f9fc02413fec6b9e90d800d551'
- 'd92d5d80489749b15f3d52b2bce128e1'
- '9da41430804c316572d1198075115fd1'
- 'e4f3f6b54bd4b7f8b49875d06e71aef6'
- '53c844bca771f341da9c3fe4096236c9'
- '307939ddc1980de62044b162ddb467e1'
- '616a6aa1f02072aa36b4f139ffc32783'
- '02a1706d9fc2be3fe8c5ea0348e4fdfc'
- '1d3978af5dbf360bc220d829cbf53977'
- 'fdf2f65352e76b7bc03e34d250655072'
- 'f25d94b9e0f9faade24a5695ca10e321'
- '6345a992c4f3a64d81d71b4b85b255b7'
- '866f6b5576affc476c47446bc153fe8e'
- '2df48033f60e6ea033dd04d2a2062def'
- 'fa358f7972c55d068384097c9adf81c6'
- '5f96b06fe4b663aa49db1cc5a77739e9'
- 'ac67cea9d264e13d7a25d5f6f21f2f9f'
- '41751cc7ac43e0ea31b64a7c609d563a'
- '5d9f3723ed2b86ea1b1553feb52869e5'
- 'd207376aab3bc58f6f13b787ab6ff2b8'
- '3d8b28a9840792caddf52677072ad6aa'
- '682fe3102c6ad49cf5cf7c12b9b26b54'
- 'd3243a748ec4c24989e106835a16271a'
- '7c1d71992a561ceeeb953f980eb8659f'
- '871b518a1c3460dd5afe205459e2878c'
- 'dd73be0428d1a7f84c02c02b61583a0a'
- 'd8d07725bd3a9cb55e4140b36dff866a'
- '7d3ba9bab6c743f3d89c50c8ce07fa44'
- '45499a96b7c5c6141a700124eef01e11'
- 'd9699ed9f52f1f2be2bad32d63781ad8'
- '4d42e0a19130f9f72a96e6127c12f843'
- '493c403666567937550057640406ff02'
- '27ef4a808f1ad8da4647b153f1b73a8d'
- '71f36cbc949f56ed6208c1f39ea52a97'
- 'fbfdcbaa1aa8dc06250c5ad42cc66348'
- 'd54ab7d63e1ec8411d207bda269a779a'
- 'd54ab7d63e1ec8411d207bda269a779a'
- '2e733aa909dbf9021fa3867863d8bcbc'
- )
- Link='http://ak.hiddenbytes.org/OPO.php'
- wget "$Link" -O "$Cartella_Script"'/OPO/ak1.html'
- Link='http://ak.hiddenbytes.org'
- wget "$Link" -O "$Cartella_Script"'/OPO/ak2.html'
- cat "$Cartella_Script"'/OPO/ak1.html' "$Cartella_Script"'/OPO/ak2.html' > "$Cartella_Script"'/OPO/ak.html'
- rm "$Cartella_Script"'/OPO/ak1.html'
- rm "$Cartella_Script"'/OPO/ak2.html'
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/ak.html' | sed -e 's/</\n&/g' | grep '.zip' | cut -d '"' -f 2`
- Temp_Name_File=`cat "$Cartella_Script"'/OPO/ak.html' | sed -e 's/</\n&/g' | grep '.zip' | cut -d '>' -f 2`
- Count_Link_File=`echo "${Temp_Link_File[0]}" | grep -c '.zip'`
- Count=0
- Menu=''
- Link='http://ak.hiddenbytes.org'
- Cartella="$Cartella_Script"'/OPO/AKKERNEL/'
- while [ "x${Temp_Link_File[0]}" != "x" ]
- do
- Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
- Link_File[Count]=`echo "${Link_File[Count]:1}"`
- Link_File[Count]=`echo "$Link""${Link_File[Count]}"`
- Count_Link_File=$(( $Count_Link_File - 1 ))
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
- Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | tail -n "$Count_Link_File"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='06:) Furnace Kernel'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- File_Local="$Cartella""${Name_File[SCELTA - 1]}"
- File_Remoto="${Link_File[SCELTA - 1]}"
- File_Md5="${Md5_File[SCELTA - 1]}"
- download_file
- check_md5
- File_Remote='sdcard/'
- push_file
- recovery
- fi
- rm "$Cartella_Script"'/OPO/ak.html'
- echo 'https://forums.oneplus.net/threads/kernel-opo-4-4-4-3-4-0-cc4-7-aosp-cm11-cm11s-ak-kernel.73719/'
- echo 'Guida a cura di pablomoreno'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- ##################################################
- sensei_kernel () {
- Link='https://www.androidfilehost.com/?w=files&flid=18201'
- wget "$Link" -O "$Cartella_Script"'/OPO/sensei.html'
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/sensei.html' | grep 'list-group-item-heading' | cut -d '"' -f 4`
- Temp_Name_File=`cat "$Cartella_Script"'/OPO/sensei.html' | grep 'list-group-item-heading' | cut -d '>' -f 3 | cut -d '<' -f 1`
- Count_Link_File=`echo "${Temp_Name_File[0]}" | grep -c '.zip'`
- Count=0
- Menu=''
- Link='https://www.androidfilehost.com'
- Cartella="$Cartella_Script"'/OPO/SENSEIKERNEL/'
- while [ "x${Temp_Link_File[0]}" != "x" ]
- do
- Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
- Link_File[Count]=`echo "$Link""${Link_File[Count]}"`
- Count_Link_File=$(( $Count_Link_File - 1 ))
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
- Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | tail -n "$Count_Link_File"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='06:) Sensei Kernel'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- File_Local="$Cartella""${Name_File[SCELTA - 1]}"
- File_Remoto="${Link_File[SCELTA - 1]}"
- wget "$File_Remoto" -O "$Cartella_Script"'/OPO/parziale.html'
- File_Md5=`cat "$Cartella_Script"'/OPO/parziale.html' | grep 'md5' -A 1 | cut -d '>' -f 3 | cut -d '<' -f 1 | tail -n 1`
- Link='https://www.androidfilehost.com/libs/otf/mirrors.otf.php'
- Link2="$File_Remoto"
- Post_Data='submit=submit&action=getdownloadmirrors&'
- Fid=`echo "$Link2" | cut -d '?' -f 2`
- wget "$Link" --referer="$Link2" --post-data="$Post_Data""$Fid" -O "$Cartella_Script"'/OPO/parziale.html'
- File_Remoto=`cat "$Cartella_Script"'/OPO/parziale.html' | grep 'http:' | head -n 1 | cut -d '"' -f 58 | sed -e 's/[\]//g'`
- download_file
- check_md5
- rm "$Cartella_Script"'/OPO/parziale.html'
- File_Remote='sdcard/'
- push_file
- recovery
- fi
- rm "$Cartella_Script"'/OPO/sensei.html'
- echo 'https://forums.oneplus.net/threads/kernel-sabermod-4-8-aosp-cm11s-sensei-kernel.115306/'
- echo 'Guida a cura di Wongher'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- boeffla_kernel () {
- Link='http://www.boeffla-kernel.de/index.php/downloads-oneplus-one'
- wget "$Link" -O "$Cartella_Script"'/OPO/boeffla.html'
- Temp_Link_File=`echo 'http://boeffla.df-kunde.de/bc' && cat "$Cartella_Script"'/OPO/boeffla.html'| sed -e 's/</\n&/g' | grep 'bacon' | cut -d '"' -f 2`
- Count_Link_File=`echo "${Temp_Link_File[0]}" | grep -c 'http://'`
- Count=0
- Menu=''
- Cartella="$Cartella_Script"'/OPO/BOEFFLAKERNEL/'
- while [ "x${Temp_Link_File[0]}" != "x" ]
- do
- Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- if [ "${Link_File[Count]: -1}" != '/' ]; then
- Link_File[Count]=`echo "${Link_File[Count]}"'/'`
- fi
- Count_Link_File=$(( $Count_Link_File - 1 ))
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Link_File[Count - 1]}""\n"`
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='06:) Boeffla Kernel'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- Count=0
- Link="${Link_File[SCELTA - 1]}"
- Menu=''
- wget "$Link" -O "$Cartella_Script"'/OPO/parziale1.html'
- sed -i 's|<a href="|<a href="'"$Link"'|g' "$Cartella_Script"'/OPO/parziale1.html'
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/parziale1.html'| sed -e 's/</\n&/g' | grep '\[DIR\]' -A 1 | grep -v '\[DIR\]' | cut -d '"' -f 2`
- if [ -z "$Temp_Link_File" ]; then
- mv "$Cartella_Script"'/OPO/parziale1.html' "$Cartella_Script"'/OPO/parziale.html'
- rm "$Cartella_Script"'/OPO/parziale1.html'
- else
- Link="$Temp_Link_File"
- wget "$Link" -O "$Cartella_Script"'/OPO/parziale2.html'
- sed -i 's|<a href="|<a href="'"$Link"'|g' "$Cartella_Script"'/OPO/parziale2.html'
- cat "$Cartella_Script"'/OPO/parziale2.html' "$Cartella_Script"'/OPO/parziale1.html' > "$Cartella_Script"'/OPO/parziale.html'
- rm "$Cartella_Script"'/OPO/parziale1.html'
- rm "$Cartella_Script"'/OPO/parziale2.html'
- fi
- Temp_Link_File=`cat "$Cartella_Script"'/OPO/parziale.html'| sed -e 's/</\n&/g' | grep '\[ \]' -A 1 | grep 'href' | cut -d '"' -f 2`
- Temp_Md5_File=`echo "$Temp_Link_File"`
- Temp_Link_File=`echo "$Temp_Link_File" | grep -v '.checksum'`
- Temp_Name_File=`echo "$Temp_Link_File" | sed -e 's|.*/||g'`
- Count_Link_File=`echo "${Temp_Link_File[0]}" | grep -c 'http://'`
- while [ "x${Temp_Name_File[0]}" != "x" ]
- do
- Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
- Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
- Count_Link_File=$(( $Count_Link_File - 1 ))
- Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
- Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | tail -n "$Count_Link_File"`
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
- done
- Count=$(( $Count + 1 ))
- Menu=`echo "$Menu""$Count"') Esci'"\n"`
- while true; do
- Testata='06:) Boeffla Kernel'
- testata
- echo -e "$Menu"
- read -p 'Cosa vuoi scaricare? ' SCELTA
- if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
- break
- else
- continue
- fi
- done
- if [ "$SCELTA" == "$Count" ]; then
- continue
- else
- File_Local="$Cartella""${Name_File[SCELTA - 1]}"
- File_Remoto="${Link_File[SCELTA - 1]}"
- File_Md5=`echo "$Temp_Md5_File" | grep "$File_Remoto".checksum`
- download_file
- if [ -z "$File_Md5" ]; then
- continue
- else
- wget "$File_Md5" -O "$Cartella_Script"'/OPO/parziale.html'
- File_Md5=`cat "$Cartella_Script"'/OPO/parziale.html' | cut -d ' ' -f 1`
- check_md5
- fi
- Tipo=`echo "$File_Local" | grep ".zip"`
- File_Remote='sdcard/'
- push_file;
- if [ -z "$Tipo" ]; then
- echo 'Applicazione installata'
- adb install "$File_Local"
- else
- recovery;
- fi
- fi
- fi
- rm "$Cartella_Script"'/OPO/boeffla.html'
- echo 'https://forums.oneplus.net/threads/kernel-bacon-cm11s-boeffla-kernel.140637/'
- echo 'Guida a cura di pablomoreno'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- avalon_kernel () {
- echo 'Progetto sospeso? i link sembrano morti'
- echo 'https://forums.oneplus.net/threads/kernel-cm11-cm11s-sm-avalon-kernel.171555/'
- echo 'Guida a cura di Wongher'
- read -p 'Premi [INVIO] per continuare...' PAUSA
- }
- while true; do
- read -p '1) Devo controllare che ADB e fastboot funzionino correttamente? ' SCELTA
- case $SCELTA in
- #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
- [Ss]* ) android_debug_bridge; break;;
- [Nn]* ) break;;
- * ) echo 'Rispondi con si o no.';;
- esac
- done
- while true; do
- Testata='06:) Kernel'
- testata
- echo '01:) Franco Kernel'
- echo '02:) Furnace Kernel'
- echo '03:) AK Kernel'
- echo '04:) Sensei Kernel'
- echo '05:) Boeffla Kernel'
- echo '06:) Avalon Kernel'
- echo '07:) Esci'
- read -p 'Scegli? ' SCELTA
- case $SCELTA in
- 1 ) franco_kernel; break;;
- 2 ) furnace_kernel; break;;
- 3 ) ak_kernel; break;;
- 4 ) sensei_kernel; break;;
- 5 ) boeffla_kernel; break;;
- 6 ) avalon_kernel; break;;
- 7 ) break;;
- * ) ;;
- esac
- done
- }
- #factory_setting () {
- #}
- #backup () {
- #}
- #report () {
- #}
- while true; do
- Testata='MENU PRINCIPALE'
- testata
- echo '01:) Montare lo OnePlus One come archivio di massa'
- echo '02:) Controllo Android Debug Bridge'
- echo '03:) Controllo Sblocco Bootloader e Tamper Bit'
- echo '04:) Recovery'
- echo '05:) Root'
- echo '06:) Kernel'
- echo '07:) Factory Setting'
- echo '08:) Backup'
- echo '09:) Reportistica'
- echo '10:) Esci'
- read -p 'Scegli? ' SCELTA
- case $SCELTA in
- 1 ) montare_archivio;;
- 2 ) android_debug_bridge;;
- 3 ) check_adb_fastboot_tamper;;
- 4 ) recovery;;
- 5 ) root;;
- 6 ) kernel;;
- 7 ) factory_setting;;
- 8 ) backup;;
- 9 ) report;;
- 9 ) break;;
- * ) ;;
- esac
- done
- }
- :<<COMMENTBLOCK
- INIZIO DELLO SCRIPT
- COMMENTBLOCK
- #Come prima operazione controllo che bash supporti gli array
- Messaggio='BASH NON SUPPORTA GLI ARRAY' || errore
- #Versione dello script
- Versione='1.0'
- Testata='FASE DI INIZIALIZZAZIONE'
- testata;
- #Alloco un array con gli SO supportati dallo script
- Versione_Linux=(
- 'Ubuntu 14.04.1 LTS' #L'indice per referenziarlo è 0
- )
- #Determino l'SO attualmente in esecuzione
- versione_linux=`lsb_release -a | grep 'Description' | cut -f 2`
- #Controllo che l'SO in uso sia gestito dallo script
- Array="$Versione_Linux"
- Elemento="$versione_linux"
- ricerca;
- if [ "$Index" == "-1" ]; then
- Messaggio='SISTEMA OPERATIVO NON SUPPORTATO'
- errore
- fi
- Indice_SO="$Index"
- #Ora vedo se la periferica è inserita e determino l'"$Id_Vendor" e l'"$Id_Product"
- #Schema di lsusb
- #Bus 002 Device 003: ID 0bda:5801 Realtek Semiconductor Corp.
- #Bus 002 Device 006: ID 05c6:6765 Qualcomm, Inc.
- #Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
- #Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- #Bus 001 Device 003: ID 8086:0186 Intel Corp. WiMAX Connection 2400m
- #Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
- #Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- read -p 'Attacca OnePlus ad una porta usb. Premi [INVIO] per continuare...' PAUSA
- Lsusb_OnePlus=`lsusb | grep 'Qualcomm, Inc.' | cut -d ' ' -f 6`
- if [ -z "$Lsusb_OnePlus" ]; then
- Messaggio='SEMBRA CHE TU NON ABBIA CONNESSO IL DISPOSITIVO'
- errore
- fi
- Id_Vendor=`echo "${Lsusb_OnePlus[0]}" | cut -d ':' -f 1`
- Id_Product=`echo "${Lsusb_OnePlus[0]}" | cut -d ':' -f 2`
- #Ora estraggo il "$Serial_Number"
- #Schema di dmesg:
- #[ 503.065691] usb 2-1.1: new high-speed USB device number 4 using ehci-pci
- #[ 503.160741] usb 2-1.1: New USB device found, idVendor=05c6, idProduct=6765
- #[ 503.160749] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
- #[ 503.160755] usb 2-1.1: Product: A0001
- #[ 503.160759] usb 2-1.1: Manufacturer: OnePlus
- #[ 503.160764] usb 2-1.1: SerialNumber: 946a10ce
- #grep "stringadaricercare" -m occorrenza -A prendirighedopo -B prendirigheprima
- Dmesg_OnePlus=`dmesg | grep 'idVendor='"$Id_Vendor"', idProduct='"$Id_Product" -m 1 -A 4 -B 1`
- Serial_Number=`echo "${Dmesg_OnePlus[0]}" | grep 'SerialNumber:' | cut -d ':' -f 3 | cut -d ' ' -f 2`
- echo 'Versione Linux: '"$versione_linux"
- echo 'ID Vendor: '"$Id_Vendor"
- echo 'ID Product: '"$Id_Product"
- echo 'Serial Number: '"$Serial_Number"
- #Creo le cartelle
- Cartella_Script=`pwd`
- Cartella="$Cartella_Script"'/OPO'
- cartella;
- Cartella="$Cartella_Script"'/OPO/TOOLS'
- cartella;
- Cartella="$Cartella_Script"'/OPO/RECOVERY'
- cartella;
- Cartella="$Cartella_Script"'/OPO/ROOT/'
- cartella;
- Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/'
- cartella;
- Cartella="$Cartella_Script"'/OPO/FURNACEKERNEL/'
- cartella;
- Cartella="$Cartella_Script"'/OPO/AKKERNEL/'
- cartella;
- Cartella="$Cartella_Script"'/OPO/SENSEIKERNEL/'
- cartella;
- Cartella="$Cartella_Script"'/OPO/BOEFFLAKERNEL/'
- cartella;
- read -p 'Premi [INVIO] per continuare...' PAUSA
- #Controllo ora che tutti i pacchetti siano installati
- first_menu;
- #Menu principale
- main_menu;
- :<<COMMENTBLOCK
- ROUTINE DA IMPLEMENTARE
- Folder_Script=`pwd`
- Folder_Backup="$Folder_Script"'/PARTITION_BKP/'
- echo -n "$Folder_Backup"
- if [ -d "$Folder_Backup" ]; then
- echo ' already exist'
- else
- echo ' create'
- mkdir "$Folder_Backup"
- fi
- #adb reboot recovery
- sh -c 'timeout 60 adb wait-for-device'
- read -p 'Press [ENTER] for continue...' PAUSE
- By_Name=`adb shell ls -la /dev/block/platform/msm_sdcc.1/by-name | grep '/dev/block/'`
- Count=`echo "$By_Name" | grep -c '/dev/block/'`
- echo ";$By_Name;"
- while [ "x${By_Name[0]}" != "x" ]
- do
- OF=`echo "$By_Name" | sed -e 's| ||g' | cut -d ' ' -f 7 | head -n 1`
- IF=`echo "$By_Name" | sed -e 's| ||g' | cut -d ' ' -f 9 | head -n 1`
- echo ";$IF;"
- echo ";$OF;"
- read -p "$OF"' backup it? (yn)' ANSWER
- if [ "$ANSWER" == 'y' ]; then
- adb shell 'dd if='"${IF:0: -1}"' of=/sdcard/'"$OF"'.img' 'bs=4096'
- adb pull '/sdcard/'"$OF"'.img' "$Folder_Backup""$OF"'.img'
- md5sum "$Folder_Backup""$OF"'.img' >> "$Folder_Backup"'img.md5'
- fi
- Count=$(( $Count - 1 ))
- By_Name=`echo "${By_Name[0]}" | tail -n "$Count"`
- done
- read -p 'Press [ENTER] for continue...' PAUSE
- # ls '/dev/block/platform/msm_sdcc.1'
- #for a in `ls '/dev/block/platform/msm_sdcc.1' | grep 'mmcblk0' | grep -v 'mmcblk0p28' | tail -n 29`; do
- md5sum /dev/block/$a >>/sdcard/partition.md5.txt;done
- #cat '/sdcard/partition.md5.txt'
- COMMENTBLOCK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement