Android: sintassi e comandi per il file updater-script di un file update.zip

Di seguito riporto la sintassi dei comandi da inserire nel file updater-script di un file update.zip utilizzato per flashare gli aggiornamenti su una rom Andorid. Il tutto è stato ripreso da XDA, da qui e qui.

Mounting Partition

MTD
mount("MTD", "system", "/system");
mount("MTD", "userdata", "/data");
mount("MTD", "cache", "/cache");
mount("MTD", "sdcard", "/sdcard");
EMMC
mount("ext4", "EMMC", "/dev/block/mountpoint", "/system");
mount("ext4", "EMMC", "/dev/block/mountpoint", "/data");
mount("ext4", "EMMC", "/dev/block/mountpoint", "/cache");
 
mount("ext3", "EMMC", "/dev/block/mountpoint", "/system");
mount("ext3", "EMMC", "/dev/block/mountpoint", "/data");
mount("ext3", "EMMC", "/dev/block/mountpoint", "/cache");
 
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/data");
mount("ext4", "EMMC", "/dev/block/mmcblk0p25", "/cache");

Unmounting Partitions

unmount("/system");
unmount("/data"); OR unmount("/userdata");
unmount("/cache");
unmount("/sdcard");

Format Partitions

format("MTD", "system");
format("MTD", "cache");
format("MTD", "data");
format("MTD", "boot");
 
format("ext4", "EMMC", "/dev/block/mountpoint");
 
format("ext3", "EMMC", "/dev/block/mountpoint");
 
format("ext4", "EMMC", "/dev/block/mmcblk0p23");
format("ext4", "EMMC", "/dev/block/mmcblk0p24");
format("ext4", "EMMC", "/dev/block/mmcblk0p25");
format("ext4", "EMMC", "/dev/block/mmcblk0p22", "/boot");

Copy files from .zip file to phone partition or sd card:

package_extract_dir("Source", "Destination");

Example:

package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_dir("sdcard", "/sdcard");

Output a line of text:

ui_print("Text Here");

Delete a file:

delete_recursive("file/path");
delete("/path/to/file");

Run Program

run_program("command", "parameter_1", "parameter_2" [, "parameter_2"[, ... ] ] );

Example:

run_program("/sbin/busybox", "umount", "/sd-ext");

Symbolic Link

symlink("source", "destination")

Example:

symlink("/data/etc/hosts", "/system/etc/hosts")

HTC Desire: abilitare A2SD+ su MIUI

Di seguito riporto i passi che utilizzato per abilitare A2SD+ sulla Miui unstable 1.8.5 installata sul mio HTC Desire.

A2SD+ risolve il problema della poca capienza di memoria del Desire destinata alle applicazioni andando ad installare quest’ultime sulla scheda SD in una partizione ext3 appositamente dedicata.Quindi mi sono munito di una nuova scheda SD da 8GB calsse 4 l’ho partizionata utilizzando il seguente metodo:

  1. Disinstallare tutte le applicazioni escluso quelle per noi più importanti
  2. Assicurarsi che le applicazioni rimaste non siano installate sulla SD, eventualmente spostarle sul telefono
  3. Inserire nel telefono la nuova scheda SD vuota da partizionare (se non è vuota tutti i dati andranno persi)
  4. Installare Rom Manager
  5. Da Rom Manager partizionare la scheda SD in modo da creare la partizione ext3 per A2SD+ scegliendo la dimensione desiderata (io ho scelto 512MB). Il telefono verrà riavviato e verranno create le partizioni, al termine del partizionamento verrà ancora una volta riavviato. Se tutto è andato bene andando nel menu Impostazioni/Sistema/Scheda SD e memoria dovreste trovare una videata simile alla seguente che indica lo spazio totale e disponibile per A2SD+

Abilitare A2SD+ (tratto da Nexus-Lab):

  1. Installare Android Terminal Emulator dal web market
  2. Avviare Android Terminal Emulator
  3. Digitare su (verranno chiesti i permessi di root)
  4. Digitare system/bin/a2sd check
  5. Digitare system/bin/a2sd reinstall (attendere la fase di installazione e il successivo riavvio automatico)
  6. Riavviare Android Terminal Emulator
  7. Digitare su verranno chiesti i permessi di root
  8. Digitare system/bin/a2sd cachesd (attendere la creazione della cartella su SD e il successivo riavvio automatico)

Le applicazioni presenti sul telefono sono state spostate sulla partizione ext3 della scheda SD liberando la memoria interna del telefono. Da ora in poi andranno a finire dentro la partizione ext3 anche tutte le nuove applicazioni che verranno installate.

E’ da tenere presente che i passi sopra indicati per abilitare A2SD+ vanno rieseguiti ogni volta che viene installata una nuova versione della rom Miui da full wipe o da wipe cache e davilcache.

