[Huawei Ascend G615][DEV] Discussione riserervata a sviluppatori ROM e KERNEL
DEVELOPERS THREAD
Usiamo questo thread per raccogliere info, codice, links e files utili per spiegare gli sviluppi dei nostri studi sul ASCEND G615 / U9508
La struttura di questo thread cercherà di essere la seguente.
POST - partition table
POST - kernel
POST - recovery
POST - rom
e in seguito commenti a caldo e aggiornamenti da riscrivere formattati correttamente.
1 POST - Partition table
Internal SDCARD /eMMC /dev/block/mmcblk0
Spoiler:
codice:
fdisk -l /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 7952 MB, 7952400384 bytes
256 heads, 63 sectors/track, 963 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 947 7634943+ ee EFI GPT
Partition 1 has different physical/logical beginnings (non-Linux?):
phys=(1023, 255, 63) logical=(0, 0, 2)
Partition 1 has different physical/logical endings:
phys=(1023, 255, 63) logical=(946, 203, 11)
Spoiler:
codice:
parted /dev/block/mmcblk0 print
Error: The backup GPT table is not at the end of the disk, as it should be.
This might mean that another operating system believes the disk is smaller.
Fix, by moving the backup to the end (and removing the old backup)?
Fix/Ignore/Cancel? I
I
Warning: Not all of the space available to /dev/block/mmcblk0 appears to be
used, you can fix the GPT to use all of the space (an extra 262111 blocks) or
continue with the current setting?
Fix/Ignore? I
I
Model: MMC 008G4B (sd/mmc)
Disk /dev/block/mmcblk0: 7952MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Nella parte successiva (111kB) non si capisce bene cosa ci sia.
C'è anche da sottolineare che le partizioni non riempiono tutta la eMMC ma risulta avanzare uno spazio alla fine di 134 MB!!! (da approfondire il motivo e cosa ci possa essere dentro).
xloader /dev/block/mmcblk0p1
262kB
The x-loader is a small first stage bootloader derived from the u-boot base code. It is loaded into the internal static RAM by the OMAP ROM code. Due to the small size of the internal static RAM, the x-loader is stripped down to the essentials. The x-loader configures the pin muxing, clocks, DDR, and serial console, so that it can access and load the second stage bootloader (u-boot) into the DDR.
round /dev/block/mmcblk0p2
3 MB
mostra un pattern ripetitivo di 40 bytes per i primi 200 bytes
Spoiler:
codice:
FF 0F FF 00 FF CC C3 CC C3 3C CC FF FE FF FE EF FF DF FF DD FF FB FF FB BF FF 7F FF 77 F7 BD EF FF F0 FF F0 0F FC CC 3C CC 33 CC CF FF EF FF EE FF FD FF FD DF FF BF FF BB FF F7 FF F7 7F 7B DE
poi 00 fino alla posizione 0x1a8000
poi FF fino alla fine.
nvme /dev/block/mmcblk0p3
4 MB
Relazionato al bootloader o al modem..
misc /dev/block/mmcblk0p4
4 MB
Vuota, tutti 00, delle stesse dimensioni di nvme.
splash /dev/block/mmcblk0p5
8 MB
Un'analisi di questa partizione ha evidenziato come questa partizione sia praticamente un log del kernel in plain text.
Per vederlo si può lanciare questo comando da adb shell:
codice:
cat /dev/block/mmcblk0p5
o eventualmente per salvare in un file di testo si può usare il comando:
oeminfo /dev/block/mmcblk0p6
33MB
Contiene definitivamente qualcosa, non so cosa.
Probabile che contenga qualcosa relazionato allo sblocco del bootloader con fastboot.
reserved /dev/block/mmcblk0p7
8 MB
Relazionata alla boot.img, viene installata ogni volta che viene cambiato kernel.
reserved2 /dev/block/mmcblk0p8
8 MB
Partizione ext4 montabile. Completamente vuota.
recovery2 /dev/block/mmcblk0p9
8 MB
Vuota, tutti 00.
recovery /dev/block/mmcblk0p10
8 MB
Partizione della recovery, spiegata meglio nel post 3.
boot /dev/block/mmcblk0p11
8 MB
Kernel+ramdisk, spiegata meglio nel post 2.
modemimage /dev/block/mmcblk0p12
33 MB
E' accessibile e montata nel filesystem della rom, possibile che abbia delle routine per calibrare la radio.
modemnvm1 /dev/block/mmcblk0p13
8 MB
E' accessibile e montata nel filesystem della rom, sembra abbia qualcosa a che fare con la radio(modem).
modemnvm2 /dev/block/mmcblk0p14
8 MB
E' accessibile e montata nel filesystem della rom, sembra abbia qualcosa a che fare con la radio(modem).
system /dev/block/mmcblk0p15
939 MB
Non c'è bisogno di presentazioni.
cache /dev/block/mmcblk0p16
268 MB
Non c'è bisogno di presentazioni.
cust /dev/block/mmcblk0p17
536 MB
E' accessibile e montata nel filesystem della rom, contiene software rilasciato dalla Huawei e junk app.
userdata /dev/block/mmcblk0p18
5926 MB
Non c'è bisogno di presentazioni.
FUORI DALLA TABELLA DELLE PARTIZIONI MA NELLA eMMC mmcblk0boot1
2 MB
Piena di FF.
Per quanto riguarda la posizione, idem come sopra.
mmcblk0boot0
2 MB
Da qua si legge un sacco di testo tra cui un
console=ttyAMA0, 115200
però non saprei la funzione di questa partizione.
external_sd /dev/block/mmcblk1p1
Sotto un esempio di quello che potreste vedere con una memory card da 16 GB
Spoiler:
codice:
fdisk -l /dev/block/mmcblk1
Disk /dev/block/mmcblk1: 16.0 GB, 16012804096 bytes
255 heads, 63 sectors/track, 1946 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk1p1 1 1947 15633408 c Win95 FAT32 (LBA)
10-04-13, 16:59
mangusta86
2 POST - Kernel
Ogni tentativo fatto fino ad oggi di compilare dai sorgenti del U9510 è fallito.
Al momento abbiamo trovato il modo di scompattare il kernel e ricompattarlo con una differenza dell'ordine dei pochi bytes nel HEADER dell'immagine (primi 64bytes).
Abbiamo quindi ricavato con certezza le posizioni nella RAM in cui vengono caricati il kernel e la ramdisk.
kernel address: 0x00008000
ramdisk address: 0x01000000
tags address: 0x00000100
page size = 2048 bytes
Abbiamo accertato che la stringa da 20 bytes nella posizione da 0x240 a 0x253 non è immessa dalla Huawei ma è una sorta di checksum (probabilmente SHA1) effettuato dallo script che ricompatta la boot.img. Ciononostante abbiamo la convinzione che il bootloader, per permettere l'avvio di soli kernel usciti dalla Huawei, usi la partizione RESERVED come firma digitale del kernel.
Ho effettuato una piccola analisi della partizione RESERVED per cercare di capire la logica con la quale Huawei firma i kernel. Purtroppo quanto emerso non porta nuove speranze in quanto, posto comunque il risultato della mia analisi. (Clicca qui per scaricare report analisi sulla partizione Reserved del kernel B107)
Come promesso precedentemente ho preparato un'archivio dei kernel che ho ricevuto e raccolto dalle ROM che circolano sulla rete installabili con la recovery cinese:
Se avete altre versioni di kernel da mandarmi oppure feedback sui kernel precedenti non esitate a contattarmi.
Potete utilizzare il comando dd per fare il dump delle partizioni BOOT e RESERVED nel seguente modo:
Le buone notizie sono però relazionate appunto a questi sorgenti, in quanto c'è buona speranza che per gran parte dell'hardware siano sufficienti a compilare un kernel che almeno nelle funzioni base del riconoscimento dell'architettura della board e della cpu, sia compatibile con il nostro U9508.
P.S. credits to maknsacc per la mole di lavoro svolto
RAMDISK
Per quanto riguarda le ramdisk possiamo affermare che al momento non abbiamo trovato un modo per scompattare e ricompattare la initrd.cpio.gz ovvero il file estratto con le procedure descritte precedentemente. Abbiamo però la possibilità di estrarle e studiarle come peraltro già precedentemente dimostrato.
Rimangono quindi validi i link alle ramdisk che ho messo su github:
Analizzando la recovery cinese, quella ufficiale e la partizione boot è emerso che le immagini delle recovery hanno un header di 800 bytes prima del magic ANDROID! (presente in tutte le boot.img di android).
Di questi header delle due recovery disponibili al momento, sono uguali i primi 80 bytes. Vengono ora riportate le principali differenze nei 800 bytes. Allegato 55616Allegato 55617
Per chi usa linux e dovesse trovare problemi ad accedere alla shell di adb quando il telefono è in modalità recovery, è necessario riavviare il demone di adb come root.
codice:
sudo adb start-server
Di seguito i link alle due recovery, scompattati dal file .exe dei cinesi. E' possibile metterle sul dispositivo con fastboot.
notiziona da parte di huawei gli ho contattati dicendo:
I am an owner of a huawei u9508 and I am also a developer, and I would like to know when an update is released and when it will be released the kernel source
la huawei mi ha risposto
Hi. No news for Huawei U9508 upgrade & kernel source release has been confirmed. Thanks.
traduzione: nessuna notizia di un aggiornamento a jelly bean 4.2 pero il rilascio del kernel è imminente
11-04-13, 10:50
fracarro
Non vorrei dire castronerie ma leggendo bene l'intero paragrafo, mi sembra di capire che alla Huawei non abbiano la minima idea(news), né dell' upgrade, né del rilascio dei sorgenti del kernel....
11-04-13, 10:53
mauronofrio
POST 4
riguardo alle rom nn si puo fare granchè quando potrò anche modificare la ramdisk e qualcosaltro si potrannno fare passi avanti per ora si puo giostrare solo con il build.prop quindi poco e nnt, all'uscita dei sorgenti del kernel vorrei essere in contatto con qualcuno che possa compilarli per farmi capire come fare ( al momento nn ho il pc a breve ce l'avro).
Una cosa che ci siamo accorti con sorex è che senza la cartella data e in particolare della cartella cust presente dentro essa, dove ci sono parecchi file tra cui lib, la rom nn parte, di conseguenza sarebbe un lavoro per voi( che conoscete meglio il linguaggio) aggiornare meta-inf facendo in modo che venga scritta automaticamente quella cartella che tra l'altro occupa uno spazio bello grosso nella rom.
Poi quando avro un po' di tempo dovro dare un'occhiata agli apk e ai rispettivi lib xk nn sono quelli comuni alle altre rom, nn si puo sostitutire l'app per i msg e l'app phone.apk .
Fino ad ora nessuno si è messo realmente a modifcare la rom, io purtroppo senza pc posso fare poche cose, quando ce lo cerco di sfruttarlo al max, per fortuna sorex impara in fretta e gli ho fornito parecchi tool per costruire la rom
notiziona da parte di huawei gli ho contattati dicendo:
I am an owner of a huawei u9508 and I am also a developer, and I would like to know when an update is released and when it will be released the kernel source
la huawei mi ha risposto
Hi. No news for Huawei U9508 upgrade & kernel source release has been confirmed. Thanks.
traduzione: nessuna notizia di un aggiornamento a jelly bean 4.2 pero il rilascio del kernel è imminente
No credo che la traduzione sia sbagliata...dice:
Ciao. Nessuna notizia è confermata sull'upgrade e il rilascio del kernel per il Huawei U9508. Ergo non hanno idea e di sicuro non rilasciano il kernel.
PS non sono un dev ma dovevo pur correggere la traduzione:)
11-04-13, 15:00
mauronofrio
hanno scritto che il rilascio del kernel é stato confermato ma che nn ci sono aggiornamenti, o almeno cosi ho capito
11-04-13, 15:26
Padoan
Infatti hanno rilasciato un piccolo aggiornamento sul kernel: D
11-04-13, 15:51
Rockguy40
Quote:
Originariamente inviato da Padoan
Infatti hanno rilasciato un piccolo aggiornamento sul kernel: D
Non c'entra con quello che hanno risposto a mauronofrio, "kernel source" è diverso da "kernel update". La prima sono le sorgenti del kernel, la seconda è un aggiornamento del kernel. Quindi non rilasceranno a breve nessuna sorgente questo è quello che gli hanno detto. Non hanno menzionato aggiornamenti kernel nella risposta:)