Android Filesystem Partitions

This post is in Italian language


/preload

/storage

/boot
Questa è la partizione che permette al telefono di fare il boot, come suggerisce il nome. Essa include il kernel e il ramdisk. Senza questa partizione, il dispositivo non è in grado di avviarsi. Il wipe di questa partizione da recovery dovrebbe essere fatto solo se assolutamente necessario e, una volta fatto, il dispositivo NON deve essere riavviato prima di installare una nuova partizione di boot. Questa operazione può essere fatta mediante l’installazione di una ROM che include una partizione di /boot.

/system
Come indica il nome, tutti i file relativi al sistema operativo sono memorizzati in questa partizione. Questa include anche tutte le applicazioni di sistema che fanno parte di Android. Cancellando la partizione di sistema si rimuoverà dal proprio dispositivo il sistema Android. Tuttavia, si può ancora
avviare il sistema in recovery mode o download mode e flashare una nuova ROM.

/recovery
Questa partizione permette di avviare la modalità di ripristino (recovery mode). In questa modalità, è possibile eseguire molte funzioni, come cancellare i dati della partizione /data per ripristinare il dispositivo alle impostazioni di fabbrica e cancellare la partizione cache.

/data
Chiamata anche userdata, la partizione /data contiene i dati dell’utente. Qui è dove si trovano i vostri
contatti, messaggi, impostazioni e applicazioni che avete installato. Pulendo la partizione si esegue
essenzialmente un reset di fabbrica sul dispositivo, ripristinandolo allo stato in cui era quando si è avviato la prima volta, o al modo in cui era dopo l’ultima installazione di una ROM. Quando si esegue un
wipe data/factory reset da recovery mode, quello che si sta facendo è pulire questa partizione.

/cache
Questa è la partizione dove Android memorizza log e dati di app a cui accede di frequente. I download da Google Play Store sono memorizzati anche in questa partizione. Il wipe di questa partizione non influenza i vostri dati in alcun modo. L’operazione libera solo spazio nella partizione, i dati vengono poi automaticamente rigenerati usando il dispositivo.

/misc
Questa partizione contiene varie impostazioni del sistema in forma di on/off switches. Queste impostazioni possono essere per esempio la configurazione USB e diverse impostazioni hardware ecc.. Questa è una partizione importante e se è danneggiata o mancante, molte delle funzionalità del dispositivo non funzioneranno normalmente.

/sdcard
Questa non è una partizione della memoria interna del dispositivo, ma della scheda SD. In termini di utilizzo, questo è il vostro spazio di archiviazione che potete utilizzare come volete,per esempio potete memorizzare i file multimediali, documenti, ROM, ecc. Cancellando questa partizione perderete tutti i dati contenuti su essa, quindi è necessario fare il backup di tutti i dati contenuti, sul computer. Oltretutto diverse applicazioni installate dall’utente salvano i propri dati e le impostazioni sulla scheda SD e cancellando questa partizione perderete tutti questi dati. (Quindi meglio fare il backup prima)
Sui dispositivi che hanno sia memoria interna e una scheda SD esterna come il Samsung Galaxy S e diversi tablet, la partizione /sdcard viene sempre utilizzata per fare riferimento alla memoria interna. Per la scheda SD esterna (se presente) è utilizzata una partizione alternativa, che differisce da dispositivo a dispositivo. Nel caso dei dispositivi della serie Samsung Galaxy S, è /sdcard/sd, mentre in molti altri dispositivi, è /sdcard2. A differenza di /sdcard, non ci sono dati di sistema o applicazione che vengono memorizzati automaticamente su questa scheda SD esterna e tutto cio che è presente su di essa è aggiunto dall’utente. È possibile cancellarla in modo sicuro dopo aver effettuato il backup di tutti i dati che è necessario salvare.