Le operazioni sopra indicate sono state eseguite su un HTC Desire scardinato con Unrevokerd3 (come descritto qui) e con una Rom Miui unstable 1.8.5. Site consapevoli che quanto descritto sopra non è a prova di brick e quindi se incasinate il vostro prezioso smart phone sono cavoli vostri 🙂

Come ultima cosa ho utilizzato il pc per copiare tutti i dati della vecchia scheda SD su quella nuova.

HTC Desire: ROOT, Recovery e S-OFF

Riporto qui sotto la procedura che ho utilizzato per sbloccare il mio HTC Desire e ottenere il root, recovery e S-OFF.

Premetto che sono tutte operazioni a rischio di brick e quindi se scassate i vostro prezioso smartphone sono ca##i vostri 🙂

Ho seguito questa guida HTC Desire, ROOT, Recovery e Cambio di ROM e utilizzato Unrevoked3.

Innanzi tutto mi sono segnato un po di dati sul mio telefono, accendendo tenendo premuto la combinazione di tasti VolumeGiu+Power:

BRAVO PVT1 SHIP S-ON
HBOOT-0.93.0001
MICROP-031d
TOUCH PANEL-SYNT0101
RADIO-5.11.05.27
Aug 10 2010,17:52:10

Poi ho segnato tutte le informazioni software andando su Menu/Impostazioni/Info Sul Telefono/Informazioni Software:

Versione di Android: 2.2
Versione banda di base: 32.49.00.32U_5.11.05.27
Versione kernel: 2.6.32.15-gf5a401c htc-kernel@and18-2 #1
Numero build: 2.29.405.5

A questo punto ho eseguito i seguenti passi utilizzando un pc con Ubuntu 11.04:

  • Scaricare unrevoked3 recovery reflash tool, v3.32 e decomprimerlo con tar zxvf reflash.tar.gz
  • Assicurarsi di avere una buona carica della batteria
  • Sul Desire andare in Menu/Applicazioni/Sviluppo e abilitare Debug USB e Rimani Attivo
  • Collegare il Desire al computer con cavo usb
  • Eseguire unrevoked precedentemente scaricato con il comando sudo ./reflash e attendere senza mai scollegare il cavo fintanto che il programma non ci dice di farlo mostrando la schermata seguente con la scritta done (il device si riavvierà più volte):
Per quanto mi riguarda il processo è andato a buon fine non prima però di essermi preso un mezzo infarto, infatti in un primo momento ho lanciato unrevoked da il mio pc desktop che ha pensato bene di andare un crash durante la prima fase della procedura. Fortunatamente il telefono è ripartito senza problemi e ho ripetuto l’operazione, questa volta dal notebook e tutto è filato liscio.

Unixstickers: personalizza il pc con lo sticker della tua distribuzione linux

Oggi ho ricevuto due stickers Debian gentilmente omaggiati da Unixstickers.com. Non ho peso tempo ne ho subito applicato uno al mio fido serverino casalingo al cui interno batte un cuore Debian, appunto 🙂

Unixstickers sta portando avanti un’iniziativa interessante: la commercializzazione di stickers con cui personalizzare i propri notebook, pc o qualsiasi altro dispositivo su cui possa girare una distribuzione linux. Attualmente sono disponibili soltanto per la distribuzione Debian, ma a breve (parole di Stefano Di Luca, responsabile del progetto) dovrebbe essere possibile acquistare un pacchetto di stickers a tema.

Joomla: wdbanner variant v. 1.3, modulo per banner a rotazione

Ho aggiornato il modulo per la visualizzazione di banner a rotazione con le seguenti caratteristiche:

  • Rimosso il campo suffisso dai parametri: ora non è più necessario specificare il suffisso che identificava univocamente il banner in caso di presenza di più moduli nella stessa pagina
  • Aggiunto parametro Flash wmode per indicare la modalità di visualizzazione dei banner in flash. Infatti nella precedente versione vi era un problema quando un elemento div della pagina si sovrapponeva al banner, quest’ultimo veniva mostrato sempre in primo piano. Adesso il problema è risolto, basta impostare il parametro wmode con il valore transparent che è di default.
E’ possibile scaricare questa nuova versione da qui:

Joomla: recuperare l’identificativo di una voce di menu

