mercoledì 27 novembre 2013

Virus su Android

Questo e' uno dei motivi per cui sarebbe bene ritornare al Nokia 3310

Oggi stavo facendo una scansione del telefono con inserita una vecchia SD card in cui erano presenti degli apk di backup sono stati individuati come Malware/Virus

Penetho.A
Rootcage.B

se l'origine del secondo e' piuttosto spiegabile (praticamente tutti i telefoni che ho sono stati o sono con permessi di root) il secondo e' decisamente piu' preoccupante perche' e' recente (e' stato isolato nel giugno 2013 e non puo' essere una eredita' del mio vecchio Huawei)

Da una ricerca su Internet, Penetho.A e' classificato solo come indesiderabile (nessun furto di informazioni, tracciamento della posizione, spedizione SMS od altri fastidi simili) ma il rischio di incappare in qualcosa di piu' malevolo e' sicuramente presente


C'e' da dire che gli antivirus mobile sono piuttosto permalosi. Sul Nexus S sono state segnalate come criticita' il fatto di avere attivato il Debug Mode, la possibilita' di installare applicazioni da Origini sconosciute e la presenza del root....dato che ogni tanto lo uso per sviluppare non mi sembra che questi siano motivi di allarme

martedì 26 novembre 2013

Clone di Samsung S3

Un amico e' tornato dalla Thailandia con un telefono clone del Samsung S3 pagato circa 70 euro
Quando per mail mi ha parlato del clone pensavo che fosse un telefono con caratteristiche simili ma quando ho avuto modo di vederlo direttamente la parola clone assume un altro significato...il telefono riporta i loghi Samsung su molta componentistica (batteria interna compresa) ed anche nelle stringhe interne ad Android ma ovviamente non e' l'originale. Sono presenti le App ufficiali di Samsung compreso Kies

Notare che l'immagine di Home e' la stessa del vero S4

Il logo Samsung ha iniziato a deteriorarsi

A cover rimossa

Da una breve indagine risulta che:
CPU : DualCore ARMv7 (VFPv3 NEON) Dual Core 1.9 GHz (originale Quad Core)
GPU : PowerVR SGX 531
Risoluzione : 480x800 (originale 1920x1080 Full HD)
Camera principale : 12.8 MPixels
Camera frontale : 1,9 MPixels
Memoria : 503 Mb
RAM : 1800 Mb
Internal SD : 2 Gb (originale minimo 16 Gb)
Sensori di direzione,prossimita',luce, bussola e distanza (l'originale ne ha molti di piu')

Il punteggio del benchmark di AnTuTu e' di 8004.
Per confronto il vero Samsung S4 ha un punteggio di 27435, il mio vetusto Nexus S si attesta a 4944 mentre il mio Nexus 7 2012 a circa 12000.

Una scansione con AVG rileva un malware nell'applicazione (non disinstallabile) UCWeb che non compare nell'elenco delle applicazioni. UCWeb e' un browser molto diffuso in estremo oriente ma e' strano che non compaia nella lista delle app...forse una applicazione malevola che si identifica con un nome conosciuto per nascondersi

In buona sostanza il telefono e' stato pagato per quello che vale (leggendo su Internet viene assimilato ad un Samsung Galaxy S4 Mini ma credo che il paragone sia esagerato)

piccola nota finale: probabilmente il suo codice reale e' MTK6577

Firenze Marathon 2013

Anche quest'anno servizio alla partenza della Firenze Marathon ed anche quest'anno su Repubblica





Certo che l'anno prima l'inquadratura era decisamente migliore
Nel 2012 al cordone di partenza




lunedì 25 novembre 2013

Play Store e SkyGo

E' un po' di tempo che attendo sul mio Nexus 7 2012 attendo l'aggiornamento di Android KitKat e non vedevo arrivare niente
Un po' infastidito sono andato sul PlayStore per vedere se c'era qualche notifica (in realta' dovrebbe comparire nella barra delle notifiche) e con sorpresa c'era un persistente errore di "Connessione Scaduta"


Visto che l'ultima modifica che avevo apportato nell'arco di un mese era quella di installare SkyGo (un amico mi aveva chiesto di provarla sul Nexus7) ho disinstallato l'applicazione, riavviato e come per magia e' ripartito il Play Store.

venerdì 22 novembre 2013

Calibrazione sensore di allungamento

Grazie ad un micrometro e' stato potuto calibrare con precisione il sensore di allungamentopresentato in questo post



Nella tabella sono riportate a sinistra i valori letti sul micrometro ed a destra il corrispondente valore letto direttamente sull'Arduino (i valori a sinistra sono in mm, a destra la lettura del canale analogico dell'Arduino)
Si deve precisare che i valori di lettura analogici sull'Arduino non erano molto stabili e quindi il dato  e' stato letto  come media di 5 misure consecutive


Riportando in grafico in grafico si evidenzia come la retta di taratura sia ottima come coefficiente di correlazione. Dai dati si potrebbe pensare di poter spingere la precisione fino a 5 centesimi di millimetro ma a causa della fluttazione del dato letto dall'Arduino e' piu' ragionevole impostare la sensibilita' della misura a circa il decimo di millimetro




mercoledì 20 novembre 2013

Software per progetto Force Gauge

Il progetto Force Guage sta arrivando al suo termine
L'hardware finale e' stato montato nella sua versione finale
-Arduino Due
-Ethernet Shield
-Amplifier Shield (autoprodotto)

adesso si passa al codice


per Arduino e' stato riutilizzato quasi tutto il codice di questo post
C'e' da annotare che (evindenziato in giallo)
1) per usare il comando itoa in Arduino Due si deve aggiungere  #include "itoa.h"
2) per far funzionare il convertitore analogico digitale di Arduino due a 12 bit lo si deve richiedere esplicitamente con il comando analogReadResolution

