io il wipe lo faccio sempre x evitare problemi cmq prova senza e poi casomai se ti da problemi fai full wipe (dalvock cache fallo cmq )
ciao
e' relativamente semplice orcuccio!!
per prima cosa ti serve una cartella META-INF con all'interno le sottocartelle e i relativi file (sono i certificati google) e li puoi prendere da qualsiasi altro zip flashabile. apri la cartella meta-inf e apri com/google/android e li vedrai 2 file:
update-binary
e
updater-script
tu apri il secondo e li trovi le stringhe di comandi da dare per fare in modo che la recovery esegua!
oltre alla cartella meta-inf devi anche creare una cartella con le rispettive sottocartelle per il file che vuoi flashare (ad esempio la rosie).
mi spiego meglio, il Rosie.apk deve andare in /system/app, quindi tu dovrai creare una cartella con nome "system" e una sottocartella "app". in quest'ultima ci spari il rosie.apk!
riassumendo lo zip finale dovra' essere:
zip
--meta-inf
----com
------googe
---------android
-----------update-binary e updater-script
--system
---app
-----rosie.apk
(in meta inf ci sono anche i certificati non dimenticarlo)
per l'updater-script e' abbastanza intuitivo:
questo un esempio:
ui_print serve per i messaggi che visualizza la recovery e che tu leggi solitamentecodice:ui_print("pacchetto flashabile creato da cesco89"); ui_print("preparo il sistema.....monto /data"); run_program("/sbin/busybox", "mount", "/data"); ui_print("estraggo il file..."); package_extract_dir("data", "/data"); ui_print("smonto la partizione /data"); run_program("/sbin/busybox", "umount", "/data"); ui_print("finito! riavvia il sistema!")
run_program serve per far avviare busybox e fargli montare la o le partizioni che ti servono (puoi montare una sola partizione per ogni "run_program" quindi se vuoi montare sia data che system dovrai fare 2 comandi)
la sintassi e' sempre
run_program("/sbin/busybox", "mount", "<partizione che ti serve>")
quindi non devi far altro che scrivere al posto di <...> /data o /system secondo le necessita' e per smontare le partizioni sostituisci "mount" con "unmount"
lo script se cosi' si puo' dire e' "intelligente" perche' non vuole il percorso completo di estrazione del file, basta semplicemente usare il comando
package_extract_dir("data", "/data")
oppure
package_extract_dir("system", "/system")
e la recovery in automatico andra' a sovrascrivere solo il o i file interessati!
la cartella che hai creato prima era /system/app con all'interno il rosie.apk, dicendogli di estrarre il contenuto di /system in /system, lui non fa altro che sovrascrivere il file nella posizione che tu hai impostato, ossia system/app
e questo vale con tutti gli altri file che vuoi flashare!
vuoi flashare insieme anche la bootanimation??...ti bastera' aggiungere le stringhe:
run_program("/sbin/busybox", "mount", "/data")
package_extract_dir("data", "/data")
e se vuoi prima o dopo o entrambi ci metti un bel messaggio da visualizzare in recovery con
ui_print("installo bootanimation")
ricordati sempre alla fine di smontare le partizioni con
run_program("/sbin/busybox", "unmount", "/system")
run_program("/sbin/busybox", "unmount", "/data")
cosa importantissima, il file che scrivi non deve avere nessuna estensione!!! (ne txt ne nulla!) e alla fine di ogni riga di comando devi metterci ;
facile no??
ah gia', se vuoi fare un lavoro fatto bene alla fine devi signare il file!!!
per signarlo ti serve questo: SignApk.rar
e poi dai il comando :
java -jar signapk.jar certificate.pem key.pk8 your-update.zip your-signed-update.zip
quei 3 che ti ho evidenziato li devi trascinare dentro il prmpt nello stesso ordine
e alla fine riscrivi il nome dello zip ma con la dicitura "signed"
semplice!!!![]()
Ultima modifica di cesco; 16-05-11 alle 15:05
Follow me on:
Androidiani app
<!-- Place this tag where you want the widget to render. -->
<div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>
<!-- Place this tag after the last widget tag. -->
<script type="text/javascript">
window.___gcfg = {lang: 'it'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script><br>
<a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
Estensione Androidiani per Google Chrome
Orco (16-05-11)
[SIZE=1]HTC Desire HD Rooted & ENG S-OFF
ROM: SP33_ITALIA_1.0.0_AROMAfull
RADIO: 26.09.04.11_M2
KERNEL: 3.0.93-ucdx
RECOVERY: 4EXTRecovery Touch 1.0.0.5 RC9
ecco dai a sfornare cose eheheheheh
ps: x le nostre rom andro ovviamente
Follow me on:
Androidiani app
<!-- Place this tag where you want the widget to render. -->
<div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>
<!-- Place this tag after the last widget tag. -->
<script type="text/javascript">
window.___gcfg = {lang: 'it'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script><br>
<a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
Estensione Androidiani per Google Chrome
Follow me on:
Androidiani app
<!-- Place this tag where you want the widget to render. -->
<div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>
<!-- Place this tag after the last widget tag. -->
<script type="text/javascript">
window.___gcfg = {lang: 'it'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script><br>
<a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
Estensione Androidiani per Google Chrome
Follow me on:
Androidiani app
<!-- Place this tag where you want the widget to render. -->
<div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>
<!-- Place this tag after the last widget tag. -->
<script type="text/javascript">
window.___gcfg = {lang: 'it'};
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script><br>
<a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
Estensione Androidiani per Google Chrome