/sd-ext
Si tratta di una partizione aggiuntiva della sd card che viene utilizzata per lo più da ROM personalizzate e mods. Questa partizione è utile per i dispositivi con poca memoria interna, generalmente utilizzata per installare app aggiuntive quando la memoria interna scarseggia.

 

 

Fonte http://bitbay.altervista.org/android/android-le-partizioni-del-file-system-t36.html

Script php estrazione dati da db per tasker

Considerando una tabella nel db fatta così:

Tabella interventi
id | id_cliente	| tipo_intervento	| descrizione  
---------------------------------------------------
1 |	21	| 	a1 		| desc1 
2 | 	25	| 	a2 		| desc2 
3 | 	25 	| 	a3 		| desc3 
4 | 	29 	| 	a4 		| desc4 
5 | 	30 	| 	a5 		| desc5 


Questo è lo script php

define( 'DB_HOST', 'localhost' );
define( 'DB_USER', 'user' );
define( 'DB_PASSWORD', 'pass');
define( 'DB_NAME', 'nomedb' );

//connessione al db
$conn_id = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ('KO|500|problema temporaneo del server (Internal Server Error)1');
@mysql_select_db(DB_NAME, $conn_id) or die ('KO|500|problema temporaneo del server (Internal Server Error)2');
// @mysql_query("SET NAMES '".DB_CHARSET."'", $conn_id) or die ('KO|500|problema temporaneo del server (Internal Server Error)3');

$query = "SELECT * FROM interventi WHERE id_cliente = 25";

$result = mysql_query($query, $conn_id);

while ($data = mysql_fetch_assoc($result)) {
	$arraydati[] = $data;
}

echo json_encode($arraydati);

questo il risultato dello script

[
	{"id":"2","id_cliente":"25","tipo_intervento":"a2","descrizione":"desc2"},
	{"id":"3","id_cliente":"25","tipo_intervento":"a3","descrizione":"desc3"}
]

Ed in fine questo è lo scriptlet

var httpd = global('HTTPD');
var jsonparsed = [];
jsonparsed = JSON.parse(httpd);
setGlobal('TIPO', jsonparsed[0].tipo_intervento);

La differenza è nel tipo di dato generato, nell’esempio di facebook il risultato è un array unidimenzionale invece il risultato di quella query è un array bidimensionale.
Infatti vengono estratte 2 righe dalla tabella, in ogni caso anche se il risultato è una sola riga, per come è strutturato lo script php, lo scriptlet funziona.
La differenza è nel jsonparsed[0].
0 per la prima riga, 1 per la seconda ecc.

Visualizzare i like di una pagina facebook in un widget con tasker

Questo task permette di avere il numero di facebook  likes di una pagina in un widget.
image

Per il widget sto usando Zooper pro ma è possibile utilizzare qualsiasi altra app che legga le variabili di tasker (uccw, minimalistic text, ecc. )

Il task può essere accoppiato ad un profilo di cron orario.
image

Fa una richiesta al server facebook, alla pagina http://graph.facebook.com/facebookpage, riceve il risultato in json. Uno scriptlet parsa i dati
image

ed in fine viene messo in una variabile per il widget.

I like è solo una delle molte informazioni che la pagina graph di facebook restituisce.

Questo è uno screen del task
image