Codice Arduino
------------------------------------------
#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include "itoa.h"

byte ardmac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ardip(192, 168, 0, 2);

byte Server[]  = { 192,168,0,1 };  
unsigned int porta = 7755;    
unsigned int localPort = 8888;      // local port to listen on

int sensorPin = A3;    
int sensorValue = 0;  

EthernetUDP Udp;

char buf[12]; // "-2147483648\0"

void setup() {
  Ethernet.begin(ardmac,ardip);
  Udp.begin(localPort);
  analogReadResolution(12);
}

void loop() {
    sensorValue = analogRead(sensorPin);    
    Udp.beginPacket(Server, porta);
    Udp.write(itoa(sensorValue, buf, 10));
    Udp.endPacket();
    delay(100);
}
----------------------------------------

per il frontend di rappresentazione realtime dei dati e' stato scritto un programmino in Qt che implementa un server UDP e mostra i dati mediante la libreria QCustomplot

Codice Qt (4.8.5)
file .pro (le modifiche sono in giallo)
------------------------------------------
QT      += core gui network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = geolab
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    qcustomplot.cpp

HEADERS  += mainwindow.h \
    qcustomplot.h

FORMS    += mainwindow.ui
------------------------------------------

in azzurro le righe di codice relative al server UDP mentre in giallo quelle relative alla visualizzazione del grafico

mainwindow.h
------------------------------------------
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork>
#include <QVector>
#include "qcustomplot.h"


namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_pushButton_clicked();
    void ricevi();

private:
    Ui::MainWindow *ui;
    QUdpSocket *udpSocket;

 };

#endif // MAINWINDOW_H
------------------------------------------
mainwindow.cpp
-------------------------------------------
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtNetwork>
#include <QUdpSocket>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

{
    ui->setupUi(this);

    ui->widget->addGraph();
    ui->widget->xAxis->setLabel("x");
    ui->widget->yAxis->setLabel("y");
    ui->widget->xAxis->setRange(0, 10);
    ui->widget->yAxis->setRange(0, 10);
    ui->widget->replot();
}

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

void MainWindow::on_pushButton_clicked()
{
    udpSocket = new QUdpSocket(this);
    QString ip = "192.168.0.1";
    udpSocket->bind(QHostAddress("192.168.0.1"), 7755);
    connect(udpSocket, SIGNAL(readyRead()),
               this, SLOT(ricevi()));

}


void MainWindow::ricevi(){
    while (udpSocket->hasPendingDatagrams()) {
           QByteArray datagram;
           datagram.resize(udpSocket->pendingDatagramSize());
           QHostAddress sender;
           quint16 senderPort;

           udpSocket->readDatagram(datagram.data(), datagram.size(),
                                   &sender, &senderPort);

           qDebug() <<datagram;
           ui->widget->graph(0)->addData(i,datagram.toDouble());
           ui->widget->graph(0)->rescaleValueAxis(true);
           ui->widget->graph(0)->rescaleKeyAxis(true);

           ui->widget->replot();
           QString valore = datagram;
           ui->label->setText("Lettura istantanea : "+valore);

       }
}
-------------------------------------------


Telerilevamento con Beam

Alla ricerca di un software non coperto da licenza per il telerilevamento di dati Landsat ho provato Beam, un software sponsorizzato da ESA

Il programma e' scritto in Java ed eredita da questa scelta una sostanziale lentezza di calcolo e di gestione dei dati in memoria


Fra i pregi, oltre ad essere gratuito, vi e' la possibilita' di aprire una grande quantita' di formati compreso il recente Landsat 8 (sono esclusi i satelliti iperspettrali) ed una serie di algoritmi avanzati (solo per Meris)

Per poterlo utilizzare al momento attuale per i dati Landsat si deve effettuare un aggiornamento mediante Module Manager (Module Updates) del modulo Landsat perche' in agosto 2013 la Nasa, come spesso accade, ha modificato gli header delle immagini

Interessante da aggiungere a posteriori e' il modulo Envi Reader per le immagini salvate in .hdr


Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...