Volendo recuperare l’identificativo di una voce di menu il codice di esempio qui sotto può essere di aiuto:

  1. $Itemid = '';
  2. $menu = &JSite::getMenu();
  3. if ( $items = $menu->getItems( 'link', 'index.php?option=com_agimm&view=elencoimmobili' ) )
  4.   foreach( $items as $menuItem )
  5.   {
  6.     if ( !$menuItem->published )
  7.      continue;
  8.  
  9.     $params = $menu->getParams( $menuItem->id );
  10.     if ( $params->get('tipo') == $immobili[0]->tipo and $params->get('id_categoria') == $immobili[0]->id_categoria )
  11.       $Itemid = $menuItem->id;
  12.   }
  • Alla linea 3 vengono recuperate le voci di menu in base al contenuto del link. Infatti il metodo getItems() di JMenu serve proprio a recuperare tutte le voci di menu corrispondenti ad un certo attributo. Il nome dell’attributo (ovvero il nome di un campo della tabella jos_menu) va indicato come primo parametro, mentre nel secondo va inserito il valore di pertinenza. Nel esempio vengono recuperate tutte le voci i cui link puntano alla view elencoimmobili del componente com_agimm.
  • Dalla linea 4 inizia il loop per ciclare le voci di menu recuperate
  • Alle linee 6 e 7 vengono saltate le voci di menu non pubblicate
  • Alle linee 9, 10 e 11  viene fatto un controllo sui parametri della voce di menu attuale e se corrisponde a quanto voluto viene preso l’id inserendolo nella variabile $Itemid

Giocare a Frets on Fire con controller Guitar Heroe 3 su Ubuntu 11.04

Alcuni appunti ripresi da HowTo: Frets on Fire with Wii Guitar – Ubuntu Forums e adattati a Ubunti 11.04 per configurare il controller Guitar Hero 3 e giorcare a Frets on Fire:

E’ necessario il seguente materiale:

  • Un Wiimote
  • Un controller Guitar Heroe III
  • Una interfaccia bluetooth da collegare al nostro pc

Di seguito i passi da seguire:

Installare i seguenti pacchetti:

sudo apt-get install libbluetooth3 bluez-utils original-awk bison flex libbluetooth-dev autoconf mouseemu

Installare i driver per il wiimote:

sudo apt-get install libcwiid1 libcwiid1-dev lswm wmgui wminput

Adesso lanciando il seguente comando il wiimote dovrebbe essere già pronto per funzionare come mouse:

sudo wminput

Adesso creiamo un profilo di configurazione per il controller Guitar Heroe creando il file gh3 con il seguente comando

sudo gedit /etc/cwiid/wminput/gh3

e inseriamo dentro il file le seguenti istruzioni

# Wii Guitar profile for Frets on Fire
Classic.Down=KEY_ENTER #Strum
Classic.Dpad.X = ABS_X
Classic.Dpad.Y = ABS_Y
Classic.LStick.X = ABS_HAT0X
Classic.LStick.Y = ABS_HAT0Y
Classic.RStick.X = ABS_HAT1X
Classic.RStick.Y = ABS_HAT1Y
Classic.A = KEY_F1 #First Fret starting at top of wiiguitar
Classic.B = KEY_F2 #Second Fret
Classic.X = KEY_F3 #Third Fret
Classic.Y = KEY_F4 #Forth Fret
Classic.Minus = BTN_SELECT
Classic.Plus = BTN_START
Classic.Home = BTN_MODE
Classic.L = BTN_TL
Classic.R = BTN_TR
Classic.ZL = KEY_F5 #Fifth Fret
Classic.ZR = BTN_TR2

A questo punto lanciare lanciamo questo comando con il wiimote collegato al controller Guitar Hero e premiamo i tasti 1+2 del wiimote quando richiesto:

sudo wminput -c /etc/cwiid/wminput/gh3

Ora possiamo avviare Frets on Fiere e se tutto è andato a buon fine dovremmo potere giocare con la nostra chitarra.

lftp: problema di timeout

Uso abitualmente lftp, come ho descritto in Backup di siti ftp con lftp, per eseguire il backup giornaliero di alcuni miei siti.

Recentemente mi è successo che lftp mi si connettesse normalmente ma andasse in timeout nel momento che doveva eseguire il download. Ho risolto il problema inserendo il seguente settaggio prima di impartire qualsiasi altro comando a lftp:

set ftp:ssl-allow no

Per maggiori informazioni a riguardo consultate lftp :- directory listing fails due to firewall. | SupportSages, dove ho trovato la soluzione al problema.

html2pop3: scaricare la posta utilizzando una connessione di un provider diverso da quello della posta elettronica

Alcuni provider impediscono di scaricare la posta tramite protocollo pop3 dalle mailbox che offrono per i propri utenti se non collegandosi esclusivamente con l’adsl del fornitore stesso. La posta rimane comunque consultabile via webmail.

Per risolvere il problema esistono alcune utility che funzionano da proxy  e si frappongono tra la webmail del provider e il protocollo pop3 utilizzato dal client di posta.

Uno di queste utility html2pop3 che ho sostituito al posto di FreePops in quanto quest’ultimo non funzionava utilizzandolo con un account su virgilio.it.

Per maggiori informazioni consultare il sito ufficiale: http://www.baccan.it/index.php?sezione=html2pop3