Questa è la descrizione testuale del task
Facebook Like (25)
A1: Ottieni HTTP [ Server:Porta:http://graph.facebook.com/facebookpage Percorso: Attributi: Cookies: User Agent: Timeout:10 Tipo Mime:text/plain File di Uscita: Fidati di qualsiasi certificato:Off ]
A2: JavaScriptlet [ Codice:var httpd = global(‘HTTPD’);
var jsonparsed =[];
jsonparsed = JSON.parse(httpd);
setGlobal(‘LIKES’, jsonparsed.likes); Librerie: Auto Uscita:On Timeout (Secondi):45 ]
A3: Zooper Widget Pro Variable [ Configurazione:#TLIKES# = %LIKES Pacchetto:org.zooper.zwpro Nome:Zooper Widget Pro Variable Timeout (Secondi):0 ]

Questo invece è l’xml

<TaskerData sr="" dvi="1" tv="4.6u2m">
	<Task sr="task25">
		<cdate>1355744034829</cdate>
		<edate>1423088721783</edate>
		<id>25</id>
		<nme>Facebook Like</nme>
		<pri>10</pri>
		<Action sr="act0" ve="7">
			<code>118</code>
			<Str sr="arg0" ve="3">http://graph.facebook.com/facebookpage</Str>
			<Str sr="arg1" ve="3"/>
			<Str sr="arg2" ve="3"/>
			<Str sr="arg3" ve="3"/>
			<Str sr="arg4" ve="3"/>
			<Int sr="arg5" val="10"/>
			<Str sr="arg6" ve="3">text/plain</Str>
			<Str sr="arg7" ve="3"/>
			<Int sr="arg8" val="0"/>
		</Action>
		<Action sr="act1" ve="7">
			<code>129</code>
			<Str sr="arg0" ve="3">var httpd = global('HTTPD');
var jsonparsed =[];
jsonparsed = JSON.parse(httpd);
setGlobal('LIKES', jsonparsed.likes);</Str>
			<Str sr="arg1" ve="3"/>
			<Int sr="arg2" val="1"/>
			<Int sr="arg3" val="45"/>
		</Action>
		<Action sr="act2" ve="7">
			<code>31664</code>
			<Bundle sr="arg0">
				<Vals sr="val">
					<com.twofortyfouram.locale.intent.extra.BLURB>#TLIKES# = %LIKES</com.twofortyfouram.locale.intent.extra.BLURB>
					<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
					<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>org.zooper.zw.tasker.var.extra.STRING_TEXT</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
					<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
					<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
					<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
					<org.zooper.zw.tasker.var.extra.INT_VERSION_CODE>1</org.zooper.zw.tasker.var.extra.INT_VERSION_CODE>
					<org.zooper.zw.tasker.var.extra.INT_VERSION_CODE-type>java.lang.Integer</org.zooper.zw.tasker.var.extra.INT_VERSION_CODE-type>
					<org.zooper.zw.tasker.var.extra.STRING_TEXT>%LIKES</org.zooper.zw.tasker.var.extra.STRING_TEXT>
					<org.zooper.zw.tasker.var.extra.STRING_TEXT-type>java.lang.String</org.zooper.zw.tasker.var.extra.STRING_TEXT-type>
					<org.zooper.zw.tasker.var.extra.STRING_VAR>LIKES</org.zooper.zw.tasker.var.extra.STRING_VAR>
					<org.zooper.zw.tasker.var.extra.STRING_VAR-type>java.lang.String</org.zooper.zw.tasker.var.extra.STRING_VAR-type>
				</Vals>
			</Bundle>
			<Str sr="arg1" ve="3">org.zooper.zwpro</Str>
			<Str sr="arg2" ve="3">Zooper Widget Pro Variable</Str>
			<Int sr="arg3" val="0"/>
		</Action>
		<Img sr="icn" ve="2">
			<cls>com.facebook.katana.LoginActivity</cls>
			<pkg>com.facebook.katana</pkg>
		</Img>
	</Task>
</TaskerData>

Ripristino garanzia s3 (contatore custom download mode) con TriangleAway

Per il ripristino della garanzia oltra alla rom originale serve ripristinare anche il contatore del download mode

Custom Binary System Status

sono necessari i permessi di root.

  1. Download di Triangle Away TriangleAway-vX.XX.apk
  2. Avviatelo e  concedere i diritti di root
  3. Confermate eventuali download aggiuntivi.
  4. Ora premete sul pulsante Reset Flash counter e confermate cliccando su Continue.

Flashare rom originale scaricabile da samfirmware con odin.