Sony Alpha A6000 – Hack per abilitare la registrazione con Imaging Edge Mobile

Trovo molto importante la qualità dei contenuti per dot.

Spesso infatti, scatto foto dei miei lavori o assistenze, registro qualche video per i social, o scatto qualche foto per il sito web in lavorazione.

La mia scelta è ricaduta sulla Sony Alpha A6000, una macchina un tantino “datata”, ma con tutte le caratteristiche necessarie al mio lavoro!

Ovviamente, come per Canon c’è una community che lavora per realizzare il noto Magic Lantern, anche nel campo di Sony sono presenti diverse community, in particolare, quella di Open Memory Tweaks.

Magic Lantern, Open Memory Tweaks, ma di cosa stiamo parlando?

Parliamo del fatto che ogni dispositivo elettronico, ha al suo interno un firmware, un sistema operativo, che permette a tutta l’elettronica di funzionare.

Se nel passato le modifiche erano per lo più hardware, dove andando a modificare, sostituire, bypassare componenti elettronici potevamo aumentare le performance o aggiungere nuove funzionalità, la stessa cosa, con l’evoluzione del software, la andiamo a fare lato codice.

Ebbene, per motivi commerciali, di marketing e raramente di limitazioni hardware, ci si ritrova con dispositivi con potenzialità infinite, limitate dal produttore, per creare una gerarchia di vari prodotti, e giustificare la disparità di prezzi.

Questa disparità alle volte è ridicola, visto che ci possono essere due prodotti molto simili, dal punto di vista hardware, che però hanno funzionalità completamente diverse dal punto di vista software.

E’ proprio il caso della Sony, con la serie Alpha.

Moltissimi modelli infatti, consentono di collegarsi a uno smartphone, per poter visualizzare la preview dell’immagine, e controllare diversi parametri.

In pratica un “Controllo Remoto” molto avanzato, se non fosse per un piccolo intoppo: La registrazione video, con la relativa preview, è disabilitata sulla A6000.

Nonostante moltissimi modelli simili hanno questa funzionalità, questo particolare modello (insieme ad altri) hanno questa funzione disabilitata.

Non c’è alcun motivo per cui non debba essere possibile, visto che lo smartphone (e la relativa app) fungono da “telecomando”, per cui è necessario solo che l’app invii il comando di registrazione, e che la fotocamera continui a streammare l’immagine (cosa che fa già nella preview).

Qui entra in gioco Open Memory Tweaks, una “modifica” che va a sbloccare tantissime funzionalità, tra cui la rimozione del limite di registrazione della fotocamera, impostato per motivi di copyright.

Infatti la A6000, come il resto delle Sony Alpha, utilizza come base del sistema operativo, una versione di Android.

Potremmo dire che queste mirrorless sono come una specie di smartphone, e come tali hanno delle app.

Open Memory Tweaks, agisce al livello più profondo di questo ecosistema, andando a modificare vari parametri nel codice, per sbloccare nuove funzionalità.

Sul Github di OpenMemoryTweaks troviamo la sezione “Issues” dove moltissime persone postano problemi, consigli, domande e ogni tipo di curiosità. L’autore del repository, così come tutti i collaboratori, rispondono a queste domande (o almeno ci provano), e grazie a queste conversazioni, nascono nuove soluzioni.

Infatti, nell’Issues #134, troviamo proprio la richiesta di sbloccare questa funzionalità.

Dopo che diversi utenti provano a dare una risposta, interviene un utente chiamato “fvollmer” che riporta una vera e propria soluzione.

La risposta di fvollmer che contiene la procedura per lo sblocco della registrazione remota.

Infatti, dopo che alcuni utenti suggeriscono di provare a “mascherare” la Sony A6000 in un’altro modello (che supporta la funzionalità), fvollmer consiglia di modificare l’applicazione che consente allo smartphone di controllarla.

Questa modifica, va di fatto a rimuovere la limitazione, direttamente dal codice dell’applicazione.

Gli step descritti sono i seguenti:

  • Installare l’applicazione “Smart Remote” direttamente dallo store ufficiale Sony.
  • Installare Open Memories Tweak
  • Abilitare il Wifi e il supporto adb da OpenMemory Tweak
  • Connettersi via adb alla fotocamera
  • Una volta connessi, estrarre l’apk originale dalla memoria interna della fotocamera.
  • “Scompattare” l’applicazione
  • Andare a modificare il codice nel file “ModelInfo$1.smali
  • Ricompattare l’applicazione grazie a un tool chiamato “apk tool”
  • “Allineare” l’apk (possiamo definirla un’ottimizzazione necessaria)
  • Rinominare l’applicazione, per evitare che in fase di installazione, vi sia un conflitto tra l’app originale e quella “hackerata”.
  • Firmare l’apk, per poterlo installare senza incorrere in errori di “sicurezza”. Prima creando una “chiave” (Punto 10.) e poi firmandolo (Punto 11.)
  • Installare l’app hackerata sulla fotocamera.

In questo modo, avremmo due Smart Remote perfettamente identici, nella lista delle applicazioni

La prima e l’ultima app sono esteticamente identiche, una però è stata modificata per la registrazione in remoto.

Una volta installata, la procedura da seguire è identica, basta connettersi alla rete wifi generata dalla fotocamera, aprire l’applicazione su Smartphone, e una volta connessi, switchare la modalità di registrazione in “Video”.

