Advertisement
Guest User

TOOLKITOPO

a guest
Feb 15th, 2015
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.19 KB | None | 0 0
  1. #!/bin/bash
  2. :<<COMMENTBLOCK
  3. ROUTINE GENERALIZZATE
  4. COMMENTBLOCK
  5. #Pulisce e stampa a video una testata
  6. #Riceve in ingresso la "$Versione" e la "$Testata"
  7. testata () {
  8. clear
  9. echo 'Script a cura di Moroboshi_84, versione in uso: '"$Versione"
  10. echo 'Per commenti, o consigli visita il sito:'
  11. echo 'https://forums.oneplus.net/threads/problema-come-determinare-se-si-ha-una-partizione-danneggiata.199841/'
  12. echo 'Menu: '"$Testata"
  13. }
  14. #Stampa a video una messaggio d'errore e ferma l'esecuzione dello script
  15. #Riceve in ingresso il "$Messaggio"
  16. errore () {
  17. echo 'ERRORE: '"$Messaggio" && exit 2
  18. }
  19. #Ricerca un elemento all'interno di una array
  20. #Mi scorro tutto l'array, in "$Count" c'è il numero di elementi del vettore in "$Index" dove è presente l'elemento ricercato
  21. #Se vale -1 vuol dire che non è stato trovato
  22. #Riceve in ingresso "$Array" ed "$Elemento"
  23. ricerca () {
  24. Count=0
  25. Index=-1
  26.  
  27. while [ "x${Array[Count]}" != "x" ]
  28. do
  29. if [ "${Array[Count]}" == "$Elemento" ]; then
  30. Index=$Count
  31. fi
  32. Count=$(( $Count + 1 ))
  33. done
  34. }
  35. #Verifica se una cartella esiste altrimenti la crea
  36. #Riceve in ingresso "$Cartella"
  37. cartella () {
  38. echo -n "$Cartella"
  39. if [ -d "$Cartella" ]; then
  40. echo ' già creata'
  41. else
  42. echo ' da creare'
  43. mkdir "$Cartella"
  44. fi
  45. }
  46. #Verifica se una file esiste altrimenti la scarica
  47. #Riceve in ingresso "$File_Local", "$File_Remoto"
  48. download_file () {
  49. echo -n "$File_Local"
  50. if [ -f "$File_Local" ]; then
  51. echo ' già scaricato'
  52. else
  53. echo ' scaricato'
  54. wget -c "$File_Remoto" -O "$File_Local"
  55. fi
  56. }
  57. check_md5 () {
  58. echo -n "$File_Local"
  59. Check_Md5=`md5sum "$File_Local" | grep "$File_Md5"`
  60. if [ -z "$Check_Md5" ]; then
  61. echo ' MD5 KO, provvedo alla cancellazione'
  62. rm "$File_Local"
  63. else
  64. echo ' MD5 OK'
  65. fi
  66. }
  67. :<<COMMENTBLOCK
  68. ROUTINE DI FUNZIONI ADB
  69. Comandi adb:
  70. adb devices lista dispositivi connessi
  71. adb push <local> <remote> copia un file sul dispositivo
  72. adb pull <remote> <local> copia un file sul computer
  73. adb sync <directory> sincronizza la cartella locale e quella del dispositivo
  74. adb shell <command> esegue un comando sul dispositivo
  75. adb logcat stampa log dispositivo
  76. adb install [-l] [-r] [-s] <file> installa un apk (-l blocca l'app) (-r reinstalla l'app) (-s installa sulla SD)
  77. adb uninstall [-k] <package> disinstalla un apk (-k mantiene i dati e la cache)
  78. adb bugreport restituisce tutte le informazioni del dispositivo
  79. adb backup [-f <file>] [-apk|-noapk] crea un backup (-f sposta il backup in un altra cartella) (-apk|-noapk include/esclude le app)
  80. [-shared|-noshared] [-all] (-shared|-noshared include/esclude contenuto SD) (-all include tutte le app installate)
  81. [-system|-nosystem] <packages...> (-system|-nosystem include/esclude app di sistema) (lista dei pacchetti da includere nel backup)
  82. adb restore <file> ripristina il file del backup
  83. adb wait-for-device aspetta che il dispositivo sia online
  84. adb start-server fa partire il servizio adb
  85. adb kill-server stoppa il servizio adb
  86. adb reboot [bootloader|recovery] riavvia il dispositivo (bootloader o recovery)
  87. Comandi fastboot:
  88. fastboot flash <partition> <filename> scrive un file in una partizione
  89. fastboot erase <partition> cancella e formatta una partizione
  90. fastboot -w cancella e formatta le partizioni userdata e cache (wipe)
  91. fastboot devices lista dispositivi connessi
  92. fastboot reboot riavvia il dispositivo
  93. fastboot reboot-bootloader riavvia nel bootloader
  94. COMMENTBLOCK
  95. #Questa funzione aspetta finchè adb non sia attivo, passati 5 secondi passa all'operazione successiva
  96. adb_aspetta_dispositivo () {
  97. echo 'Aspetta...'
  98. #timeout secondi comando da lanciare
  99. #Allo scadere del tempo, se il comando non ha finito l'esecuzione, passa all'istruzione successiva
  100. sh -c 'timeout 5 adb wait-for-device'
  101. }
  102. #Questa funzione riavvia il servizio ADB
  103. adb_riavvia_server () {
  104. echo 'Sto riavviando il servizio ADB'
  105. #Schema adb start-server
  106. #* daemon not running. starting it now on port 5037 *
  107. #* daemon started successfully *
  108. sudo adb kill-server > /dev/null
  109. sudo adb start-server > /dev/null
  110. }
  111. #Questa funzione controlla che il dispositivo connesso sia riconosciuto su ADB, in caso contrario riavvia il servizio
  112. #In ingresso necessita del "$Serial_Number"
  113. adb_riconoscimento_dispositivo () {
  114. adb_aspetta_dispositivo;
  115. #Schema adb devices
  116. #List of devices attached
  117. #946a10ce device
  118. Adb_Devices=`adb devices | grep "$Serial_Number"' device'`
  119. if [ -z "$Adb_Devices" ]; then
  120. echo 'Dispositivo non riconosciuto da adb, tento di rilanciare'
  121. adb_riavvia_server
  122. adb_aspetta_dispositivo
  123. Adb_Devices=`sudo adb devices > /dev/null | grep "$Serial_Number"' device'`
  124. if [ -z "$Adb_Devices" ]; then
  125. Messaggio='ADB NON RICONOSCE IL DISPOSITIVO'
  126. errore
  127. fi
  128. fi
  129. echo 'Dispositivo riconosciuto da adb'
  130. }
  131. #Questa funzione controlla che il dispositivo connesso sia riconosciuto su fastboot
  132. #In ingresso necessita del "$Serial_Number"
  133. fastboot_riconoscimento_dispositivo () {
  134. #Schema fastboot devices
  135. #946a10ce fastboot
  136. Fastboot_Devices=`sudo fastboot devices | grep "$Serial_Number"' fastboot'`
  137. if [ -z "$Fastboot_Devices" ]; then
  138. Messaggio='FASTBOOT NON RICONOSCE IL DISPOSITIVO'
  139. errore
  140. else
  141. echo 'Dispositivo riconosciuto da fastboot'
  142. fi
  143. }
  144. #Questa funzione fa riavviare in fastboot
  145. #In ingresso necessita del "$Serial_Number", da passare alla funzione figlio
  146. adb_riavvio_bootloader () {
  147. adb_aspetta_dispositivo;
  148. echo 'Riavvio il bootloader, se vedi "Fastboot Mode", ADB funziona correttamente'
  149. Adb_Bootloader=`adb reboot bootloader 2>&1`
  150. if [ "$Adb_Bootloader" == "error: device not found" ]; then
  151. Messaggio='ADB NON TROVA IL DISPOSITIVO'
  152. errore
  153. fi
  154. sleep 5
  155. fastboot_riconoscimento_dispositivo "$Serial_Number";
  156. sleep 5
  157. }
  158. #Questa funzione fa riavviare in recovery
  159. adb_riavvio_recovery () {
  160. echo 'Riavvio il dispositivo in recovery'
  161. adb reboot recovery > /dev/null
  162. echo 'Sul dispositivo: '
  163. echo 'Se sei su TWRP Recovery clicca su Install -> selezionare il file -> Swipe to Confirm Flash -> Reboot system'
  164. echo 'Se sei su Cyanogen Recovery cliccando su "apply update" -> "Choose from internal storage" -> "0" -> seleziona il file'
  165. echo 'L'"'"'update non andrà a buon fine... Reboot system now'
  166. echo 'nel menù principale, seleziona: 04:) Recovery'
  167. }
  168. #Questa funzione fa riavviare il dispositivo da fastboot a system
  169. fastboot_riavvio_dispositivo () {
  170. #Schema fastboot reboot
  171. #rebooting...
  172. #
  173. #finished. total time: 0.005s
  174. echo 'Riavvio il telefono'
  175. sudo fastboot reboot > /dev/null 2>&1
  176. }
  177. #Questa funzione recupera i bit device tampered e unlocked
  178. fastboot_oem_device () {
  179. #Schema fastboot oem device-info
  180. #...
  181. #(bootloader) Device tampered: true
  182. #(bootloader) Device unlocked: false
  183. #(bootloader) Charger screen enabled: false
  184. #OKAY [ 0.005s]
  185. #finished. total time: 0.005s
  186. #Redirigo stderr su stdout 2>&1
  187. Fastboot_Oem_Device_Info=`sudo fastboot oem device-info 2>&1 | grep '(bootloader)'`
  188. Device_Tampered=`echo "${Fastboot_Oem_Device_Info[0]}" | grep 'Device tampered:'| cut -d ':' -f 2 | cut -d ' ' -f 2`
  189. Device_Unlocked=`echo "${Fastboot_Oem_Device_Info[0]}" | grep 'Device unlocked:'| cut -d ':' -f 2 | cut -d ' ' -f 2`
  190. }
  191. #Questa funzione controlla che il bit "$Device_Unlocked", non valga false, altrimenti esegue lo sblocco
  192. #In ingresso necessita del "$Device_Unlocked"
  193. sblocco_bootloader () {
  194. if [ "$Device_Unlocked" == "false" ]; then
  195. echo 'Attenzione: Bootloader bloccato!'
  196. while true; do
  197. echo '01:) Sblocco metodo classico (Attenzione cancella i dati personali)'
  198. echo '02:) Sblocco senza perdita dei dati personali'
  199. echo '03:) Esci'
  200. read -p 'Scegli? ' SCELTA
  201. case $SCELTA in
  202. 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;;
  203. 2 ) tamper_bit; break;;
  204. 3 ) break;;
  205. * ) ;;
  206. esac
  207. done
  208. else
  209. echo 'Bootloader già sbloccato'
  210. tamper_bit
  211. fi
  212. }
  213. #Questa funzione copia un file nel dispositivo
  214. #In ingresso necessita del "$File_Local" e "$File_Remote"
  215. push_file () {
  216. echo 'Sto copiando il file ' "$File_Local"' sul dispositivo'
  217. adb push "$File_Local" "$File_Remote" > /dev/null
  218. sleep 5
  219. }
  220. :<<COMMENTBLOCK
  221. FUNZIONI
  222. COMMENTBLOCK
  223. #Controlla che tutte le dipendeze siano soddisfatte
  224. #In ingresso "$Indice_SO"
  225. first_menu () {
  226. check_dependence () {
  227. #Creare una funzione per ogni SO gestito, redirigo su /dev/null i risultati del comando lanciato
  228. check_dependence_ubuntu () {
  229. Lista_Pacchetti_Ubuntu=(
  230. 'android-tools-adb'
  231. 'android-tools-fastboot'
  232. 'libmtp-common'
  233. 'mtp-tools'
  234. 'libmtp-dev'
  235. 'libmtp-runtime'
  236. 'libmtp9'
  237. )
  238. echo '1: Sto aggiornando il sistema'
  239. sudo apt-get update > /dev/null
  240. sudo apt-get upgrade > /dev/null
  241. echo '2: Sto verificando il pacchetto: '
  242. Count=0
  243. while [ "x${Lista_Pacchetti_Ubuntu[Count]}" != "x" ]
  244. do
  245. Verifica_Pacchetto=`dpkg -l | grep "${Lista_Pacchetti_Ubuntu[Count]}"`
  246. if [ -z "$Verifica_Pacchetto" ]; then
  247. echo -n 'installato: '
  248. sudo apt-get install "${Lista_Pacchetti_Ubuntu[Count]}" > /dev/null
  249. else
  250. echo -n 'già installato: '
  251. fi
  252. echo "${Lista_Pacchetti_Ubuntu[Count]};"
  253. Count=$(( $Count + 1 ))
  254. done
  255.  
  256. echo '3: Faccio un pò di pulizia sul sistema'
  257. sudo apt-get remove > /dev/null
  258. sudo apt-get autoremove > /dev/null
  259. sudo apt-get purge > /dev/null
  260. sudo apt-get clean > /dev/null
  261. sudo apt-get autoclean > /dev/null
  262. sudo apt-get check > /dev/null
  263.  
  264. echo '4: Rimuovo i pacchetti orfani'
  265. sudo apt-get remove --purge `deborphan` > /dev/null
  266. echo '5: Rimuovo i pacchetti rimossi ma non purgati'
  267. sudo aptitude purge ~ c > /dev/null
  268. }
  269. #Inserire la voce corrispondente per la chiamata alla funzione dell'SO da gestire
  270. case "$Indice_SO" in
  271. 0 ) check_dependence_ubuntu;;
  272. 1 ) break;;
  273. * ) echo 'ERRORE';;
  274. esac
  275. }
  276. while true; do
  277. read -p 'Controllo se hai installato tutti i pacchetti? ' SCELTA
  278. case $SCELTA in
  279. #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
  280. [Ss]* ) check_dependence; break;;
  281. [Nn]* ) break;;
  282. * ) echo 'Rispondi con si o no.';;
  283. esac
  284. done
  285. read -p 'Premi [INVIO] per continuare...' PAUSA
  286. }
  287.  
  288. main_menu () {
  289. #Questa funzione fa si che l'OPO sia montabile come archivio di massa
  290. #In ingresso "$Indice_SO", "$Id_Vendor" e "$Id_Product"
  291. montare_archivio () {
  292. Testata='01:) Montare lo OnePlus One come archivio di massa'
  293. testata;
  294. #Redirigo su /dev/null i risultati del comando lanciato
  295. #INIZIO-Inserire il percorso dei file per ogni SO
  296. Path_File_Fuse=(
  297. '/etc/fuse.conf' #L'indice per referenziarlo è 0
  298. )
  299. Path_File_Mtp_Rules=(
  300. '/lib/udev/rules.d/69-mtp.rules' #L'indice per referenziarlo è 0
  301. )
  302. Path_File_Android=(
  303. '/etc/udev/rules.d/51-android.rules' #L'indice per referenziarlo è 0
  304. )
  305. #FINE-Inserire il percorso dei file per ogni SO
  306. File_Fuse_Conf=`sudo cat "${Path_File_Fuse["$Indice_SO"]}" | grep '#user_allow_other'`
  307. echo -n '1): #user_allow_other nel file '"${Path_File_Fuse["$Indice_SO"]}"
  308. if [ -z "$File_Fuse_Conf" ]; then
  309. echo ' già disasteriscato'
  310. else
  311. echo ' disasteriscato'
  312. #sed -i "s/vecchiastringa/nuovastringa/g" file
  313. sudo sed -i 's/#user_allow_other/user_allow_other/g' "${Path_File_Fuse["$Indice_SO"]}"
  314. fi
  315.  
  316. #Schema della stringa da inserire nel file $Path_File_Mtp_Rules
  317. #ATTR{idVendor}=="idVendor", ATTR{idProduct}=="idProduct", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1",
  318. #ENV{ID_MEDIA_PLAYER}="1"[/#SIZE][/INDENT]
  319. Mtp_Rules='# OnePlus_One
  320. 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]'
  321.  
  322. File_69_Mtp_Rules=`sudo cat "${Path_File_Mtp_Rules["$Indice_SO"]}" | grep 'ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'"'`
  323. echo -n '2): Mtp rules nel file '"${Path_File_Mtp_Rules["$Indice_SO"]}"
  324. if [ -z "$File_69_Mtp_Rules" ]; then
  325. echo ' aggiornato'
  326. #accodo nel file la stringa prima creata
  327. echo "$Mtp_Rules" | sudo tee -a "${Path_File_Mtp_Rules["$Indice_SO"]}"
  328. else
  329. echo ' già aggiornato'
  330. fi
  331.  
  332. #Schema della stringa da inserire nel file $Path_File_Android
  333. #ATTR{idVendor}=="idVendor", ATTR{idProduct}=="idProduct", MODE=”0666"
  334. Android_Rules='# OnePlus_One
  335. ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'", MODE=”0666"'
  336.  
  337. File_51_Android_Rules=`sudo cat "${Path_File_Android["$Indice_SO"]}" | grep 'ATTR{idVendor}=="'"$Id_Vendor"'", ATTR{idProduct}=="'"$Id_Product"'"'`
  338. echo -n '3): Android rules nel file '"${Path_File_Android["$Indice_SO"]}"
  339. if [ -z "$File_51_Android_Rules" ]; then
  340. echo ' aggiornato'
  341. #accodo nel file la stringa prima creata
  342. echo "$Android_Rules" | sudo tee -a "${Path_File_Android["$Indice_SO"]}"
  343. else
  344. echo ' già aggiornato'
  345. fi
  346.  
  347. echo '4): Riavvio il servizio udev'
  348. sudo service udev restart > /dev/null
  349. echo '5): Disinserire ed inserire il dispositivo nell'"'"'USB'
  350. echo 'https://forums.oneplus.net/threads/guida-montare-lo-oneplus-one-come-archivio-di-massa-su-ubuntu.62172/'
  351. echo 'Guida a cura di pablomoreno'
  352. read -p 'Premi [INVIO] per continuare...' PAUSA
  353. }
  354. #Questa funzione controlla che il dispositivo sia riconosciuto su ADB e fastboot
  355. #Ingresso "$Serial_Number"
  356. android_debug_bridge () {
  357. Testata='02:) Controllo Android Debug Bridge'
  358. testata;
  359. echo '1) Sul telefono:'
  360. echo '2) Impostazioni'
  361. echo '3) Info sul telefono'
  362. echo '4) Premete 7 volte su Numero build. Vedrete un piccolo pop-up che dice "Hai attivato le opzioni sviluppatore!"'
  363. echo '5) Tornate nel menu Impostazioni e scorrete in basso fino a Opzioni sviluppatore'
  364. echo '6) Abilitate Debug Android'
  365. echo '7A) Premere su OK, alla comparsa del pop-up "Consentire debug USB?"'
  366. echo '7B) Flaggare "Consenti sempre da questo computer" (potrebbe non presentarsi ora)'
  367. echo '7C) Premere su OK (potrebbe non presentarsi ora)'
  368. read -p 'Premi [INVIO] per continuare...' PAUSA
  369. echo -n '8) '
  370. adb_riconoscimento_dispositivo;
  371. echo -n '9) '
  372. adb_riavvio_bootloader;
  373. echo -n '10) '
  374. fastboot_riavvio_dispositivo;
  375. echo 'https://forums.oneplus.net/threads/guida-ubuntu-oneplus-one-sbloccare-il-bootloader-installare-twrp-e-supersu.55935/'
  376. echo 'Guida a cura di nguser'
  377. read -p 'Premi [INVIO] per continuare...' PAUSA
  378. }
  379. #Questa funzione controlla i bit tampered e unlocked
  380. check_adb_fastboot_tamper () {
  381. tamper_bit () {
  382. ripristino_tamper_bit () {
  383. File_Remote='sdcard/'
  384. push_file;
  385. recovery;
  386. }
  387. fastboot_riavvio_dispositivo;
  388. read -p 'Premi [INVIO] appena il telefono si è riavviato...' PAUSA
  389. File_Local="$Cartella_Script"'/OPO/TOOLS/OnePlusOne-BootUnlocker.zip'
  390. File_Remoto='http://forum.xda-developers.com/attachment.php?attachmentid=2859187&d=1405749374'
  391. File_Md5='54fe23cf33b01cd8ff297da2623d432f'
  392. download_file;
  393. check_md5;
  394. while true; do
  395. read -p 'Attenzione vuoi ripristinare il tamper bit? ' SCELTA
  396. case $SCELTA in
  397. [Ss]* ) ripristino_tamper_bit; break;;
  398. [Nn]* ) break;;
  399. * ) echo 'Rispondi con si o no.';;
  400. esac
  401. done
  402. echo 'http://forum.xda-developers.com/oneplus-one/development/mod-reset-unlock-tamper-bit-t2820912'
  403. echo 'Guida a cura di Mnt-XDA'
  404. read -p 'Premi [INVIO] per continuare...' PAUSA
  405. }
  406. Testata='03:) Controllo Sblocco Bootloader e Tamper Bit'
  407. testata;
  408. while true; do
  409. read -p '1) Devo controllare che ADB e fastboot funzionino correttamente? ' SCELTA
  410. case $SCELTA in
  411. #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
  412. [Ss]* ) android_debug_bridge; break;;
  413. [Nn]* ) break;;
  414. * ) echo 'Rispondi con si o no.';;
  415. esac
  416. done
  417.  
  418. echo -n '2) '
  419. adb_riavvio_bootloader;
  420. echo '3) Ora controllo i bit device tampered, unlocked siano settati correttamente'
  421. fastboot_oem_device;
  422. echo '4) Device_Unlocked: '"$Device_Unlocked"
  423. echo '5) Device_Tampered: '"$Device_Tampered"
  424. sblocco_bootloader;
  425. }
  426. recovery () {
  427. recovery_TWRP () {
  428. Link='http://techerrata.com/browse/twrp2/bacon'
  429. wget "$Link" -O "$Cartella_Script"'/OPO/twrp2.html'
  430. 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`
  431. #Valorizzo l'array dei link e dei nomifile
  432. Count=0
  433. Menu=''
  434. while [ "x${Temp_Link_File[0]}" != "x" ]
  435. do
  436. Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  437. Name_File[Count]=`echo "${Link_File[Count]}" | cut -d "/" -f 7`
  438. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | grep -v "${Link_File[Count]}"`
  439. Count=$(( $Count + 1 ))
  440. Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
  441. done
  442.  
  443. Temp_Md5_File=`cat "$Cartella_Script"'/OPO/twrp2.html' | grep "MD5:" | cut -d ":" -f 2 | cut -d "<" -f 1 | cut -d " " -f2`
  444. #Valorizzo l'array degli md5
  445. Count=0
  446. while [ "x${Temp_Md5_File[0]}" != "x" ]
  447. do
  448. Md5_File[Count]=`echo "${Temp_Md5_File[0]}" | head -n 1`
  449. Temp_Md5_File[0]=`echo "${Temp_Md5_File[0]}" | grep -v "${Md5_File[Count]}"`
  450. Count=$(( $Count + 1 ))
  451. done
  452.  
  453. Count=$(( $Count + 1 ))
  454. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  455.  
  456. while true; do
  457. Testata='04:) Recovery TWRP2'
  458. testata
  459. echo -e "$Menu"
  460. read -p 'Cosa vuoi scaricare? ' SCELTA
  461. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  462. break
  463. else
  464. continue
  465. fi
  466. done
  467. if [ "$SCELTA" == "$Count" ]; then
  468. continue
  469. else
  470. File_Local="$Cartella_Script"'/OPO/RECOVERY/'"${Name_File[SCELTA - 1]}"
  471. File_Remoto="${Link_File[SCELTA - 1]}"
  472. File_Md5="${Md5_File[SCELTA - 1]}"
  473. download_file
  474. check_md5
  475.  
  476. while true; do
  477. echo '01:) Flash della recovery'
  478. echo '02:) Boot della recovery'
  479. echo '03:) Esci'
  480. read -p 'Scegli? ' SCELTA
  481. case $SCELTA in
  482. 1 ) adb_riavvio_bootloader; sudo fastboot flash recovery "$File_Local"; echo 'Aspetta l'"'"'avvio di TWRP2';;
  483. 2 ) adb_riavvio_bootloader; sudo fastboot boot "$File_Local"; echo 'Aspetta l'"'"'avvio di TWRP2';;
  484. 3 ) break;;
  485. * ) ;;
  486. esac
  487. done
  488. fi
  489. rm "$Cartella_Script"'/OPO/twrp2.html'
  490. }
  491. while true; do
  492. Testata='04:) Recovery'
  493. testata
  494. echo '01:) TWRP2'
  495. echo '02:) Riavvio in recovery'
  496. echo '03:) Esci'
  497. read -p 'Scegli? ' SCELTA
  498. case $SCELTA in
  499. 1 ) recovery_TWRP; break;;
  500. 2 ) adb_riavvio_recovery; break;;
  501. 3 ) break;;
  502. * ) ;;
  503. esac
  504. done
  505.  
  506. read -p 'Premi [INVIO] per continuare...' PAUSA
  507. }
  508. root () {
  509. Testata='05:) Root'
  510. testata
  511. while true; do
  512. read -p '1) Devo controllare che ADB e fastboot funzionino correttamente? ' SCELTA
  513. case $SCELTA in
  514. #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
  515. [Ss]* ) android_debug_bridge; break;;
  516. [Nn]* ) break;;
  517. * ) echo 'Rispondi con si o no.';;
  518. esac
  519. done
  520. Link='http://download.chainfire.eu/supersu'
  521. wget "$Link" -O "$Cartella_Script"'/OPO/supersu.html'
  522. File_Remoto=`cat "$Cartella_Script"'/OPO/supersu.html' | grep 'UPDATE-SuperSU-' | cut -d '"' -f 4`
  523. Name_File=`cat "$Cartella_Script"'/OPO/supersu.html' | grep 'UPDATE-SuperSU-' | cut -d '<' -f 2 | cut -d '>' -f 2`
  524. File_Local="$Cartella_Script"'/OPO/ROOT/'"$Name_File"
  525. File_Md5='20d95246299cb7446d025d4df1bd2fa5'
  526. download_file
  527. check_md5
  528. File_Remote='sdcard/'
  529. while true; do
  530. read -p 'Attenzione vuoi copiare SuperSU? ' SCELTA
  531. case $SCELTA in
  532. [Ss]* ) push_file; recovery; break;;
  533. [Nn]* ) break;;
  534. * ) echo 'Rispondi con si o no.';;
  535. esac
  536. done
  537. rm "$Cartella_Script"'/OPO/supersu.html'
  538. echo 'https://forums.oneplus.net/threads/guida-ubuntu-oneplus-one-sbloccare-il-bootloader-installare-twrp-e-supersu.55935/'
  539. echo 'Guida a cura di nguser'
  540. read -p 'Premi [INVIO] per continuare...' PAUSA
  541. }
  542. kernel () {
  543. franco_kernel () {
  544. Md5_File_1=(
  545. '4ce77e7503dd2b5d9d6c97631bae4561'
  546. '735a8d1602e3032f6aef2e8d44136fdb'
  547. 'ba9fa1fa3f5e87f6b8415f5e5425498d'
  548. '989a9d1d37bbae500f4a0dcb88ba8715'
  549. '086cbe9d63e99c625420845046c839ee'
  550. 'dc99c3e96e797794f151ec7ea4ad9166'
  551. '3f39bc29d4d9cdd79287084daa64a55b'
  552. '4ae4bf98447b35beea07e77a0b2b2d11'
  553. 'bcd042cfe646cc2326ef5f34dc42c080'
  554. 'e2ca7f8667dfb98d0d5685b0227b250e'
  555. '91c7cbb1cfe244034a6fd631ca25be4c'
  556. 'eab795cc831a7da834eb1a7f1c5af501'
  557. '0d346a7302768cf1acf4db2beaf5d61c'
  558. '0f19dcbba5eb4ca0412cef33cf8d1859'
  559. 'ffee04eeed9b6a4a37dc639d09e17702'
  560. '8ed964213d64cd715d57a67513fb32af'
  561. '429c02847eead9f80cf30ee059845546'
  562. 'd3013cc3f53d1a82c5efb77dfa62081c'
  563. 'e5a0dc3a0ecc35d6f8e658fbf842767d'
  564. 'e34dc2f0155234448cdbf1fa1c4c13eb'
  565. 'a53ce10de9c7523d901e6af066727bce'
  566. '553d878f42d49fcaaaa3e00c9756cc1d'
  567. 'cc7d76dc5720adb9c6f877e0b593062a'
  568. '68fae1c09c31d052c041ffc89d3c969e'
  569. '9f07fb089e9bfafbed377fdaedbc0b98'
  570. 'bd4fa6cdc38d3aec3a4e2f742e2885fe'
  571. '66e46ff646043b0c0468c3e41158360b'
  572. '5aeff80be7060fffbcd055e8f2e8b505'
  573. '8592233a034eb25f3b3b4b2f220ee018'
  574. 'bc91e57a5d0e71ff19ac0554dd428fc7'
  575. '29e168ce206c55dbb910061f2e1f70f4'
  576. '83faf4252296821c148d04d9ed9b5aaa'
  577. '612de6864a6019ddd34f141c4064cdb8'
  578. 'b58329613201360fc34d93338f1c1705'
  579. '921d2e857b5f77acc4cc28f4a772e621'
  580. )
  581. Md5_File_2=(
  582. 'c9844b3d41c3365d8bc0e7e638ac87ab'
  583. '7173ce78d926f1c85ec33f0840747ee2'
  584. '11816f3c957dfd6a2a9c9c898da920a8'
  585. 'e83baec484ec4be233836cead6792608'
  586. '1be097cfdc7e9cf32d2535508dadb043'
  587. '7a80941806bb6204b60f6319d9aed487'
  588. '970defa78dc8b2cd96418feda3aa1ebb'
  589. '3e37acf0e3f235bbea4d1b3a6fe1136c'
  590. '54b1da67a6b563d18ba1ee57eae3c931'
  591. '76546e296d9b86ec6849a126da6823fd'
  592. 'a5e8e24be3b0460cfc4a952bad8a714e'
  593. '8a905536b5c1a706546ad3ca33e5687e'
  594. '16d936fbce5eca512b9c0b635e95ed9a'
  595. '40da444c34eb41410a2a1c65f7c654c0'
  596. '16e87e4afc64333141613f4ef39d5e63'
  597. 'edb7f8b9f54e395c2c6e413030315e57'
  598. 'b949208298d0ffb45dce229c3f921c8e'
  599. 'd51162d5806b072517b470d5da512f93'
  600. '3b1a2780d177aabae6de996a32f2618e'
  601. '623c3127fef807ec1a866750db75ec36'
  602. '048e9826ef0445a6a7683928aed15f4f'
  603. 'a771803cbde03347ae7feb094520ca5c'
  604. 'c4ab9c95d61c5b628a447f767aef917b'
  605. '2c49575a82f0dafc79b016c0f0ac7f31'
  606. '49993975e84abf31a40fc0166e4fe092'
  607. '08e95121771ea07273fd78c1d7d90319'
  608. '211656cffc610e02afd08417ad73a949'
  609. '6b7df617dfe25cc96011747647e96f23'
  610. '68432805c3328742b62a488fe1973390'
  611. 'c80ed94dba1c01fc1d4dcf3893333bbf'
  612. '37a1c1f05801d958243a893984fef4c7'
  613. 'fd20b29e9a8d31ddf16d15760eb6d8c0'
  614. '593dc52e8e57b8f75d160c6237a7b5e7'
  615. 'eec8d339424f646abbf315de08151e8c'
  616. '7585f0bc3109ec0e920826f99b747ca6'
  617. )
  618. Md5_File_3=(
  619. '5fb29e4f5237ec904b4dc6dc5cbaea53'
  620. '3b38014af6caa9040dfdf0ccb8c1b557'
  621. '98900e6fbd451630be6658d3d369298a'
  622. '262ab0b1b88896ba51dfef4e40f0ff61'
  623. 'ef886a28d9c65a811498ef9ca95ec338'
  624. 'bec2b702cd767c67ef595dfe72760062'
  625. 'e572ced85b66b747722d28794566d777'
  626. '2036635f3908b9b58846f5cf4183a7b6'
  627. '13047ce5c73c2a7002ca8984b164d657'
  628. 'd875ade09a400ae9aed655a118968371'
  629. 'afd77f2bbc2837e266a4418a753e0bf9'
  630. 'f19fa714987cd2b359b6309ed3761772'
  631. '69fdaf35335625c64be9382d7f698a0a'
  632. '3b64edcd2f773f21f0b7c32f094fe6da'
  633. '68fae1c09c31d052c041ffc89d3c969e'
  634. '9f07fb089e9bfafbed377fdaedbc0b98'
  635. 'bd4fa6cdc38d3aec3a4e2f742e2885fe'
  636. '66e46ff646043b0c0468c3e41158360b'
  637. '5aeff80be7060fffbcd055e8f2e8b505'
  638. '8592233a034eb25f3b3b4b2f220ee018'
  639. 'bc91e57a5d0e71ff19ac0554dd428fc7'
  640. '29e168ce206c55dbb910061f2e1f70f4'
  641. '83faf4252296821c148d04d9ed9b5aaa'
  642. '612de6864a6019ddd34f141c4064cdb8'
  643. 'b58329613201360fc34d93338f1c1705'
  644. '921d2e857b5f77acc4cc28f4a772e621'
  645. )
  646. Md5_File_4=(
  647. '1a50de972ee68f769a4815c33c76db8d'
  648. 'd502fa6404073bbec04901fb59d8d6b8'
  649. '28ed5006f5d56327192ce2aa6804ee3e'
  650. '2ba58adbd79a670e10cea3ba2ccf21a8'
  651. '6a802b095f3b113d31b86cf57f108a7b'
  652. '36ca069ed90d0375580a0d8129215ccf'
  653. '473798825f7231d71042152583cefb05'
  654. 'ecc25ad455f1fec5a28f610e1e5d226d'
  655. 'd175f406def5220b9e8acd411f728190'
  656. '40d9567b45e4ca5a784e1f01c19c1728'
  657. '030d2f7832ed24e1e991a400873c5c8d'
  658. 'f2659653d4c7d5f5344643003368f941'
  659. 'fc6fb5b9cb9d7563604bd07a7f902c1f'
  660. 'c9dd71684f1b53ed59fc76d147d6374d'
  661. '2c49575a82f0dafc79b016c0f0ac7f31'
  662. '49993975e84abf31a40fc0166e4fe092'
  663. '08e95121771ea07273fd78c1d7d90319'
  664. '211656cffc610e02afd08417ad73a949'
  665. '6b7df617dfe25cc96011747647e96f23'
  666. '68432805c3328742b62a488fe1973390'
  667. 'c80ed94dba1c01fc1d4dcf3893333bbf'
  668. '37a1c1f05801d958243a893984fef4c7'
  669. 'fd20b29e9a8d31ddf16d15760eb6d8c0'
  670. '593dc52e8e57b8f75d160c6237a7b5e7'
  671. 'eec8d339424f646abbf315de08151e8c'
  672. '7585f0bc3109ec0e920826f99b747ca6'
  673. )
  674. while true; do
  675. Testata='06:) Franco Kernel'
  676. testata
  677. echo '01:) CM11S boot image'
  678. echo '02:) CM11S zip'
  679. echo '03:) ROM AOSP boot image'
  680. echo '04:) ROM AOSP zip'
  681. echo '05:) Esci'
  682. read -p 'Scegli? ' SCELTA
  683. case $SCELTA in
  684. 1 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/CM11S/'; Md5_File="$Md5_File_1"; break;;
  685. 2 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/zips/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/CM11S/'; Md5_File="$Md5_File_2"; break;;
  686. 3 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/aosp/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/AOSP/'; Md5_File="$Md5_File_3"; break;;
  687. 4 ) Link='http://kernels.franco-lnx.net/OnePlusOne/4.4/aosp/zips/'; Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/AOSP/'; Md5_File="$Md5_File_4"; break;;
  688. 5 ) break;;
  689. * ) ;;
  690. esac
  691. done
  692. if [ "$SCELTA" == "5" ]; then
  693. continue
  694. else
  695. cartella
  696. wget "$Link" -O "$Cartella_Script"'/OPO/franco.html'
  697. Temp_Link_File=`cat "$Cartella_Script"'/OPO/franco.html' | grep 'boot-' | cut -d '"' -f 8`
  698. if [ -z "$Temp_Link_File"]; then
  699. Temp_Link_File=`cat "$Cartella_Script"'/OPO/franco.html' | grep 'franco.Kernel-nightly-' | cut -d '"' -f 8`
  700. fi
  701. Count=0
  702. Menu=''
  703. while [ "x${Temp_Link_File[0]}" != "x" ]
  704. do
  705. Name_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  706. Link_File[Count]=`echo "$Link""${Name_File[Count]}"`
  707. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | grep -v "${Name_File[Count]}"`
  708. Count=$(( $Count + 1 ))
  709. Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
  710. done
  711. Count=$(( $Count + 1 ))
  712. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  713.  
  714. while true; do
  715. Testata='06:) Franco Kernel'
  716. testata
  717. echo -e "$Menu"
  718. read -p 'Cosa vuoi scaricare? ' SCELTA
  719. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  720. break
  721. else
  722. continue
  723. fi
  724. done
  725. if [ "$SCELTA" == "$Count" ]; then
  726. continue
  727. else
  728. File_Local="$Cartella""${Name_File[SCELTA - 1]}"
  729. File_Remoto="${Link_File[SCELTA - 1]}"
  730. File_Md5="${Md5_File[SCELTA - 1]}"
  731. download_file
  732. check_md5
  733. Tipo=`echo "$File_Local" | grep ".zip"`
  734. if [ -z "$Tipo" ]; then
  735. adb_riavvio_bootloader
  736. sudo fastboot flash boot "$File_Local"
  737. sleep 5
  738. fastboot_riavvio_dispositivo
  739. else
  740. File_Remote='sdcard/'
  741. push_file;
  742. recovery;
  743. fi
  744. fi
  745. fi
  746. rm "$Cartella_Script"'/OPO/franco.html'
  747. echo 'https://forums.oneplus.net/threads/kernel-kernel-di-francisco-franco-per-oneplus-one.45619/'
  748. echo 'Guida a cura di Sparkolo'
  749. read -p 'Premi [INVIO] per continuare...' PAUSA
  750. }
  751. furnace_kernel () {
  752. Md5_File=(
  753. '8d6cf2e2df4f564844ca27562858ff57'
  754. '2ce7c46ab2aa73fc2658b71dc811ef6a'
  755. 'f507ccd1aa0c2df53e8c1ce732628120'
  756. 'd722920f8d525899ee37db2813c5ba36'
  757. 'f91eeacba82c79490aba1bfe7c1d46b4'
  758. '170a0a9a952ecd94dab9b097fabc5388'
  759. '69f520ec22b853da90e0ee61d9b8abb4'
  760. 'f5a600f770b3c4f70b8a18667ed180fc'
  761. 'c19f7633fcb61680a7e8137d0bdcd878'
  762. 'e9434847195601e8a087beafb626c87e'
  763. '217a2ce653f8f7cd6d03c38599dfa371'
  764. 'b43d962a8e02c3a4c25205041d4811aa'
  765. '07c3efca4797fe7aac2b77ade6644f66'
  766. '3ed6567e7b48f047fb9db23e69b0e215'
  767. 'f1604b17c534d4e4ffa5d92545008cde'
  768. '43d9bbb3b793ae64e4b79aaf27ad83e3'
  769. '1e80ef95011c1bbd41b952d57c828368'
  770. '91706e0414007530a28f009a3950117e'
  771. '42844a025e1d22b71524d0605cc28a6f'
  772. '38a190c9ad3951e1f30cc7c7f4eb710d'
  773. '19694aad3275065ad574adca0efb6abd'
  774. '7b5e73e2edd27fee744c8b166da2c62b'
  775. '887d6d4482ea04cdbacd332da1801a77'
  776. '04d1ee25bf8bc47ea85a1fafaaf61162'
  777. '29dc21004b26bdab74f3f49b8b6e4303'
  778. '27a5bd9c754a876cc9d0bb0c7a29ea6c'
  779. 'c755d6509af21fafefe3c3401abf7405'
  780. '6006d84c9f7f04935d9931204373805e'
  781. )
  782. Link='http://downloads.codefi.re/savoca/furnace/bacon/old'
  783. wget "$Link" -O "$Cartella_Script"'/OPO/furnace1.html'
  784. Link='http://downloads.codefi.re/savoca/furnace/bacon'
  785. wget "$Link" -O "$Cartella_Script"'/OPO/furnace2.html'
  786. cat "$Cartella_Script"'/OPO/furnace1.html' "$Cartella_Script"'/OPO/furnace2.html' > "$Cartella_Script"'/OPO/furnace.html'
  787. rm "$Cartella_Script"'/OPO/furnace1.html'
  788. rm "$Cartella_Script"'/OPO/furnace2.html'
  789. Temp_Link_File=`cat "$Cartella_Script"'/OPO/furnace.html' | grep '.zip' | cut -d "'" -f 6`
  790. Temp_Name_File=`cat "$Cartella_Script"'/OPO/furnace.html' | grep '.zip' | cut -d "'" -f 2`
  791. Count=0
  792. Menu=''
  793. Link='http://downloads.codefi.re'
  794. Cartella="$Cartella_Script"'/OPO/FURNACEKERNEL/'
  795. while [ "x${Temp_Link_File[0]}" != "x" ]
  796. do
  797. Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  798. Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
  799. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | grep -v "${Link_File[Count]}"`
  800. Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | grep -v "${Name_File[Count]}"`
  801. Link_File[Count]=`echo "$Link""${Link_File[Count]}"`
  802. Count=$(( $Count + 1 ))
  803. Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
  804. done
  805.  
  806. Count=$(( $Count + 1 ))
  807. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  808. while true; do
  809. Testata='06:) Furnace Kernel'
  810. testata
  811. echo -e "$Menu"
  812. read -p 'Cosa vuoi scaricare? ' SCELTA
  813. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  814. break
  815. else
  816. continue
  817. fi
  818. done
  819. if [ "$SCELTA" == "$Count" ]; then
  820. continue
  821. else
  822. File_Local="$Cartella""${Name_File[SCELTA - 1]}"
  823. File_Remoto="${Link_File[SCELTA - 1]}"
  824. wget "$File_Remoto" -O "$Cartella_Script"'/OPO/parziale.html'
  825. File_Remoto=`cat "$Cartella_Script"'/OPO/parziale.html' | grep 'href=' | cut -d '"' -f 2 | head -n 1`
  826. File_Remoto=`echo "$Link""$File_Remoto"`
  827. File_Md5="${Md5_File[SCELTA - 1]}"
  828. download_file
  829. check_md5
  830. rm "$Cartella_Script"'/OPO/parziale.html'
  831. File_Remote='sdcard/'
  832. push_file
  833. recovery
  834. fi
  835. rm "$Cartella_Script"'/OPO/furnace.html'
  836. echo 'http://forum.xda-developers.com/oneplus-one/orig-development/kernel-furnace-1-0-0-oneplus-one-t2817651'
  837. echo 'Guida a cura di savoca'
  838. read -p 'Premi [INVIO] per continuare...' PAUSA
  839. }
  840. ak_kernel () {
  841. Md5_File=(
  842. '189eac3b076cc84202d3b256a2ead0fd'
  843. '64ba8faab7492f84ed660c927da6881f'
  844. 'b4fdc66dbfd271a8cd12264248e90115'
  845. '314d7fff7447a30a34cc0ad5769465ec'
  846. '042c8785974eccaedaa525766bfb9235'
  847. 'c6e99ee5e4328198ad023285da83aecf'
  848. 'c90895fa898638100ca9c6bb32f6de82'
  849. '62d7c2a2acf5b20e1125b37f74edf965'
  850. 'd273d68dcc0205d32a9b02cd36100948'
  851. '0546df6249afac827c9b44753a4fb8af'
  852. '97bd2434a7565d1ac1e2e5a58a132e12'
  853. '8f74bb9e5285403a2cffe4414e2b84ca'
  854. 'd804d74c0adeb1a954711f1271bee1d7'
  855. 'a46ff59c348ce33f097458d15242dc79'
  856. '230d4f712c98df14826e8c3bcc0db13d'
  857. 'd54ab7d63e1ec8411d207bda269a779a'
  858. '9193422998925abacd6c9084744ee22c'
  859. 'dfb693d465a9f0f4bdb51bf7e4b15e3d'
  860. '1291f594a8fc1eca41e264f6201e625f'
  861. 'd22229d39700319c00ac4a0bf6d09f5f'
  862. 'aedcd6a3b87ba32336e7cc1b9e861af3'
  863. '8c42a591d5ebe03b66466ad00a5cf5a2'
  864. 'fd08a9522bf970e72bb848f029ca6bf8'
  865. 'dc26092871638ba19e2140aaf0cf9f6d'
  866. '9d7891f9fc02413fec6b9e90d800d551'
  867. 'd92d5d80489749b15f3d52b2bce128e1'
  868. '9da41430804c316572d1198075115fd1'
  869. 'e4f3f6b54bd4b7f8b49875d06e71aef6'
  870. '53c844bca771f341da9c3fe4096236c9'
  871. '307939ddc1980de62044b162ddb467e1'
  872. '616a6aa1f02072aa36b4f139ffc32783'
  873. '02a1706d9fc2be3fe8c5ea0348e4fdfc'
  874. '1d3978af5dbf360bc220d829cbf53977'
  875. 'fdf2f65352e76b7bc03e34d250655072'
  876. 'f25d94b9e0f9faade24a5695ca10e321'
  877. '6345a992c4f3a64d81d71b4b85b255b7'
  878. '866f6b5576affc476c47446bc153fe8e'
  879. '2df48033f60e6ea033dd04d2a2062def'
  880. 'fa358f7972c55d068384097c9adf81c6'
  881. '5f96b06fe4b663aa49db1cc5a77739e9'
  882. 'ac67cea9d264e13d7a25d5f6f21f2f9f'
  883. '41751cc7ac43e0ea31b64a7c609d563a'
  884. '5d9f3723ed2b86ea1b1553feb52869e5'
  885. 'd207376aab3bc58f6f13b787ab6ff2b8'
  886. '3d8b28a9840792caddf52677072ad6aa'
  887. '682fe3102c6ad49cf5cf7c12b9b26b54'
  888. 'd3243a748ec4c24989e106835a16271a'
  889. '7c1d71992a561ceeeb953f980eb8659f'
  890. '871b518a1c3460dd5afe205459e2878c'
  891. 'dd73be0428d1a7f84c02c02b61583a0a'
  892. 'd8d07725bd3a9cb55e4140b36dff866a'
  893. '7d3ba9bab6c743f3d89c50c8ce07fa44'
  894. '45499a96b7c5c6141a700124eef01e11'
  895. 'd9699ed9f52f1f2be2bad32d63781ad8'
  896. '4d42e0a19130f9f72a96e6127c12f843'
  897. '493c403666567937550057640406ff02'
  898. '27ef4a808f1ad8da4647b153f1b73a8d'
  899. '71f36cbc949f56ed6208c1f39ea52a97'
  900. 'fbfdcbaa1aa8dc06250c5ad42cc66348'
  901. 'd54ab7d63e1ec8411d207bda269a779a'
  902. 'd54ab7d63e1ec8411d207bda269a779a'
  903. '2e733aa909dbf9021fa3867863d8bcbc'
  904. )
  905. Link='http://ak.hiddenbytes.org/OPO.php'
  906. wget "$Link" -O "$Cartella_Script"'/OPO/ak1.html'
  907. Link='http://ak.hiddenbytes.org'
  908. wget "$Link" -O "$Cartella_Script"'/OPO/ak2.html'
  909. cat "$Cartella_Script"'/OPO/ak1.html' "$Cartella_Script"'/OPO/ak2.html' > "$Cartella_Script"'/OPO/ak.html'
  910. rm "$Cartella_Script"'/OPO/ak1.html'
  911. rm "$Cartella_Script"'/OPO/ak2.html'
  912. Temp_Link_File=`cat "$Cartella_Script"'/OPO/ak.html' | sed -e 's/</\n&/g' | grep '.zip' | cut -d '"' -f 2`
  913. Temp_Name_File=`cat "$Cartella_Script"'/OPO/ak.html' | sed -e 's/</\n&/g' | grep '.zip' | cut -d '>' -f 2`
  914. Count_Link_File=`echo "${Temp_Link_File[0]}" | grep -c '.zip'`
  915. Count=0
  916. Menu=''
  917. Link='http://ak.hiddenbytes.org'
  918. Cartella="$Cartella_Script"'/OPO/AKKERNEL/'
  919. while [ "x${Temp_Link_File[0]}" != "x" ]
  920. do
  921. Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  922. Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
  923. Link_File[Count]=`echo "${Link_File[Count]:1}"`
  924. Link_File[Count]=`echo "$Link""${Link_File[Count]}"`
  925. Count_Link_File=$(( $Count_Link_File - 1 ))
  926. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
  927. Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | tail -n "$Count_Link_File"`
  928. Count=$(( $Count + 1 ))
  929. Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
  930. done
  931. Count=$(( $Count + 1 ))
  932. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  933. while true; do
  934. Testata='06:) Furnace Kernel'
  935. testata
  936. echo -e "$Menu"
  937. read -p 'Cosa vuoi scaricare? ' SCELTA
  938. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  939. break
  940. else
  941. continue
  942. fi
  943. done
  944. if [ "$SCELTA" == "$Count" ]; then
  945. continue
  946. else
  947. File_Local="$Cartella""${Name_File[SCELTA - 1]}"
  948. File_Remoto="${Link_File[SCELTA - 1]}"
  949. File_Md5="${Md5_File[SCELTA - 1]}"
  950. download_file
  951. check_md5
  952. File_Remote='sdcard/'
  953. push_file
  954. recovery
  955. fi
  956. rm "$Cartella_Script"'/OPO/ak.html'
  957. echo 'https://forums.oneplus.net/threads/kernel-opo-4-4-4-3-4-0-cc4-7-aosp-cm11-cm11s-ak-kernel.73719/'
  958. echo 'Guida a cura di pablomoreno'
  959. read -p 'Premi [INVIO] per continuare...' PAUSA
  960. }
  961. ##################################################
  962. sensei_kernel () {
  963. Link='https://www.androidfilehost.com/?w=files&flid=18201'
  964. wget "$Link" -O "$Cartella_Script"'/OPO/sensei.html'
  965. Temp_Link_File=`cat "$Cartella_Script"'/OPO/sensei.html' | grep 'list-group-item-heading' | cut -d '"' -f 4`
  966. Temp_Name_File=`cat "$Cartella_Script"'/OPO/sensei.html' | grep 'list-group-item-heading' | cut -d '>' -f 3 | cut -d '<' -f 1`
  967. Count_Link_File=`echo "${Temp_Name_File[0]}" | grep -c '.zip'`
  968. Count=0
  969. Menu=''
  970. Link='https://www.androidfilehost.com'
  971. Cartella="$Cartella_Script"'/OPO/SENSEIKERNEL/'
  972. while [ "x${Temp_Link_File[0]}" != "x" ]
  973. do
  974. Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  975. Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
  976. Link_File[Count]=`echo "$Link""${Link_File[Count]}"`
  977. Count_Link_File=$(( $Count_Link_File - 1 ))
  978. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
  979. Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | tail -n "$Count_Link_File"`
  980. Count=$(( $Count + 1 ))
  981. Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
  982. done
  983. Count=$(( $Count + 1 ))
  984. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  985. while true; do
  986. Testata='06:) Sensei Kernel'
  987. testata
  988. echo -e "$Menu"
  989. read -p 'Cosa vuoi scaricare? ' SCELTA
  990. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  991. break
  992. else
  993. continue
  994. fi
  995. done
  996. if [ "$SCELTA" == "$Count" ]; then
  997. continue
  998. else
  999. File_Local="$Cartella""${Name_File[SCELTA - 1]}"
  1000. File_Remoto="${Link_File[SCELTA - 1]}"
  1001. wget "$File_Remoto" -O "$Cartella_Script"'/OPO/parziale.html'
  1002. File_Md5=`cat "$Cartella_Script"'/OPO/parziale.html' | grep 'md5' -A 1 | cut -d '>' -f 3 | cut -d '<' -f 1 | tail -n 1`
  1003. Link='https://www.androidfilehost.com/libs/otf/mirrors.otf.php'
  1004. Link2="$File_Remoto"
  1005. Post_Data='submit=submit&action=getdownloadmirrors&'
  1006. Fid=`echo "$Link2" | cut -d '?' -f 2`
  1007. wget "$Link" --referer="$Link2" --post-data="$Post_Data""$Fid" -O "$Cartella_Script"'/OPO/parziale.html'
  1008. File_Remoto=`cat "$Cartella_Script"'/OPO/parziale.html' | grep 'http:' | head -n 1 | cut -d '"' -f 58 | sed -e 's/[\]//g'`
  1009. download_file
  1010. check_md5
  1011. rm "$Cartella_Script"'/OPO/parziale.html'
  1012. File_Remote='sdcard/'
  1013. push_file
  1014. recovery
  1015. fi
  1016.  
  1017. rm "$Cartella_Script"'/OPO/sensei.html'
  1018. echo 'https://forums.oneplus.net/threads/kernel-sabermod-4-8-aosp-cm11s-sensei-kernel.115306/'
  1019. echo 'Guida a cura di Wongher'
  1020. read -p 'Premi [INVIO] per continuare...' PAUSA
  1021. }
  1022. boeffla_kernel () {
  1023. Link='http://www.boeffla-kernel.de/index.php/downloads-oneplus-one'
  1024. wget "$Link" -O "$Cartella_Script"'/OPO/boeffla.html'
  1025. 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`
  1026. Count_Link_File=`echo "${Temp_Link_File[0]}" | grep -c 'http://'`
  1027. Count=0
  1028. Menu=''
  1029. Cartella="$Cartella_Script"'/OPO/BOEFFLAKERNEL/'
  1030. while [ "x${Temp_Link_File[0]}" != "x" ]
  1031. do
  1032. Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  1033. if [ "${Link_File[Count]: -1}" != '/' ]; then
  1034. Link_File[Count]=`echo "${Link_File[Count]}"'/'`
  1035. fi
  1036. Count_Link_File=$(( $Count_Link_File - 1 ))
  1037. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
  1038. Count=$(( $Count + 1 ))
  1039. Menu=`echo "$Menu""$Count"') '"${Link_File[Count - 1]}""\n"`
  1040. done
  1041. Count=$(( $Count + 1 ))
  1042. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  1043. while true; do
  1044. Testata='06:) Boeffla Kernel'
  1045. testata
  1046. echo -e "$Menu"
  1047. read -p 'Cosa vuoi scaricare? ' SCELTA
  1048. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  1049. break
  1050. else
  1051. continue
  1052. fi
  1053. done
  1054. if [ "$SCELTA" == "$Count" ]; then
  1055. continue
  1056. else
  1057. Count=0
  1058. Link="${Link_File[SCELTA - 1]}"
  1059. Menu=''
  1060. wget "$Link" -O "$Cartella_Script"'/OPO/parziale1.html'
  1061. sed -i 's|<a href="|<a href="'"$Link"'|g' "$Cartella_Script"'/OPO/parziale1.html'
  1062. 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`
  1063. if [ -z "$Temp_Link_File" ]; then
  1064. mv "$Cartella_Script"'/OPO/parziale1.html' "$Cartella_Script"'/OPO/parziale.html'
  1065. rm "$Cartella_Script"'/OPO/parziale1.html'
  1066. else
  1067. Link="$Temp_Link_File"
  1068. wget "$Link" -O "$Cartella_Script"'/OPO/parziale2.html'
  1069. sed -i 's|<a href="|<a href="'"$Link"'|g' "$Cartella_Script"'/OPO/parziale2.html'
  1070. cat "$Cartella_Script"'/OPO/parziale2.html' "$Cartella_Script"'/OPO/parziale1.html' > "$Cartella_Script"'/OPO/parziale.html'
  1071. rm "$Cartella_Script"'/OPO/parziale1.html'
  1072. rm "$Cartella_Script"'/OPO/parziale2.html'
  1073. fi
  1074. Temp_Link_File=`cat "$Cartella_Script"'/OPO/parziale.html'| sed -e 's/</\n&/g' | grep '\[ \]' -A 1 | grep 'href' | cut -d '"' -f 2`
  1075. Temp_Md5_File=`echo "$Temp_Link_File"`
  1076. Temp_Link_File=`echo "$Temp_Link_File" | grep -v '.checksum'`
  1077. Temp_Name_File=`echo "$Temp_Link_File" | sed -e 's|.*/||g'`
  1078. Count_Link_File=`echo "${Temp_Link_File[0]}" | grep -c 'http://'`
  1079. while [ "x${Temp_Name_File[0]}" != "x" ]
  1080. do
  1081. Name_File[Count]=`echo "${Temp_Name_File[0]}" | head -n 1`
  1082. Link_File[Count]=`echo "${Temp_Link_File[0]}" | head -n 1`
  1083. Count_Link_File=$(( $Count_Link_File - 1 ))
  1084. Temp_Link_File[0]=`echo "${Temp_Link_File[0]}" | tail -n "$Count_Link_File"`
  1085. Temp_Name_File[0]=`echo "${Temp_Name_File[0]}" | tail -n "$Count_Link_File"`
  1086. Count=$(( $Count + 1 ))
  1087. Menu=`echo "$Menu""$Count"') '"${Name_File[Count - 1]}""\n"`
  1088. done
  1089. Count=$(( $Count + 1 ))
  1090. Menu=`echo "$Menu""$Count"') Esci'"\n"`
  1091. while true; do
  1092. Testata='06:) Boeffla Kernel'
  1093. testata
  1094. echo -e "$Menu"
  1095. read -p 'Cosa vuoi scaricare? ' SCELTA
  1096. if (( "$SCELTA" <= "$Count" && "$SCELTA" > "0")); then
  1097. break
  1098. else
  1099. continue
  1100. fi
  1101. done
  1102. if [ "$SCELTA" == "$Count" ]; then
  1103. continue
  1104. else
  1105. File_Local="$Cartella""${Name_File[SCELTA - 1]}"
  1106. File_Remoto="${Link_File[SCELTA - 1]}"
  1107. File_Md5=`echo "$Temp_Md5_File" | grep "$File_Remoto".checksum`
  1108. download_file
  1109. if [ -z "$File_Md5" ]; then
  1110. continue
  1111. else
  1112. wget "$File_Md5" -O "$Cartella_Script"'/OPO/parziale.html'
  1113. File_Md5=`cat "$Cartella_Script"'/OPO/parziale.html' | cut -d ' ' -f 1`
  1114. check_md5
  1115. fi
  1116. Tipo=`echo "$File_Local" | grep ".zip"`
  1117. File_Remote='sdcard/'
  1118. push_file;
  1119. if [ -z "$Tipo" ]; then
  1120. echo 'Applicazione installata'
  1121. adb install "$File_Local"
  1122. else
  1123. recovery;
  1124. fi
  1125. fi
  1126. fi
  1127. rm "$Cartella_Script"'/OPO/boeffla.html'
  1128. echo 'https://forums.oneplus.net/threads/kernel-bacon-cm11s-boeffla-kernel.140637/'
  1129. echo 'Guida a cura di pablomoreno'
  1130. read -p 'Premi [INVIO] per continuare...' PAUSA
  1131. }
  1132. avalon_kernel () {
  1133. echo 'Progetto sospeso? i link sembrano morti'
  1134. echo 'https://forums.oneplus.net/threads/kernel-cm11-cm11s-sm-avalon-kernel.171555/'
  1135. echo 'Guida a cura di Wongher'
  1136. read -p 'Premi [INVIO] per continuare...' PAUSA
  1137. }
  1138. while true; do
  1139. read -p '1) Devo controllare che ADB e fastboot funzionino correttamente? ' SCELTA
  1140. case $SCELTA in
  1141. #Nota per la visibilità del parametro, devo ripassarlo alla funzione figlio
  1142. [Ss]* ) android_debug_bridge; break;;
  1143. [Nn]* ) break;;
  1144. * ) echo 'Rispondi con si o no.';;
  1145. esac
  1146. done
  1147. while true; do
  1148. Testata='06:) Kernel'
  1149. testata
  1150. echo '01:) Franco Kernel'
  1151. echo '02:) Furnace Kernel'
  1152. echo '03:) AK Kernel'
  1153. echo '04:) Sensei Kernel'
  1154. echo '05:) Boeffla Kernel'
  1155. echo '06:) Avalon Kernel'
  1156. echo '07:) Esci'
  1157. read -p 'Scegli? ' SCELTA
  1158. case $SCELTA in
  1159. 1 ) franco_kernel; break;;
  1160. 2 ) furnace_kernel; break;;
  1161. 3 ) ak_kernel; break;;
  1162. 4 ) sensei_kernel; break;;
  1163. 5 ) boeffla_kernel; break;;
  1164. 6 ) avalon_kernel; break;;
  1165. 7 ) break;;
  1166. * ) ;;
  1167. esac
  1168. done
  1169. }
  1170. #factory_setting () {
  1171. #}
  1172. #backup () {
  1173. #}
  1174. #report () {
  1175. #}
  1176. while true; do
  1177. Testata='MENU PRINCIPALE'
  1178. testata
  1179. echo '01:) Montare lo OnePlus One come archivio di massa'
  1180. echo '02:) Controllo Android Debug Bridge'
  1181. echo '03:) Controllo Sblocco Bootloader e Tamper Bit'
  1182. echo '04:) Recovery'
  1183. echo '05:) Root'
  1184. echo '06:) Kernel'
  1185. echo '07:) Factory Setting'
  1186. echo '08:) Backup'
  1187. echo '09:) Reportistica'
  1188. echo '10:) Esci'
  1189. read -p 'Scegli? ' SCELTA
  1190. case $SCELTA in
  1191. 1 ) montare_archivio;;
  1192. 2 ) android_debug_bridge;;
  1193. 3 ) check_adb_fastboot_tamper;;
  1194. 4 ) recovery;;
  1195. 5 ) root;;
  1196. 6 ) kernel;;
  1197. 7 ) factory_setting;;
  1198. 8 ) backup;;
  1199. 9 ) report;;
  1200. 9 ) break;;
  1201. * ) ;;
  1202. esac
  1203. done
  1204. }
  1205. :<<COMMENTBLOCK
  1206. INIZIO DELLO SCRIPT
  1207. COMMENTBLOCK
  1208. #Come prima operazione controllo che bash supporti gli array
  1209. Messaggio='BASH NON SUPPORTA GLI ARRAY' || errore
  1210. #Versione dello script
  1211. Versione='1.0'
  1212. Testata='FASE DI INIZIALIZZAZIONE'
  1213. testata;
  1214. #Alloco un array con gli SO supportati dallo script
  1215. Versione_Linux=(
  1216. 'Ubuntu 14.04.1 LTS' #L'indice per referenziarlo è 0
  1217. )
  1218. #Determino l'SO attualmente in esecuzione
  1219. versione_linux=`lsb_release -a | grep 'Description' | cut -f 2`
  1220. #Controllo che l'SO in uso sia gestito dallo script
  1221. Array="$Versione_Linux"
  1222. Elemento="$versione_linux"
  1223. ricerca;
  1224. if [ "$Index" == "-1" ]; then
  1225. Messaggio='SISTEMA OPERATIVO NON SUPPORTATO'
  1226. errore
  1227. fi
  1228. Indice_SO="$Index"
  1229.  
  1230. #Ora vedo se la periferica è inserita e determino l'"$Id_Vendor" e l'"$Id_Product"
  1231. #Schema di lsusb
  1232. #Bus 002 Device 003: ID 0bda:5801 Realtek Semiconductor Corp.
  1233. #Bus 002 Device 006: ID 05c6:6765 Qualcomm, Inc.
  1234. #Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
  1235. #Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  1236. #Bus 001 Device 003: ID 8086:0186 Intel Corp. WiMAX Connection 2400m
  1237. #Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
  1238. #Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  1239. read -p 'Attacca OnePlus ad una porta usb. Premi [INVIO] per continuare...' PAUSA
  1240. Lsusb_OnePlus=`lsusb | grep 'Qualcomm, Inc.' | cut -d ' ' -f 6`
  1241.  
  1242. if [ -z "$Lsusb_OnePlus" ]; then
  1243. Messaggio='SEMBRA CHE TU NON ABBIA CONNESSO IL DISPOSITIVO'
  1244. errore
  1245. fi
  1246.  
  1247. Id_Vendor=`echo "${Lsusb_OnePlus[0]}" | cut -d ':' -f 1`
  1248. Id_Product=`echo "${Lsusb_OnePlus[0]}" | cut -d ':' -f 2`
  1249.  
  1250. #Ora estraggo il "$Serial_Number"
  1251. #Schema di dmesg:
  1252. #[ 503.065691] usb 2-1.1: new high-speed USB device number 4 using ehci-pci
  1253. #[ 503.160741] usb 2-1.1: New USB device found, idVendor=05c6, idProduct=6765
  1254. #[ 503.160749] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  1255. #[ 503.160755] usb 2-1.1: Product: A0001
  1256. #[ 503.160759] usb 2-1.1: Manufacturer: OnePlus
  1257. #[ 503.160764] usb 2-1.1: SerialNumber: 946a10ce
  1258. #grep "stringadaricercare" -m occorrenza -A prendirighedopo -B prendirigheprima
  1259. Dmesg_OnePlus=`dmesg | grep 'idVendor='"$Id_Vendor"', idProduct='"$Id_Product" -m 1 -A 4 -B 1`
  1260.  
  1261. Serial_Number=`echo "${Dmesg_OnePlus[0]}" | grep 'SerialNumber:' | cut -d ':' -f 3 | cut -d ' ' -f 2`
  1262.  
  1263. echo 'Versione Linux: '"$versione_linux"
  1264. echo 'ID Vendor: '"$Id_Vendor"
  1265. echo 'ID Product: '"$Id_Product"
  1266. echo 'Serial Number: '"$Serial_Number"
  1267. #Creo le cartelle
  1268. Cartella_Script=`pwd`
  1269. Cartella="$Cartella_Script"'/OPO'
  1270. cartella;
  1271. Cartella="$Cartella_Script"'/OPO/TOOLS'
  1272. cartella;
  1273. Cartella="$Cartella_Script"'/OPO/RECOVERY'
  1274. cartella;
  1275. Cartella="$Cartella_Script"'/OPO/ROOT/'
  1276. cartella;
  1277. Cartella="$Cartella_Script"'/OPO/FRANCOKERNEL/'
  1278. cartella;
  1279. Cartella="$Cartella_Script"'/OPO/FURNACEKERNEL/'
  1280. cartella;
  1281. Cartella="$Cartella_Script"'/OPO/AKKERNEL/'
  1282. cartella;
  1283. Cartella="$Cartella_Script"'/OPO/SENSEIKERNEL/'
  1284. cartella;
  1285. Cartella="$Cartella_Script"'/OPO/BOEFFLAKERNEL/'
  1286. cartella;
  1287. read -p 'Premi [INVIO] per continuare...' PAUSA
  1288. #Controllo ora che tutti i pacchetti siano installati
  1289. first_menu;
  1290. #Menu principale
  1291. main_menu;
  1292. :<<COMMENTBLOCK
  1293. ROUTINE DA IMPLEMENTARE
  1294. Folder_Script=`pwd`
  1295. Folder_Backup="$Folder_Script"'/PARTITION_BKP/'
  1296.  
  1297. echo -n "$Folder_Backup"
  1298. if [ -d "$Folder_Backup" ]; then
  1299. echo ' already exist'
  1300. else
  1301. echo ' create'
  1302. mkdir "$Folder_Backup"
  1303. fi
  1304.  
  1305. #adb reboot recovery
  1306. sh -c 'timeout 60 adb wait-for-device'
  1307. read -p 'Press [ENTER] for continue...' PAUSE
  1308.  
  1309. By_Name=`adb shell ls -la /dev/block/platform/msm_sdcc.1/by-name | grep '/dev/block/'`
  1310. Count=`echo "$By_Name" | grep -c '/dev/block/'`
  1311. echo ";$By_Name;"
  1312. while [ "x${By_Name[0]}" != "x" ]
  1313. do
  1314. OF=`echo "$By_Name" | sed -e 's| ||g' | cut -d ' ' -f 7 | head -n 1`
  1315. IF=`echo "$By_Name" | sed -e 's| ||g' | cut -d ' ' -f 9 | head -n 1`
  1316. echo ";$IF;"
  1317. echo ";$OF;"
  1318. read -p "$OF"' backup it? (yn)' ANSWER
  1319. if [ "$ANSWER" == 'y' ]; then
  1320. adb shell 'dd if='"${IF:0: -1}"' of=/sdcard/'"$OF"'.img' 'bs=4096'
  1321. adb pull '/sdcard/'"$OF"'.img' "$Folder_Backup""$OF"'.img'
  1322. md5sum "$Folder_Backup""$OF"'.img' >> "$Folder_Backup"'img.md5'
  1323. fi
  1324. Count=$(( $Count - 1 ))
  1325. By_Name=`echo "${By_Name[0]}" | tail -n "$Count"`
  1326. done
  1327. read -p 'Press [ENTER] for continue...' PAUSE
  1328. # ls '/dev/block/platform/msm_sdcc.1'
  1329. #for a in `ls '/dev/block/platform/msm_sdcc.1' | grep 'mmcblk0' | grep -v 'mmcblk0p28' | tail -n 29`; do
  1330. md5sum /dev/block/$a >>/sdcard/partition.md5.txt;done
  1331. #cat '/sdcard/partition.md5.txt'
  1332. COMMENTBLOCK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement