giovedì 21 gennaio 2016

cURL: ottenere la dimensione di un file remoto senza scaricarlo

Vi siete mai trovati nella necessità di sapere le dimensioni di un file remoto? A volte, soprattutto per i più leggeri, si finisce con lo scaricarlo e controllare la dimensione successivamente tramite il proprio file manager.
Però con i file molto pesanti potrebbe non essere la decisione ottimale. Esiste però un modo comodissimo per sapere quale siano le dimensioni di un file remoto senza nemmeno il bisogno di scaricarlo, l'importante è, ovviamente, che sia un link al download diretto.
Per farlo basta usare cURL e dare il seguente comando da un terminale:
curl -sI "URL" | grep Content-Length
dove al posto di "URL" ovviamente ci va incollato il link diretto del vostro file remoto.
Tutto qui, semplice e veloce :)

mercoledì 8 aprile 2015

Android: Xposed e Premium Play su Nexus 4 con Lollipop

Qualche giorno fa mi è stato chiesto come fare per continuare ad usare Premium Play sul Nexus 4 ora che con Lollipop le vecchie versioni non funzionano più poiché sia Xposed sia la stessa app della Mediaset non sono compatibili con ART. Beh, la risposta è abbastanza semplice: bisogna utilizzare le versioni aggiornate di queste due app appunto per Lollipop, tutto qui, davvero xD
Quindi passiamo subito all'opera, nello specifico eccovi i link al download delle app aggiornate:
  • Xposed per ART (è ancora in alpha ma comunque funziona bene, testato personalmente): Pagina ufficiale del progretto su XDA
  • APK di Mediaset Premium Play v4.0 (compatibile con Android 5+, il link come sempre non è mio quindi i crediti vanno al rispettivo uploader): Download
Una volta installati questi due programmi aggiornati per Android Lollipop non resta che seguire la stessa identica procedura di configurazione della precedente mia guida che potete trovare QUI e il gioco è fatto.

lunedì 15 settembre 2014

Android: utilizzare l'app Mediaset Premium Play su Nexus 4

Siccome nel weekend non sono stato a casa e ho dovuto smanettare non poco per arrivare all'obiettivo prefissato dal titolo di questa miniguida, ho deciso di tornare finalmente a scrivere su questo mio blog personale per annotarmi e quindi presentarvi questa mini guida appunto, in cui vi spiegherò ciò che ho dovuto fare nel weekend per far funzionare l'app di Mediaset Premium Play sul mio Nexus 4 con Android 4.4.4. Prima di cominciare però lasciatemi lanciare qualche bestemmia contro Mediaset che rende Premium Play disponibile solo per device Samsung. Così, tanto per. Ok dai, cominciamo xD

Innanzitutto però da premettere un paio di cose:
  1. Per chi non lo sapesse l'app di Mediaset Premium Play è appunto disponibile soltanto sullo store Samsung ed è quindi esclusiva dei device Samsung ovviamente, in più è abilitata soltanto per tablet.
  2. Servirà l'utilizzo del framework Xposed, quindi il vostro Nexus 4 dovrà essere per forza con root.
  3. Si farà utilizzo di un paio di moduli aggiuntivi di Xposed, ma niente di strano o pericoloso per la vostra privacy, tutto infatti sarà disponibile direttamente dal downloader interno del framework stesso.