In un attimo, l’applicazione ci mostrerà il tasto “record video” e una volta premuto, la fotocamera inizierà a registrare sulla SD interna.

Ma come effettuare la modifica nel pratico?

ATTENZIONE!
L’installazione di OpenMemory Tweaks, così come l’esecuzione di ogni pratica non descritta dal manuale d’uso della fotocamera può compromettere in maniera irreparabile il dispositivo, per questo motivo non eseguire alcuna azione se non sei consapevole di ciò che fai.
Inoltre, la modifica del file apk non è certo una modifica sponsorizzata da Sony.

Questo articolo ha il puro scopo di analizzare e approfondire questa modifica.


Installazione dei tools necessari

Scarichiamo gli SDK Tools di Android Studio da qui, questo ci consentirà di poter utilizzare abd, apksign e tutti tool necessari.

Re-installazione dell’App Controllo Remoto Intelligente

Fatto questo, disinstalliamo l’applicazione Controllo Remoto Intelligente dalla nostra Sony. Successivamente è necessario installare l’app ufficiale aggiornata, reinstalliamo l’app da qui

Installare OpenMemory Tweak

A questo punto per installare OpenMemory Tweaks, possiamo farlo direttamente da web, scaricando prima il plugin necessario e utilizzare Internet Explorer o Safari per l’installazione.

Nonostante questo, è caldamente consigliato utilizzare il tool PMCA-GUI per Windows o MacOS, che fornisce una maggiore stabilità e compatibilità.

Collegarsi via adb alla Sony A6000

Una volta abilitato il WiFi, potremmo connettere la fotocamera alla nostra rete WiFi, di conseguenza, otterrà un’indirizzo ip, che verrà mostrato a connessione avvenuta.

Una volta preso nota dell’indirizzo ip (ad esempio 192.168.1.5) colleghiamoci aprendo il command prompt di windows (o la shell di MacOS) tramite il comando

adb connect 192.168.1.5:5555

Ovviamente andiamo a sostituire l’indirizzo ip di esempio con quello reale.

Estrazione, modifica e repack dell’apk

Fatto questo, procediamo a estrarre il file con il comando

adb pull /data/app/com.sony.imaging.app.srctrl-1.apk

dirigiamoci nella cartella dove è installato adb, e troveremo il file in locale, sul nostro pc.

A questo punto, lanciamo il comando

apktool d -r com.sony.imaging.app.srctrl-1.apk

Il file apk, che equivale a un .exe per windows, si scompatterà in una cartella, mostrando i file interni.

Procediamo quindi alla modifica del file “ModelInfo$1.smali” che troveremo in “com.sony.imaging.app.srctrl-1/smali/com/sony/imaging/app/srctrl/util

cancellando le seguenti linee di codice:

.line 26
const-string v0, "ILCE-6000"

invoke-virtual {p0, v0}, Lcom/sony/imaging/app/srctrl/util/ModelInfo$1;->add(Ljava/lang/Object;)Z

Fatto questo, salviamo il file.

Torniamo sul nostro terminale e ricostruiamo l’apk utilizzando il tool “apktool”, dalla libreria SDK Tools con il comando

apktool b com.sony.imaging.app.srctrl-1

Ricreato l’apk, dobbiamo allinearlo nella sua forma finale, cambiando il nome del file in “new.[…]”

zipalign -f -v 4 'com.sony.imaging.app.srctrl-1/dist/com.sony.imaging.app.srctrl-1.apk' 'new.sony.imaging.app.srctrl-1.apk'

Abbiamo allineato e cambiato il nome del file, ma non il nome interno dell’applicazione! Per farlo possiamo utilizzare un tool sviluppato da un utente su github, che possiamo scaricare da qui.

Una volta estratto il contenuto, nella stessa cartella del nostro file apk, lanciamo il comando

apkRename.sh new.sony.imaging.app.srctrl-1.apk new.sony.imaging.app.srctrl

NB: I file .sh sono nativi unix, e non vengono eseguiti dal terminale di windows, per ovviare a questo problema, possiamo utilizzare un’installazione wsl di ubuntu/debian (scaricabile dallo store ufficiale microsoft), un altro pc con linux/macos o una macchina virtuale!

Per poter firmare correttamente il file .apk, è necessario prima creare una chiave “dummy” (tradotto “manichino”, possiamo definirla di comodo), grazie al “keytool”

keytool -genkeypair -v -keystore dummy.keystore -alias dummy -keyalg RSA -keysize 2048 -validity 1000

A questo punto, procediamo alla vera e propria firma del file, utilizzando la chiave appena creata. Per farlo andiamo a sfruttare il tool “apksigner”

apksigner sign --ks dummy.keystore --ks-key-alias dummy "new.sony.imaging.app.srctrl-1.apk"

Come risultato finale, troviamo il file new.sony.imaging.app.srctrl-1.apk pronto per essere installato, via adb, con il comando

adb install "new.sony.imaging.app.srctrl-1.apk"

Alla riaccensione troveremo due “Controllo Remoto Intelligente” di cui una è proprio quella modificata!

Spero che questo articolo possa essere stato interessante per alcuni, ovviamente è una metodica non testata su larga scala, e potrebbe causare problemi in alcuni casi. Ma è interessante vedere come con un po di ingegneria inversa, e grazie a una community, sia possibile “scavalcare” limitazioni commerciali e di marketing dei produttori!

Condividi con: