Ebbene si', ho perso i sorgenti di un mio programma (nello specifico Well DrawDown Test)
Purtroppo ho formattato il portatile e non mi sono accorto che il progetto non risiedeva in "workspace" (la directory di default per i progetti di Eclipse) ed ho perso il sorgente del progetto
Pero' ho ancora l'apk (o meglio e' ancora sul Play Store)
Per recuperare il codice ho proceduto cosi'
Si mette in una directory il file .apk e lo si rinomina in .zip, a questo punto di decomprime come un normale zip e si ottiene quanto segue
a questo punto si scarica il programma dex2jar e si esegue
dex2jar classes.dex
e' arrivato quindi il momento di decompilare il codice con java decompiler
si scompatta il pacchetto e si esegui
jd-gui
si apre quindi il file classes.dex.dex2jar e come per magia si ha il codice sorgente
non e' esattamente come lo ho scritto io perche' alcune variabili sono diventate identificativi numerici ma e' decisamente leggibile
A questo punto rimangono da estrarre i file xml utilizzando il programma apktool
Si digita
apktool d nome_file.apk nome_file
verra' generata una sottodirectory in cui sono contenuti tutti i file xml e il contenuto della directory /res
venerdì 22 febbraio 2013
giovedì 21 febbraio 2013
Connessione seriale HP 48GX
In questo post viene descritto come effettuare una connessione seriale con una calcolatrice HP48GX per effettuare l'upload di programmi
Non verra utilizzata la calcolatrice reale ma il suo emulatore Linux (x48) dato che non possiedo il cavo e dato che il simulatore si comporta esattamente come l'oggetto reale
Per prima cosa si deve settare la calcolatrice in Server Mode. Cio si ottiene premendo Shift Destro + tasto 1 (modalita' I/O) e selezionando con le frecce l'opzione Start Server dal menu
terminata questa operazione lo schermo sara' di questo tipo
Si passa quindi al lato client
La comunicazione avviene mediante il protocollo Kermit per cui si deve scaricare il pacchetto ckermit
apt-get install ckermit
si deve poi individuare sulla schermata dell'emulatore la porta di connessione (nel caso /dev/pts/1)
e si deve inserire la seguente serie di comandi
-------------------------------------------------------------------
/home/luca/) C-Kermit>set modem type direct
(/home/luca/) C-Kermit>set port ?No keywords match - oport
(/home/luca/) C-Kermit>set port /dev/pts/1
(/home/luca/) C-Kermit>set speed 9600
/dev/pts/1, 9600 bps
(/home/luca/) C-Kermit>set carrier-watch off
(/home/luca/) C-Kermit>set flow none
(/home/luca/) C-Kermit>set parity none
(/home/luca/) C-Kermit>set block 3
(/home/luca/) C-Kermit>set control prefix all
(/home/luca/) C-Kermit>set file type binary
(/home/luca/) C-Kermit>send /home/luca/BENO
(/home/luca/) C-Kermit>finish
-------------------------------------------------------------------
con il comando send si definisce il file del programma che si intende caricare sul calcolatore
con il comando finish la calcolatrice esce dal Server Mode e si puo' lanciare il programma secondo la normale procedura
Non verra utilizzata la calcolatrice reale ma il suo emulatore Linux (x48) dato che non possiedo il cavo e dato che il simulatore si comporta esattamente come l'oggetto reale
Per prima cosa si deve settare la calcolatrice in Server Mode. Cio si ottiene premendo Shift Destro + tasto 1 (modalita' I/O) e selezionando con le frecce l'opzione Start Server dal menu
terminata questa operazione lo schermo sara' di questo tipo
Si passa quindi al lato client
La comunicazione avviene mediante il protocollo Kermit per cui si deve scaricare il pacchetto ckermit
apt-get install ckermit
si deve poi individuare sulla schermata dell'emulatore la porta di connessione (nel caso /dev/pts/1)
e si deve inserire la seguente serie di comandi
-------------------------------------------------------------------
/home/luca/) C-Kermit>set modem type direct
(/home/luca/) C-Kermit>set port ?No keywords match - oport
(/home/luca/) C-Kermit>set port /dev/pts/1
(/home/luca/) C-Kermit>set speed 9600
/dev/pts/1, 9600 bps
(/home/luca/) C-Kermit>set carrier-watch off
(/home/luca/) C-Kermit>set flow none
(/home/luca/) C-Kermit>set parity none
(/home/luca/) C-Kermit>set block 3
(/home/luca/) C-Kermit>set control prefix all
(/home/luca/) C-Kermit>set file type binary
(/home/luca/) C-Kermit>send /home/luca/BENO
(/home/luca/) C-Kermit>finish
-------------------------------------------------------------------
con il comando send si definisce il file del programma che si intende caricare sul calcolatore
con il comando finish la calcolatrice esce dal Server Mode e si puo' lanciare il programma secondo la normale procedura
![]() |
| Il programma in esecuzione |
Compilatore Pascal su Android
Non e' molto utile ma molto geek utilizzare un compilatore Pascal su un terminale Android anche perche' a me ricorda i tempi del Turbo Pascal 5
Una scelta puo' essere PePe Compiler che eredita molti aspetti dal Turbo Pascal ed in generale i sorgenti per TP girano anche su PePe
Tra gli esempi vi sono alcuni superclassici come il calcolo dei numeri primi e Pi Greco
Al momento non e' pero' implementata la gestione della grafica (ad onore del vero la versione per PalmOS e' decisamente piu' avanzata e gestisce la GUI) e non e' possibile generare un file eseguibile svincolata dal compilatore...in conclusione si tratta di un gran bel giochino...ma un giochino
Una scelta puo' essere PePe Compiler che eredita molti aspetti dal Turbo Pascal ed in generale i sorgenti per TP girano anche su PePe
Tra gli esempi vi sono alcuni superclassici come il calcolo dei numeri primi e Pi Greco
Al momento non e' pero' implementata la gestione della grafica (ad onore del vero la versione per PalmOS e' decisamente piu' avanzata e gestisce la GUI) e non e' possibile generare un file eseguibile svincolata dal compilatore...in conclusione si tratta di un gran bel giochino...ma un giochino
Privilegi di root su GT-S5570i
Le istruzioni per avere i permessi di root sul Samsung GT-S5570i sono stati ripresi da questo link
per prima cosa si salva questo file nella SD Card, dopo di cio' (a telefono spento) si premuno i tasti Accensione+Volume Su+Home fino a quando appare il menu
A questo punto si sceglie l'opzione Update from SD Card e si attende il reboot
Come si puo' vedere il programma Root Checker conferma il possesso dei privilegi di root
per prima cosa si salva questo file nella SD Card, dopo di cio' (a telefono spento) si premuno i tasti Accensione+Volume Su+Home fino a quando appare il menu
A questo punto si sceglie l'opzione Update from SD Card e si attende il reboot
mercoledì 20 febbraio 2013
Emu84 Emulatore HP48GX
Ho voluto provare, avendo a disposizione l'originale, l'emulatore della calcolatrice HP48GX
Il programma si chiama Emu48 e, per quanto ne so, non ha una versione Linux
Una volta scaricato l'emulatore e' necessario reperire una ROM per l'emulatore da sito hpcalc.org (io ho usato questa) ed un file KML che corrisponde all'aspetto grafico dell'emulatore stesso (a questo indirizzo il KML per la 48GX)
fatto cio' si avvia l'emulatore e ci si trova davanti la schermata della figura precedente
Ovviamente trattandosi di un emulatore basato su una ROM estratta da una calcolatrice reale il comportamento sara' esattamente quello reale...l'unica differenza e' nel modo di caricare i dati (sarebbe stupido usare la porta seriale virtuale)
Sempre su hpcalc.org e' possibile scaricare programmi per tutta una serie di calcolatrici programmabili HP.
Una volta ottenuto il programma in formato binario (il file inizia con un header del tipo HPHP48...) si puo' semplicemente trascinare il file sul diplay LCD dell'emulatore oppure da menu Edit/Load Object
Si vede apparire parte del codice del programma
A questo punto si clicca il pulsante alla estrema sinistra della terza fila dall'alto ('), poi doppio clic sul pulsante alpha e si inserisce il nome del programma (che sara' tra apici). Terminato si preme STO per salvarlo
Per recuperare il programma dalla memoria ed eseguirlo si preme poi il tasto VAR e si vede apparire nella riga del menu in basso al display il nome scelto (in questo caso e' MAND come Mandelbrot)
premuto il tasto funzione bianco sottostante il menu di interesse il programma viene messo in esecuzione
Lo stesso programma e' disponibile (Droid48) anche su Android (di una lentezza disarmante..piu' per colpa del telefono/Android che dell'emulatore)
Frugando un po' ho trovato un emulatore per HP48 per Linux che si chiama X48
Si installa direttamente da pacchetto deb (non e' presente nei repository) e si deve inserire la rom nella directory .hp48
A differenza di Emu48, per caricare i programmi sull'emulatore si deve usare la porta seriale virtuale mediante il protocollo kermit come se fosse una calcolatrice fisica (un po' fastidioso)
Il programma si chiama Emu48 e, per quanto ne so, non ha una versione Linux
Una volta scaricato l'emulatore e' necessario reperire una ROM per l'emulatore da sito hpcalc.org (io ho usato questa) ed un file KML che corrisponde all'aspetto grafico dell'emulatore stesso (a questo indirizzo il KML per la 48GX)
fatto cio' si avvia l'emulatore e ci si trova davanti la schermata della figura precedente
Ovviamente trattandosi di un emulatore basato su una ROM estratta da una calcolatrice reale il comportamento sara' esattamente quello reale...l'unica differenza e' nel modo di caricare i dati (sarebbe stupido usare la porta seriale virtuale)
Sempre su hpcalc.org e' possibile scaricare programmi per tutta una serie di calcolatrici programmabili HP.
Una volta ottenuto il programma in formato binario (il file inizia con un header del tipo HPHP48...) si puo' semplicemente trascinare il file sul diplay LCD dell'emulatore oppure da menu Edit/Load Object
Si vede apparire parte del codice del programma
A questo punto si clicca il pulsante alla estrema sinistra della terza fila dall'alto ('), poi doppio clic sul pulsante alpha e si inserisce il nome del programma (che sara' tra apici). Terminato si preme STO per salvarlo
Per recuperare il programma dalla memoria ed eseguirlo si preme poi il tasto VAR e si vede apparire nella riga del menu in basso al display il nome scelto (in questo caso e' MAND come Mandelbrot)
premuto il tasto funzione bianco sottostante il menu di interesse il programma viene messo in esecuzione
Lo stesso programma e' disponibile (Droid48) anche su Android (di una lentezza disarmante..piu' per colpa del telefono/Android che dell'emulatore)
Frugando un po' ho trovato un emulatore per HP48 per Linux che si chiama X48
Si installa direttamente da pacchetto deb (non e' presente nei repository) e si deve inserire la rom nella directory .hp48
A differenza di Emu48, per caricare i programmi sull'emulatore si deve usare la porta seriale virtuale mediante il protocollo kermit come se fosse una calcolatrice fisica (un po' fastidioso)
martedì 19 febbraio 2013
Zoom estremo sull'insieme di Mandelbrot
Questa non e' ovviamente opera mia ma e' troppo bello per non pubblicarlo
Angoli di inclinazione in PhoneGap/HTML5
Sempre utilizzando PhoneGap e' possibile in modo molto semplice ottenere gli angoli di rotazione del dispositivo mobile nello spazio mediante la notazione di Eulero
Gli angoli sono anche definiti come
alfa = yaw (imbardata) in giallo
beta = roll (rollio) in rosso
gamma = pitch (beccheggio) in viola
il codice e' semplicemente autoesplicativo
----------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Angoli</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
<script type="text/javascript" charset="utf-8">
window.addEventListener('deviceorientation', function(event) {
var alpha = 360 - event.alpha;
var beta = event.beta;
var gamma = event.gamma;
// Display Euler angles
document.getElementById("alpha").innerHTML = "Alpha : " + alpha;
document.getElementById("beta").innerHTML = "Beta : " + beta;
document.getElementById("gamma").innerHTML = "Gamma : " + gamma;
}, false);
</script>
</head>
<body>
<p id="alpha">Alpha : </p><br>
<p id="beta" >Beta : </p><br>
<p id="gamma">Gamma : </p><br>
</body>
</html>
----------------------------------------------------
![]() |
| Angoli di Eulero (Wikipedia) |
alfa = yaw (imbardata) in giallo
beta = roll (rollio) in rosso
gamma = pitch (beccheggio) in viola
![]() |
| Fonte Wikipedia |
il codice e' semplicemente autoesplicativo
----------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Angoli</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
<script type="text/javascript" charset="utf-8">
window.addEventListener('deviceorientation', function(event) {
var alpha = 360 - event.alpha;
var beta = event.beta;
var gamma = event.gamma;
// Display Euler angles
document.getElementById("alpha").innerHTML = "Alpha : " + alpha;
document.getElementById("beta").innerHTML = "Beta : " + beta;
document.getElementById("gamma").innerHTML = "Gamma : " + gamma;
}, false);
</script>
</head>
<body>
<p id="alpha">Alpha : </p><br>
<p id="beta" >Beta : </p><br>
<p id="gamma">Gamma : </p><br>
</body>
</html>
----------------------------------------------------
Iscriviti a:
Commenti (Atom)
Olivetti Da VInci DV3 PDA funzionante
Aspettavo da tempo l'acquisizione nel mio piccolo museo. Per alcune caratteristiche seguire il link
-
Aggiornamento questo e' la risposta degli sviluppatori First of all, almost all operating systems on both mobile and laptop/desktop n...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...