Allora cominciamo subito con linkare ciò che dovrete installare sul vostro Nexus 4 (dò per scontato che avete già il root e un bel backup di sistema già fatto, in caso contrario cercatevi altre guide su come fare il root/backup che non è tema di questa miniguida):
  • APK dell'app Mediaset Premium Play (essendo disponibile solo su Samsung non è possibile installare dal Google Play Store, quindi dovremo per forza affidarci all'installazione esterna via APK): v3.1.3 (che poi è l'ultima versione disponibile al momento, il link non è mio, al legittimo proprietario vanno tutti i crediti del caso quindi).
  • APK di Xposed Framework: v2.6.1 (che è l'ultima versione stabile al momento).
Perfetto ora non ci rimane che procedere finalmente con le facili istruzioni di installazione e configurazione:
  1. Installare l'APK di Mediaset Premium Play ma NON avviarlo.
  2. Installare l'APK di Xposed Framework.
  3. Avviate l'app Xposed Installer che dovrebbe ora apparire nel menù delle app del vostro Nexus 4. Nella schermata principale scegliete quindi la voce Framework e poi, nella schermata successiva, cliccate sul pulsante Installa. A questo punto vi verrà chiesto di riavviare il cellulare, ovviamente fatelo.
    Al successivo riavvio se tutto è andato per bene avrete l'Xposed Framework installato e avviato. A questo punto bisogna procedere con l'installazione e la configurazione dei moduli necessari.
  4. Avviate di nuovo l'app Xposed Installer e dal menù principale scegliete ora la voce Download. Nella nuova schermata ricercate tramite l'apposito pulsante i seguenti 2 moduli: App Settings e Fake Wifi Connection. Scaricate e installate entrambi direttamente dall'app (facendo attenzione a non avviarli dopo l'installazione!).
  5. Tornate alla schermata principale di Xposed Installer e scegliete ora la voce Moduli. Troverete un elenco dei moduli installati che dovrebbe appunto contenere i due moduli su citati. Attivateli entrambi mettendo la spunta sul quadratino corrispondente ad essi, vi verrà detto che saranno operativi dopo il riavvio del cellulare. Date l'ok ma aspettate a riavviare, visto che dopo averli configurati sarà necessario di nuovo un riavvio possiamo farlo direttamente dopo.
  6. Uscite dal programma e noterete che nel vostro menù saranno apparse ora due nuove app installate corrispondenti appunto ai 2 moduli su citati. Avviamo per prima App Settings.
  7. Nella schermata principale di App Settings cerchiamo l'app Premium Play (basta scrivere "premium" come testo di ricerca nell'apposita casella e comparirà subito) e clicchiamo su di essa.
  8. Nella nuova schermata che si aprirà dovremo innanzituto abilitare l'interruttore principale (in alto) su ON dopodiché apporteremo le seguenti 4 modifiche (il resto può restare di base così come già è):
    DPI: 200 (e non 250 come suggeriscono molte altre guide online...)
    Font scale: 100 (e non 150 come suggeriscono molte altre guide online, con 150 il font appare decisamente grande e sproporzionato secondo me rispetto al resto dell'app...)
    xlarge res.: selezionato (ossia mettete la spunta sul corrispondente quadratino).
    Fullscreen: Immersive (in altre guide online non si fa riferimento a questa opzione ma se non l'attivate a questo modo i 3 pulsanti classici della barra inferiore di Android saranno sempre visibili a schermo riducendo la grandezza del video quando lo mettete a schermo pieno. Con Immersive invece si avrà il comportamento classico, ossia diverranno a comparsa/scomparsa con un tap sullo schermo).
    Ora salviamo i cambiamenti (icona a forma di floppy disk in alto a destra) e diamo la conferma.
  9. Chiudiamo App Settings e apriamo adesso Fake Wifi Connection (sempre dal menù delle app nel vostro Nexus 4).
  10. Anche qui la prima cosa da fare è attivare l'interrutore generale in alto (in caso fosse disattivato), dopodiché cercare di nuovo l'app Premium Play e abilitarla (mettendo la spunta sul quadratino corrispondente ad essa). Salviamo cliccando sul pulsante Save in basso a destra e chiudiamo l'app.
  11. Adesso non ci resta che riavviare il cellulare e testare la nostra app di Mediaset Premium Play. Se tutto è andato liscio si avvierà senza problemi (a patto di qualche difetto di posizionamento delle scritte, ovviamente dovuto al fatto che è un'app disegnata per tablet con schermi ben più grandi di un Nexus 4), login sotto 3G compreso.

Note finali sull'utilizzo dei 2 moduli:
Vi lascio con 2 considerazioni sul perché sia indispensabile utilizzare i 2 moduli su citati di Xposed Framework.
  • Per quanto riguarda App Settings penso sia chiaro perché, essendo Premium Play un'app disegnata per tablet è normale che crashasse sul Nexus 4, avendo risoluzione e schermo decisamente inferiori. Con App Settings si riesce quindi a reimpostare le specifiche visive dell'app per adattarla allo schermo del Nexus 4 evitando dunque crash all'avvio.
  • Per quanto riguarda invece Fake Wifi Connection il suo utilizzo è richiesto a causa di un bug dell'app (su Nexus 4 ovviamente) che non permette di fare il login se si è su rete 3G (o per meglio dire permette di farlo ma poi crasha subito dopo). Tramite l'utilizzo di questo modulo si fa credere all'app di essere sotto rete WiFi e non 3G e questo riesce ad evitare appunto il crash dopo il login anche se in realtà si è sotto rete 3G.

sabato 3 agosto 2013

go-mtpfs: far riconoscere il proprio dispositivo Android a Linux.

Dopo aver letto qui e là numerose guide su come far riconoscere il proprio dispositivo Android al nostro linux ero arrivato ad un punto morto, con mtpfs che richiedeva minuti per la connessione e alla fine quando si andava a visitare la cartella montata si otteneva un bell'errore di socket disconnesso che impediva qualsiasi esplorazione del contenuto del mio cellulare.
Per fortuna poi ho scoperto go-mtpfs e le cose son cambiate. Vediamo come.
Da premettere che io ho un Nexus 4, quindi ovviamente la guida è testata solo ed esclusivamente con quel dispositivo. Però cercherò di farla il più generale possibile sperando di renderla compatibile con tutti.
EDIT: il metodo è stato testato con successo anche da un mio amico su Nexus 7.

1° Passo: attivazione dell'opzione Debug USB.
  • Dal vostro dispositivo Android andate su Impostazioni -> Info dispositivo -> cliccate 7 (si, sette) volte sulla voce Numero Build. Un avviso a schermo vi dirà che è stata attivata la modalità sviluppatore.
  • Sempre da vostro dispositivo Android andate ora su Impostazioni -> Opzioni sviluppatore e attivare l'opzione Debug USB.

2° Passo: identificazione del dispositivo Android.
Collegate il vostro dispositivo Android al PC. Aprite un terminale e date il comando:
lsusb
Otterrete qualcosa di simile:
Bus 001 Device 007: ID 18d1:4ee2 Google Inc. Nexus 4 (debug)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 192f:0416 Avago Technologies, Pte. ADNS-5700 Optical Mouse Controller (3-button)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Ovviamente la voce che ci interessa è quella relativo al nostro device (nel mio caso la prima, riconoscibile dalla dicitura Google Inc. Nexus 4 (debug)).
Segnatevi il codice separato dai due punti (nel mio caso quindi 18d1:4ee2).
Adesso aprite con i permessi di root ed il vostro editor di testo preferito il file /etc/udev/rules.d/51-android.rules:
sudo gedit /etc/udev/rules.d/51-android.rules
e al suo interno scrivete una riga del genere:
# LG Nexus 4
SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", MODE="0666"
con al posto di XXXX la parte a sinistra dei due punti nel codice che ci siamo salvati prima e al posto di YYYY la parte di destra del codice.
Nel mio esempio quindi ottengo:
# LG Nexus 4
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666"
Salvate il file e chiudetelo.
Adesso non ci resta che dare i permessi di esecuzione a questo file. Da terminale digitare:
sudo chmod +x /etc/udev/rules.d/51-android.rules
Perfetto, ora possiamo passare al passo successivo.

3° Passo: installazione programmi necessari.
Ora andremo ad installare i programmi necessari che svolgeranno il lavoro "sporco" di montaggio del dispositivo Android. Come anticipato prima useremo go-mtpfs che è l'unico che personalmente ha funzionato per me, oltre ad essere, a detta di molti, il più veloce nello scambio di file tra dispositivo e PC (il classico mtpfs infatti pare sia limitato).
  • Su Archlinux è tutto molto semplice, basta installare da AUR il pacchetto go-mtpfs-git:
    yaourt -S go-mtpfs-git
  • Su Debian e derivate (Ubuntu...) dovete prima aggiungere un nuovo repo:
    sudo add-apt-repository ppa:webupd8team/unstable
    sudo apt-get update
    Dopodiché potrete installare tutto il necessario dando da terminale:
    sudo apt-get install go-mtpfs
  • Per tutte le altre distro, bisogna procedere compilando il programma. Per fare questo basta seguire le indicazioni scritte nella pagina ufficiale del progetto che potete trovare qui: https://github.com/hanwen/go-mtpfs
Installato go-mtpfs, aprite un terminale e digitate:
sudo groupadd fuse
sudo gpasswd -a [user] fuse
con al posto di [user] il vostro nome utente.
Ora che tutto è pronto riavviate il vostro PC per far in modo che tutti i cambiamenti prendano piede.

4° Passo: collegamento.
Dopo aver riavviato siamo pronti per il collegamento.
Collegate il dispositivo al PC via USB, aprite un terminale e create un punto di mount per il vostro dispositivo. Io vi consiglio di farlo nella vostra home perché a me con sudo ha dato problemi. Per far questo da terminale digitiamo:
mkdir ~/Android
Adesso finalmente possiamo montare il nostro dispositivo! Diamo da terminale:
go-mtpfs ~/Android
e se tutto è andato secondo i piani navigando nella cartella Android appena creata (nella vostra home) potrete accedere alla memoria del vostro dispositivo collegato via USB!

Quando avrete finito di fare quello che volete con i file del vostro dispositivo, per smontarlo correttamente (attenzione a NON scollegare l'USB manualmente e basta, creereste danni al vostro filesystem!) digitare il seguente comando sempre in un terminale:
sudo umount ~/Android
Fatto ciò adesso potrete procedere con la disconnessione manuale del cavo USB.


Nota finale: d'ora in poi quando vorrete collegare il vostro dispositivo Android al PC vi basterà semplicemente collegarlo via USB e utilizzare soltanto gli ultimi 2 comandi per montare e smontare il vostro dispositivo, ossia:
go-mtpfs ~/Android
per montarlo e
sudo umount ~/Android
per smontarlo.

lunedì 18 marzo 2013

Linux: abilitare il supporto ai magnet in Chromium

In questo minitutorial vedremo come configurare Chromium (Google Chrome) per riuscire ad aprire il link in formato magnet in modo che vengano gestiti da un qualsiasi client Torrent. Io personalmente utilizzo Vuze (il vecchio Azureus per intenderci) ma più per una scelta di compatibilità (è multipiattaforma e accettato da praticamente tutti i tracker privati) che per efficienza.
Comunque, tornando al nostro obiettivo, se proviamo ad aprire (cliccando su) un qualsiasi link magnet in giro per il web otterremo il seguente errore da Chromium:

Per ovviare al problema non dovremo toccare nessuna configurazione nel browser internet, né tantomeno per forza modificare opzioni gconf come consigliato in svariate altre guide. Tutto ciò che dovremo fare è modificare il file xdg-open che Chromium utilizza per aprire i link esterni.
Quindi, senza ulteriori esitazioni, apriamo un terminale e diamo un bel:
sudo gedit /usr/bin/xdg-open
Ovviamente potete sostituire, nel comando sopra, gedit con il vostro editor di testo preferito.
Nel file aperto dovremo andare a cercare la funzione di apertura relativa al vostro ambiente desktop. Io, per esempio, utilizzo XFCE quindi sono andato a cercare la funzione chiamata open_xfce() e mi son trovato difronte al seguente codice:
open_xfce()
{
exo-open "$1"

if [ $? -eq 0 ]; then
exit_success
else
exit_failure_operation_failed
fi
}
A questo punto tutto ciò che ho dovuto fare è aggiungere un'istruzione IF per determinare l'eventuale presenza di magnet ed agire di conseguenza. Nello specifico ho trasformato la funzione sopra in quest'altra:
open_xfce()
{
if (echo "$1" | grep -q '^magnet:'); then
vuze "$1"
if [ $? -eq 0 ]; then
exit_success
fi
fi

exo-open "$1"

if [ $? -eq 0 ]; then
exit_success
else
exit_failure_operation_failed
fi
}
Al posto di vuze potete sostituire il vostro client Torrent preferito (transmission, deluge, ecc...).
Ovviamente ci son funzioni per "quasi" tutti i DE, ad esempio open_gnome(), open_kde(), open_darwin(), open_mate(), quindi scegliete la funzione in base a quale DE usate o in extremis inserite il nuovo pezzo in tutte le funzioni presenti.
Salvate i cambiamenti al file e voilà, adesso potrete aprire tranquillamente anche i link magnet dal vostro Chromium :)