Visti e considerati i recenti avvenimenti, che hanno aperto gli occhi a tutti sull'argomento sviluppo ROM per il Liquid, e che hanno messo in luce in maniera lampante i limiti del cosiddetto gruppo di sviluppo che opera su Modaco, mi è venuta l'idea di coagulare in un nuovo gruppo di sviluppo tutto italiano le varie competenze presenti su questo forum, per cercare di ovviare nella maniera migliore al mancato rilascio della ROM leaked finale da parte dell'innominabile tanghero.
Io sono un hobbista e niente più, ma cucino da tempo ROM in ambiente WM, e la cosa mi diverte assai. Ho una buona esperienza su Linux e me la cavicchio con diversi linguaggi di programmazione, pertanto penso di avere a disposizione gli strumenti per poter fare un tentativo di ricompilazione dei sorgenti di Eclair che Cyanogen ha messo a disposizione sulla sua repository. La finalità di tutto ciò è ottenere una ROM per il Liquid che sia più performante della attuale beta leaked, ma soprattutto poter intervenire sul codice a livello di sorgenti per poter personalizzare veramente dalle fondamenta tutto quello che ci salterà per la testa.
Dopo aver fatto una dichiarazione di intenti all'ottimo Drig, mi hanno raggiunto alcuni messaggi privati contenenti manifestazioni di interesse e ciò mi ha indotto a proseguire e ad aprire questo thread.
PREREQUISITI Per poter partecipare in modo fattivo al gruppo di lavoro, è necessario possedere alcuni prerequisiti. Se non si posseggono, poco male: si può sempre supportare il lavoro dall'esterno e fornire spunti/suggerimenti/idee. I perditempo, coloro che partecipano solamente per ringraziare/incoraggiare/denigrare/mandare a quel paese farebbero meglio ad astenersi per evitare dannose propagazioni all'infinito del thread di sviluppo, che renderebbero di fatto assai difficoltosa la ricerca delle informazioni utili per chi sta sviluppando. Veniamo a quanto serve:
- Essere in grado di installare una distro linux - Saper compilare un sorgente sotto linux - Avere una minima conoscenza degli strumenti di sviluppo Java - Non pensare che Bash sia un detersivo che lava più bianco che più bianco non si può - Non pensare che tar sia un colorito insulto che le popolazioni del nord Italia rivolgono ai connazionali nati a sud di Roma - Non pensare che git sia una scampagnata domenicale fuori porta con la famiglia - Non pensare che adb push sia lo spacciatore Abdullah che staziona all'angolo sotto casa vostra
Se possedete questi requisiti di minima, direi che lo zio Sam ha bisogno di voi. Se non li possedete, tranquilli che non vi siete persi niente altro che qualche notte insonne a cercare di capire come mai una distro linux non faccia mai e poi mai quello che avete in testa di fargli fare. Sarete più sereni e sicuramente avrete trombato qualche volta di più, quindi non preoccupatevi, non vi manca un braccio o qualcos'altro di fondamentale.
(...continua...)
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
L'obiettivo che perseguiremo è la realizzazione di una ROM che chiameremo convenzionalmente AFO (Angio F*ck Off) 1.0, che sarà compilata partendo dai sorgenti Eclair messi a disposizione dal progetto AOSP e patchati e rivisti dal mitico Cyanogen. Per tentare di fare ciò, non è necessario conoscere la teoria della relatività ristretta di Einstein, ma alcuni concetti di base su Android sì, e quindi è opportuno fare qualche spiegone preliminare.
LO SPIEGONE PRELIMINARE
Vi riassumo bervemente (sic!) quello che ho capito io sull'argomento, lasciando a tutti i volenterosi il compito di integrare/correggere quanto sotto riportato, in modo da poter partire tutti dalla stessa base. Il sistema Android che i nostri cellulari montano, non è altro che una sovrastruttura software scritta in Java (chi pensa che Java sia un'isola tra il Pacifico e l'oceano Indiano è meglio che molli lì) che comunica con un sistema operativo molto scalabile ed adatto a microprocessori molto diversificati scritto molto tempo fa da tal Linus Torvalds il cui nome è Linux. Quindi, nel cuore dei nostri telefoni batte Linux, ma chi impartisce i comandi e dice a Linux cosa diavolo vogliamo fare è Android. Linux è un sistema operativo general purpose che comunica con i vari pezzi di silicio, vetro e chi più ne ha più ne metta attraverso dei files binari di interfacciamento specifici detti drivers. Evidentemente, siccome ogni dispositivo ha "pezzi di silicio" differenti, i drivers devono essere adatti all'hardware con il quale comunicano, pertanto non sono in linea generale open source e sono realizzati direttamente dalle case produttrici dell'hardware. Per complicare un po' le cose, Google ha deciso di sviluppare una propria Java Virtual Machine per far girare Android sui propri dispositivi, e a questa ha dato il nome di Dalvik Virtual Machine (se l'avessero chiamata Javaqualcosa qualcuno alla Sun si sarebbe vagamente incaxxato ). E per complicarle ancora di più, invece di pubblicare Android sotto licenza GNU (se pensate che uno gnu sia una razza di bufalo africano, perchè siete ancora qui?) ma sotto licenza Apache (se pensate ad una quasi estinta tribù indiana, rinnovo l'invito precedente). Questo tipo di licenza ha permesso ai furbacchioni produttori dell'hardware di introdurre parti di codice non open source all'interno del framework di Android, rendendo la vita più difficile per noi smanettoni. Per meglio capire il concetto, ci si può affidare a questa slide:
Ora, vediamo quello che abbiamo a disposizione e quello che possiamo fare con quello che abbiamo a disposizione:
- I sorgenti Android Eclair - I drivers hardware precompilati della beta leaked - Il kernel linux precompilato della beta leaked - Le parti non open source pescate dalla beta leaked
Quindi, non avendo a disposizione i sorgenti del kernel non sarà possibile al momento integrare nuove funzionalità tipo netfilter, tun/tap/ tethering, ecc. e dovremo "accontentarci" di quello che passa il convento a livello di Android senza poter intervenire sulla parte Linux a basso livello (drivers compresi, evidentemente). Anche eventuali bugs sulle parti non open source dovremo tenerceli, ahimè, almeno fino a quando non uscirà la definitiva dalla quale potremo attingere nuovamente.
PARTIAMO TUTTI DALLA STESSA BASE
Per costituire un punto di partenza uguale per tutti, è necessario installare una distro linux che abbia la possibilità di operare con un SDK Sun Java. Ubuntu 9.10 è quella che attualmente sto utilizzando ed è anche una tra le più supportate.
Una volta installata e configurata la distro, è necessario scaricare l'SDK di android, partendo da
Di seguito, installate le parti specifiche dell'sdk per Eclair (non vi sto a spiegare come fare, sul sito ci sono spiegazioni molto esaurienti).
(continua...)
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
Ultima modifica di Topogigi il venerdì 12 marzo 2010, 20:19, modificato 1 volta in totale.
andate a bervi una birra, una tazza di caffè o a farvi una cicca mentre tutto magicamente accade, ed alla fine verificate che nella directory mydroid siano presenti tutte le directory con cui lavoreremo.
In particolare, nella directory mydroid verifichiamo la directory vendor/google/passion ed apriamo il file extract-files.sh
Dentro troveremo una serie di comandi adb pull che servono ad estrarre tutti i files non open source ed i drivers e firmwares proprietari necessari per ricompilare una build android specifica per quel terminale. Il nostro primo obiettivo è quello di determinare quali files siano necessari specificamente per il Liquid, e ricostruire un vendor id funzionante con uno script di estrazione simile a quello del passion.
Se siete arrivati fino a qui, direi che possiamo cominciare a lavorare insieme: io ho già iniziato a cercare i files non open source e pubblicherò a breve la mia lista, che chiunque potrà aggionare e correggere con quello che ha trovato.
Buon lavoro.
P.S. per evitare perdite di tempo, è inutile fare dichiarazioni di intenti o manifestare buona volontà. Sarà parte del gruppo di sviluppo automaticamente chi inserirà post costruttivi e dimostrerà fattivamente di prendere parte al lavoro. Chi non ha raggiunto nemmeno lo step iniziale di installazione del sistema e sync delle repository, è caldamente invitato a NON POSTARE NULLA in questo thread, che in caso contrario diventerà in breve tempo illeggibile.
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
Ultima modifica di Topogigi il venerdì 12 marzo 2010, 20:37, modificato 4 volte in totale.
Mentre cerchiamo di scoprire quali sono tutti i files proprietari non open source per ricostruire il vendor id del Liquid, posto qualche info che può essere utile in fase di sviluppo:
In questo modo avrete un backup della partizione recovery (mtd1.img) e della partizione boot (mtd2.img) sulla radice della vostra SD. Potete rinominare i file boot.img e recovery.img, se volete.
Copiate i file dove volete sul pc. Se volete esaminarne i contenuti, basterà scaricare questo file:
A questo punto si possono eseguire modifiche a piacimento ai files contenuti, ed in particolare al file init.rc che contiene, fra l'altro, tutte le soglie (in pagine da 4kb) necessarie a regolare l'autolowmemorykiller. L'autolowmemorykiller, per chi non lo sapesse, è il meccanismo interno che Android possiede per assicurare che le applicazioni possano convivere al meglio in multitasking senza saturare la RAM disponibile. Uno dei problemi maggiori della beta leaked che abbiamo a disposizione è, guarda caso, una gestione fallimentare della memoria disponibile. Regolando al meglio l'autolowmemorykiller il sottoscritto non ha bisogno di affidarsi a nessun task manager ammazzatutto per avere 60/70 mega di ram disponibili praticamente sempre ed un sistema reattivo e sveglio in ogni condizione...
Terminate le modifiche, occorre ricomprimere la directory modificata in un file gzip in questo modo:
Occhio che quest'ultimo comando comprime tutto quello che trova nella directory, quindi se avete lasciato della spazzatura in giro, levatela se no ve la troverete nell'immagine di boot o di recovery che state andando a rigenerare!
Per ricompattare le immagini scompattate, sarà necessario utilizzare l'utility liquidmkbootimg scaricabile da qua:
Ovviamente, non possedendo i sorgenti del kernel, potremo solo intervenire sulla struttura della ramdisk e sulle varie build.properties, ma vi assicuro che già non è poco e può assicurare qualche soddisfazione anche in termini di prestazioni....
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
Ultima modifica di Topogigi il lunedì 15 marzo 2010, 14:58, modificato 7 volte in totale.
piccola correzione, android richiede la versione 5 dell'sdk java, non disponibile su ubuntu 9.10, per aggirare il problema aggiungere nei repository le righe seguenti: deb http://mirrors.us.kernel.org/ubuntu/ jaunty multiverse deb http://mirrors.us.kernel.org/ubuntu/ jaunty-updates multiverse aggiornare la lista pacchetti e installare il jdk appropriato
venerdì 12 marzo 2010, 20:21
Per questo post krak76 ha ricevuto un ringraziamento : Nicoz
Topogigi
Developer
Iscritto il: martedì 23 febbraio 2010, 7:58 Messaggi: 86 Ha ringraziato: 3 Grazie ricevuti: 85 Identità: Età: 0
Cellulare: Acer A1
Provider: Tim
piccola correzione, android richiede la versione 5 dell'sdk java, non disponibile su ubuntu 9.10, per aggirare il problema aggiungere nei repository le righe seguenti: deb http://mirrors.us.kernel.org/ubuntu/ jaunty multiverse deb http://mirrors.us.kernel.org/ubuntu/ jaunty-updates multiverse aggiornare la lista pacchetti e installare il jdk appropriato
Stiamo sincronizzando la repo di cyanogen e non la source AOSP, e cyanogen ci ha messo una pezza. Comunque, si può compilare con entrambe le versioni. Cyanogen consiglia la 1.6 per il suo tree....
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
piccola correzione, android richiede la versione 5 dell'sdk java, non disponibile su ubuntu 9.10, per aggirare il problema aggiungere nei repository le righe seguenti: deb http://mirrors.us.kernel.org/ubuntu/ jaunty multiverse deb http://mirrors.us.kernel.org/ubuntu/ jaunty-updates multiverse aggiornare la lista pacchetti e installare il jdk appropriato
Stiamo sincronizzando la repo di cyanogen e non la source AOSP, e cyanogen ci ha messo una pezza. Comunque, si può compilare con antrambe le versioni. Cyanogen consiglia la 1.6 per il suo tree....
pardon, non avevo letto che era la cyan, scusatemi
venerdì 12 marzo 2010, 20:41
eldiau
Developer
Iscritto il: giovedì 18 febbraio 2010, 1:26 Messaggi: 19 Ha ringraziato: 1 Grazie ricevuti: 9 Identità: Età: 36
Cellulare: Acer Liquid
Provider: Vodafone
Ok. questa e' una mia lista preliminare basata sulle differenze di system.img fra la rom LiquidE beta e quello dell'emulatore in SDK:
In questa dir possiamo sare una bella potata (es /system/app/UrFooz.apk e /system/app/Spinlets.apk) in maniera da avere il minimo non open (es. le app google) tanto poi eventuali app le aggiungiamo in fase di rom cooking nella quale ognuno potra' farsi il tema e le aggiunte che vuole... /system/app/AcerAbout.apk /system/app/AcerSoundRecorder.apk /system/app/AcerSync.apk /system/app/Bluetooth.apk /system/app/Calendar.apk /system/app/CalendarProvider.apk /system/app/DeskClock.apk /system/app/DTG.apk /system/app/DunService.apk /system/app/Facebook1.1.2.apk /system/app/Gallery3D.apk /system/app/Gmail.apk /system/app/GmailProvider.apk /system/app/GoogleApps.apk /system/app/GoogleCheckin.apk /system/app/GoogleContactsSyncAdapter.apk /system/app/GooglePartnerSetup.apk /system/app/GoogleSearch.apk /system/app/GoogleSettingsProvider.apk /system/app/GoogleSubscribedFeedsProvider.apk /system/app/gtalkservice.apk /system/app/Launcher2.apk /system/app/LiveWallpapers.apk /system/app/MagicSmokeWallpapers.apk /system/app/Maps.apk /system/app/MarketUpdater.apk /system/app/MediaUploader.apk /system/app/NemoPlayer.apk /system/app/NetworkLocation.apk /system/app/SetupWizard.apk /system/app/Spinlets.apk /system/app/Stk.apk /system/app/Street.apk /system/app/Superuser.apk /system/app/Talk.apk /system/app/TalkProvider.apk /system/app/Task.apk /system/app/UrFooz.apk /system/app/Vending.apk /system/app/VisualizationWallpapers.apk /system/app/VoiceDialer.apk /system/app/VoiceSearch.apk /system/app/XT9IME.apk /system/app/YouTube.apk
Qui c'e' roba non chiusa (es bluetoothd) ma che non ho trovato in asop/cyano oppure che sta in external (wpa_supplicant) forse inizialemnte ci conviene "succhiarci" questi binari cosi' come sono.... /system/bin/airbaggy /system/bin/alog /system/bin/bluetoothd /system/bin/brcm_patchram_plus /system/bin/CKPD-daemon /system/bin/cnd /system/bin/dbus-daemon /system/bin/diag_klog /system/bin/get_prox_light_calib /system/bin/handset-keypress /system/bin/hciattach /system/bin/ip /system/bin/loc_api_app /system/bin/mm-abl-test /system/bin/mm-qcamera-test /system/bin/mm-qcamera-testsuite-client /system/bin/mm-vdec-omx-property-mgr /system/bin/PktRspTest /system/bin/port-bridge /system/bin/qmuxd /system/bin/rmt_storage /system/bin/sdptool /system/bin/sensorcalibutil_yamaha /system/bin/sensorserver_yamaha /system/bin/sensorstatutil_yamaha /system/bin/sound /system/bin/spp_test /system/bin/wifibtap /system/bin/wiperiface /system/bin/wl /system/bin/wpa_supplicant
Questa e' importante perche' contiene i firmware del Yamaha MS-3C (accelerometro/bussola) /system/etc/firmware /system/etc/firmware/yamato_pfp.fw /system/etc/firmware/yamato_pm4.fw
Questa e' altra roba android proprietaria google (da vedere) /system/framework/com.google.android.gtalkservice.jar /system/framework/com.google.android.maps.jar /system/framework/qcnvitems.jar /system/framework/qcrilhook.jar /system/framework/spp_test.jar
Lib e' sicuramente la cartella piu' "importante" per esempio dopo aver compilato tutta la asop/cyano il make mi fallisce il bild della immagine flash perche' non trova libcamera.so che sta proprio qui. /system/lib/bluez-plugin /system/lib/bluez-plugin/audio.so /system/lib/bluez-plugin/input.so /system/lib/egl/egl.cfg /system/lib/egl/libEGL_adreno200.so /system/lib/egl/libGLESv1_CM_adreno200.so /system/lib/egl/libGLESv2_adreno200.so /system/lib/hw/copybit.qsd8k.so /system/lib/hw/gralloc.qsd8k.so /system/lib/hw/lights.qsd8k.so /system/lib/hw/sensors.salsa.so /system/lib/liba2dp.so /system/lib/libatu.so /system/lib/libaudiopolicy.so /system/lib/libaudio.so /system/lib/libauth.so /system/lib/libbluedroid.so /system/lib/libbluetoothd.so /system/lib/libbluetooth.so /system/lib/libcamera.so /system/lib/libcm.so /system/lib/libcommondefs.so /system/lib/libdbus.so /system/lib/libdiag.so /system/lib/libdll.so /system/lib/libdsm.so /system/lib/libdss.so /system/lib/libgps.so /system/lib/libgsdi_exp.so /system/lib/libgsl.so /system/lib/libgstk_exp.so /system/lib/libjni_acerAgpsSetting.so /system/lib/libjni_AcerChewing.so /system/lib/libjni_cangjieime.so /system/lib/libjni_xt9input.so /system/lib/libloc_api.so /system/lib/libloc-rpc.so /system/lib/libloc.so /system/lib/libmm-abl.so /system/lib/libmmgsdilib.so /system/lib/libmmipl.so /system/lib/libmmjpeg.so /system/lib/libmm-omxcore.so /system/lib/libms3c_yamaha.so /system/lib/libnv.so /system/lib/liboemcamera.so /system/lib/liboem_rapi.so /system/lib/libOmxAacDec.so /system/lib/libOmxAacEnc.so /system/lib/libOmxAmrEnc.so /system/lib/libOmxCore.so /system/lib/libOmxEvrcDec.so /system/lib/libOmxEvrcEnc.so /system/lib/libOmxMp3Dec.so /system/lib/libOmxQcelp13Dec.so /system/lib/libOmxQcelp13Enc.so /system/lib/libOmxVdec.so /system/lib/libOmxVidEnc.so /system/lib/liboncrpc.so /system/lib/libopencorehw.so /system/lib/libpbmlib.so /system/lib/libpdapi.so /system/lib/libpdsm_atl.so /system/lib/libping_mdm.so /system/lib/libqcomm_omx.so /system/lib/libqmi.so /system/lib/libqueue.so /system/lib/librefcne.so /system/lib/libril-acer-1.so /system/lib/libril-acerril-hook-oem.so /system/lib/librpc.so /system/lib/librs_jni.so /system/lib/libRS.so /system/lib/libsensor_yamaha.so /system/lib/libspeech.so /system/lib/libstagefrighthw.so /system/lib/libuim.so /system/lib/libusbconn.so /system/lib/libvoAACDec.so /system/lib/libvoAMRNBDec.so /system/lib/libvoAMRWBDec.so /system/lib/libvoAndroid.so /system/lib/libvoASFFR.so /system/lib/libvoH264Dec.so /system/lib/libvomemedia.so /system/lib/libvoMMCCRRS.so /system/lib/libvoMMPlay.so /system/lib/libvoMP3Dec.so /system/lib/libvoMPEG4Dec.so /system/lib/libvoOMXME.so /system/lib/libvoOMXOne.so /system/lib/libvoPackUV.so /system/lib/libvoQCELPDec.so /system/lib/libvoSrcRTSP.so /system/lib/libvoVidDec.so /system/lib/libvoWMADec.so /system/lib/libvoWMVDec.so /system/lib/libwiperjni.so /system/lib/libwms.so /system/lib/libwmsts.so /system/lib/libxt9core.so
Qui ci sono vari ringtones e suoni che non ci interessano piu' di tanto. /system/media
cartella vuota ?? /system/sd
Non sono sicuro di chi usi questa roba (LatinIME.apk?) /system/usr/keychars/a1-keypad.kcm.bin /system/usr/keychars/acer-hs-butt.kcm.bin /system/usr/keychars/avr.kcm.bin /system/usr/keylayout/a1-keypad.kl /system/usr/keylayout/acer-hs-butt.kl
Questa cartella contiene i dati per il funzionamento di della tastiera T9 presente in /system/app/XT9IME.apk /system/usr/xt9
Aggiungo altra carne al fuoco (anche se marginale), mkbootimg, mi danno fastidio due cosette:
1 - Sembrerebbe che la versione compilata da ASOP/Cyano non crei un immagine compatibile con il liquid, per cui siamo legati al binario rilasciato da behnaam sono molto curioso di sapere dove sta la differenza! Ho chiesto a behnaam che mi ha rimbalzato a Disc0 il quale non mi ha ancora risposto... ora provo a mandare un PM direttamente a Paul
2 - L'header: "ANDROID!pk!" i primi 8 byte sono il magic e fin qui tutto ovvio (da bootimg.h " #define BOOT_MAGIC "ANDROID!" ") ma i byte 9 e 10... che significa quel "pk" ??
leggendo mkbootimg.c trovo che la prima cosa scritta nel file e' ovviemente l'header:
La hdr e' una struct boot_img_hdr che inizia cosi: struct boot_img_hdr { unsigned char magic[BOOT_MAGIC_SIZE]; unsigned kernel_size; /* size in bytes */
Quindi a rigor di logica quel "pk" dovrebbe essre un unsigned int (e fin qui quadra con il fatto che siamo 2 byte) che indica la dimensione in byte del kenel e qui non mi quadra piu' visto che pk e' 0x706b cioe' 28779 bytes un po pochino per un kernel che per li liquid e' di 2197504 byte mentre per il liquid E e' di 2025492 byte.
E per quanto riguarda il liquid E la cosa si complica ancora di piu' perche' l'header del superboot scaricato dal wiki della ACR contiene 0x08d1 ai byte 9 e 10... che e' uguale al valore che ho trovato nel boot.img della ROM originale...
Ok. questa e' una mia lista preliminare basata sulle differenze di system.img fra la rom LiquidE beta e quello dell'emulatore in SDK:
Direi che ci conviene prendere come modello una rom completa del Nexus e non l'emulatore: ho paura che molte componenti nell'emulatore non ci siano in quanto le librerie dell'sdk sono pensate per sfruttare l'hardware di un PC.
Di seguito prendo a spunto il tuo post per dirti quello che secondo me potrebbe essere strettamente necessario per il runtime:
Codice:
/system/app/Bluetooth.apk
Credo che questa app sia compilata con un framework non standard, ma potrei sbagliarmi...
Codice:
/system/bin/alog /system/bin/bluetoothd (il demone bluetooth) /system/bin/brcm_patchram_plus /system/bin/CKPD-daemon /system/bin/cnd /system/bin/dbus-daemon (gestore dbus) /system/bin/diag_klog /system/bin/get_prox_light_calib /system/bin/handset-keypress /system/bin/hciattach (gestore connessioni bluetooth) /system/bin/ip /system/bin/loc_api_app /system/bin/mm-abl-test /system/bin/mm-qcamera-test /system/bin/mm-qcamera-testsuite-client /system/bin/mm-vdec-omx-property-mgr /system/bin/PktRspTest /system/bin/port-bridge /system/bin/qmuxd /system/bin/rmt_storage /system/bin/sdptool /system/bin/sensorcalibutil_yamaha /system/bin/sensorserver_yamaha /system/bin/sensorstatutil_yamaha /system/bin/sound /system/bin/spp_test /system/bin/wifibtap (promette bene: è il vero gestore del chipset wifi/bt?) /system/bin/wiperiface /system/bin/wl /system/bin/wpa_supplicant
Per quanto riguarda questi, penso anch'io che ci convenga tenerceli come sono. La maggior parte mi sembra roba proprietaria.
Questi mi sembrano fondamentali. Tutti gli altri sono files di configurazione contenenti parametri, niente di compilabile: tra l'altro sono tutti modificabili.
....e qui, secondo me, si balla: a parte i .conf che riprendiamo così come sono, secondo me sono importanti i BCM4325.bin e BCM4325Fac.bin che dovrebbero contenere qualche accidente che riguarda il chipset Broadcom 4325 che gestisce wifi, bluetooth e radio FM. Molti altri sono codec audio/video (non fondamentali per compilare, direi). Dhd.ko è il modulo del kernel che inizializza il wifi, quindi non lo possiamo ricompilare.
Ho dato una sfrondata alle varie librerie audio/video che al momento ci interessano relativamente ed a quelle riguardanti il bluetooth che potremo vederci con calma in un secondo momento. In linea generale, pur non possedendo il kernel source, potremo cercare di ricompilare lo stesso alcune librerie, ma al momento non mi affannerei più di tanto: prendiamocele per buone...
Credo che questi files siano i drivers di interfacciamento con il keypad (gestione di tutti i pulsanti e dei soft-keys). Buoni tutti!
Codice:
/system/app/XT9IME.apk /system/usr/xt9
Di questi, visto che possiamo installarci il tastierino HTC, me ne impipperei...
In ogni caso, eccellente lavoro, direi!
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
lunedì 15 marzo 2010, 11:50
Per questo post Topogigi ha ricevuto un ringraziamento : Giocoso
Topogigi
Developer
Iscritto il: martedì 23 febbraio 2010, 7:58 Messaggi: 86 Ha ringraziato: 3 Grazie ricevuti: 85 Identità: Età: 0
Cellulare: Acer A1
Provider: Tim
Aggiungo altra carne al fuoco (anche se marginale), mkbootimg, mi danno fastidio due cosette: [cut]..............
Effettivamente ho provato a ricostruire una immagine di recovery con il sistema che avevo utilizzato con l'ultima Donut e non funge manco per nulla. L'immagine ricostruita (senza cambiare nulla) ha una dimensione differente (il che darebbe conto della differenza dei tre bytes del kernel_size) ma sebbene la flashi senza errori non fa il boot (adb reboot recovery porta al bootloader e non alla recovery). Ora indago....
P.S. per la cronaca, devi leggere i tre bytes con la notazione little endian, per cui se trovi scritto 18 6B 21 devi leggere 21 6B 18 che in decimale dà appunto 2.193.408 bytes che è la lunghezza esatta del kernel che sto utilizzando per le prove (quello dell'ultima recovery di Malez). Ah, è ovvio che devi considerare tre bytes e non due, eh?
Edito il post originario, in ogni caso.
[EDIT] Ok, ora è tutto chiaro. Con il mkbootimg di Behnaam non si arriva da nessuna parte: servono le modifiche che ha fatto Disc0 in modo che il bootloader del Liquid si beva la nuova immagine.
Da qui:
testato e funzionante per ora solamente su recovery.
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
P.S. per la cronaca, devi leggere i tre bytes con la notazione little endian, per cui se trovi scritto 18 6B 21 devi leggere 21 6B 18 che in decimale dà appunto 2.193.408 bytes che è la lunghezza esatta del kernel che sto utilizzando per le prove (quello dell'ultima recovery di Malez). Ah, è ovvio che devi considerare tre bytes e non due, eh?
!!!!! l'ARM e' bi-endian ma io davo per scontato che venisse usato in modalita' big endian
Il lag della ROM Liquid E beta mi sta' decisamente irritando, spero non sia tutta colpa del kernel senno' il lavoro che stiamo facendo sara' inutile...
Per tornare in topic... sto' ancora provando a compilare la Cyanogen ma spesso il build si ferma, a volte anche per errori banali (es. un cast a char di un cont char) ma sta eclair/cyano viene usata in giro? TU sei riuscito a compilare il tutto ?
Per ora io uso:
Codice:
source build/envsetup.sh lunch simulator m
va avanti alla grande ma poi...
system/core/libpixelflinger/codeflinger/load_store.cpp:23:34: error: machine/cpu-features.h: No such file or directory
sto' header esiste ma evidentemente il path di include non e' completo, peccato che in giro per il tree c'e' una selva oscura di makefile sparsi... vabbe', mi appresto a perdermi all'interno...
Domani sono fuori per lavoro, ma mercoledì ci provo anch'io. A naso, direi che ti converrrebbe anche in questo caso compilare per un device e non per l'emulatore. Lo dico perchè pixelfinger è una libreria che ha a che fare con lo schermo lcd e l'opengl... Puoi fare un tentativo di compilare per il passion/nexus, magari dando anche in pasto alla build i files non proprietari tirandoli fuori da un dump del nexus? Io ho linux solo sul pc del lavoro ed ora sono a casa....
[EDIT] Provato: confermo che è necessario compilare per un device, e nello specifico conviene prendere come base senz'altro il Nexus One (passion)
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
Ultima modifica di Topogigi il mercoledì 17 marzo 2010, 20:15, modificato 1 volta in totale.
Purtroppo devo osservare che questo thread, che mi auguravo si popolasse, rimane più vuoto del previsto in termini di partecipazione.... Ma non demordo: ecco la mia versione provvisoria del file extract-files.sh già testata e funzionante. Sto procedendo a modificare il vendor-id del passion (ci sono parecchi files da editare e l'impresa non è proprio così semplice: in ogni caso sono a buon punto, almeno credo).
_________________ Vi gusta il mio lavoro? Siete soddisfatti? DONATE qualcosa a chi non riesce a mettere insieme il pranzo con la cena. Io, grazie al cielo, un piatto di minestra finora sono sempre riuscito a rimediarlo.
Non puoi aprire nuovi argomenti Non puoi rispondere negli argomenti Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi inviare allegati