Build.pro ANDROID

Qui si discute delle console basate sul OS Android
paulvern
Cavaliere OC.it
Cavaliere OC.it
Posts: 268
Joined: 21 Sep 2011, 11:50

Build.pro ANDROID

Post by paulvern »

Ecco le prime righe di un articolo che spero potrà diventare più cospicuo in futuro.
Il titolo si riferisce a un file di sistema che definisce la maggior parte delle caratteristiche di un dispositivo ANDROID. Grazie al file build.pro si può fare tranquillamente riconoscere al market di google un dispositivo per un altro o fingere di disporre di una risoluzione diversa da quella reale. Si possono 'tweakare' veramente molte cose.
Il problema è che non ho trovato una guida specifica per tutte le voci, quindi proverò a testare le varie voci e cercare di capire a cosa servono.
Build.pro è un file di testo e si trova nella cartella system di ogni dispositivo android. Può essere modificato tranquillamente con il blocco note su un PC e poi riversato nuovamente sul dispositivo. E' meglio non fare troppe modifiche in una volta per evitare di dover riflashare tutto perché si è bloccato il dispositivo.
Innanzitutto vediamo alcuni build.pro a confronto. Concentriamoci sulla prima parte del file al momento.

Questo è il build.pro di un LG-P500 Optimus One

Code: Select all

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=IMM76D
ro.build.display.id=ICS_DYNAMITE_V2.0ro.build.version.incremental=eng.mint.20120503.165310
ro.build.version.sdk=15
ro.build.version.codename=REL
ro.build.version.release=4.0.4
ro.build.date=Thu May  3 16:55:28 EEST 2012
ro.build.date.utc=1336053328
ro.build.type=user
ro.build.user=mint
ro.build.host=androidmeda
ro.build.tags=test-keys
ro.product.model=LG-P500
ro.product.brand=lge
ro.product.name=lge_p500
ro.product.device=p500
ro.product.board=p500
ro.product.cpu.abi=armeabi-v6l
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=LGE
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=msm7x27
# ro.build.product is obsolete; use ro.product.device
ro.build.product=p500
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=thunderg-user 2.3.3 GRI40 LG-P500-V20g.19C11F164C release-keys
ro.build.fingerprint=lge/thunderg/thunderg:2.3.3/GRI40/LG-P500-V20g.19C11F164C:user/release-keys
ro.build.characteristics=default
ro.cm.device=p500
# end build properties
#
# system.prop for p500
# 
Questo è il build.pro di una JXD S601 modificata con la custom rom di Skelrom

Code: Select all

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=Skelrom v1
ro.build.display.id=Skelrom v1
ro.build.version.incremental=esp.skelton.20120418.192622
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.4
ro.build.date=Wed Feb 29 17:39:04 HKT 2012
ro.build.date.utc=1326112012
ro.build.type=user
ro.build.user=skelROM
ro.build.host=Android
ro.build.tags=test-keys
ro.product.model=R800i
ro.product.brand=SEMC
ro.product.name=Play
ro.product.device=zeus
ro.product.board=zeus
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=Sony Ericsson
ro.product.locale.language=es
ro.product.locale.region=ES
ro.wifi.channels=14
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=zeus
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=esp.skelton.20120418.192622
ro.build.fingerprint=XPERIAMOD/f02ref/f02ref:2.3.4/esp.skelton.20120418.192622/test-keys
# end build properties 
Questa una delle prime build.pro per il JXD S601 uscite (credo che la modifica fosse di samty, ma ho scaricato questa dal sito di homer73):

Code: Select all

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=MID_PSP.wifi.20120109-Unoffice
ro.build.display.id=MID_PSP.wifi.20120109-Unoffice
ro.build.version.incremental=eng.samty.20120109.202612
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.4
ro.build.date=Mon Jan  9 20:26:52 HKT 2012
ro.build.date.utc=1326112012
ro.build.type=user
ro.build.user=samty
ro.build.host=samty
ro.build.tags=test-keys
ro.product.model=R800i
ro.product.brand=SEMC
ro.product.name=Play
ro.product.device=zeus
ro.product.board=zeus
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=Sony Ericsson
ro.product.locale.language=it
ro.product.locale.region=IT
ro.wifi.channels=14
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=zeus
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=f02ref-user 2.3.4 MID_PSP.wifi.20120109 eng.samty.20120109.202612 test-keys
ro.build.fingerprint=GAME_SYSTEM/f02ref/f02ref:2.3.4/MID_PSP.wifi.20120109/eng.samty.20120109.202612:user/test-keys
# end build properties

Tutte le proprietà sono di tipo ro o rw, cioè read only o read write. Il sistema può modificare quelle di tipo read write (per esempio lo stato del wifi), ma non quelle di tipo ro (per esempio il nome della ROM).

Le prime righe contengono informazioni del tutto personalizzabili
ro.build.id contiene il nome interno della ROM
ro.build.display.id contiene il nome che viene mostrato vedendo le proprietà del sistema
ro.build.version.incremental è il numero di versione
ro.build.version.sdk il numero della sdk con cui è stata sviluppata la ROM (credo che in realtà sia importante solo se testate la rom sull'emulatore android)
ro.build.version.codename il nome in codice? (non so quando venga visualizzato)
ro.build.version.release il numero di versione della releaase
ro.build.date la data di rilascio (va scritta in inglese con il giorno mese numerogiorno ora:minuti:secondi fascia fusio orario anno)
ro.build.date.utc stessa cosa scritta in coordinated universal time (che è un po' complesso... per qualche informazione vedi http://www.dxing.com/utcgmt.htm#utc altrimenti puoi lasciare anche come è)
ro.build.type io ho visto sempre user, sospetto che ci possano essere altri tipi di build
ro.build.user il nome dell'autore
ro.build.host il sistema operativo su cui funziona (Android nel nostro caso)


E veniamo ora alla parte importante del build.pro, la parte che definisce come si chiamerà il nostro dispositivo e come sarà riconosciuto dal sistema (e dal market).

ro.build.tags la funzione di questa linea mi è un po' oscura. E' sempre impostata come test-keys
ro.product.model quì mettiamo il modello del dispositivo. Per fare riconoscere al market il nostro dispositivo come un Sony Ericsson Experia (che dispone dei tastini per giocare e quindi è quello che dà la migliore compatibilità per esempio con una JXD S601) inseriremo le informazioni copiate dal build.pro del Sony (importante modificare questi campi e anche description e fingerprint). Alcuni giochi, per esempio i vari Dungeon Defenders, non sembrano supportati come si deve dall'Experia e non si lanciano. In quel caso basta sostituire le caratteristiche con quelle dell'LG indicato nel primo build.pro e tutto funziona!
ro.product.brand
ro.product.name
ro.product.device
ro.product.board
Inutile testare questi quattro campi, copiateli da un build.pro di qualcosa che volete simulare e inserite i nomi corretti.
ro.product.cpu.abi quì si sceglie la tipologia di processore, non utilizzare build.pro di modelli con processori a tecnologia diversa, niente mips al posto di arm o viceversa
ro.product.cpu.abi2 stessa cosa
ro.product.manufacturer quì va inserito il nome della ditta che ha fatto il dispositivo.
ro.product.locale.language la siglia del linguaggio installato di default. Consiglio è prima verificare cosa è supportato dalla ROM. Non importa se poi nella ROM non è possibile cambiare il linguaggio al proprio. Questa riga serve a specificare al market in che linguaggio scaricare un applicativo (almeno credo, non ho conferme in merito).
ro.product.locale.region stessa cosa di cui sopra?
ro.wifi.channels il numero di canali wifi attivi (per l'europa è 14, in altre nazioni può essere meno, lasciare 14 permette uno spettro maggiore di possibilità di connessione
ro.build.product di nuovo il modello per prodotto da copiare da un altro build.pro
# Do not try to parse ro.build.description or .fingerprint
ro.build.description la descrizione della build
ro.build.fingerprint e il fingerprint sono quelle che vengono lette direttamente dal google Market
Last edited by paulvern on 10 May 2012, 9:35, edited 1 time in total.
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: Build.pro ANDROID

Post by Zip »

ottimo Paulvern, ti consiglio di indagare su come rootare di default attraverso modifiche alla rom,
me lo hanno spiegato qui http://forum.openhandhelds.net/index.php?topic=47.15
ma ho venduto e non posso testare per ora
Farox
Cavaliere OC.it
Cavaliere OC.it
Posts: 812
Joined: 4 May 2011, 20:48
Console open: GP2X-F200 bianca, Caanoo (bianca),
Pandora (First Batch 256MB RAM) nera,
JXD S7300B nera, Rpi model B
Location: Umbria
Contact:

Re: Build.pro ANDROID

Post by Farox »

Bene vedo nascere un nuovo articolo per la Webzine.... :mrgreen:
Image
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: Build.pro ANDROID

Post by Zip »

è gia in progetto per oc7
"la mia prima custom rom"
:mrgreen:
paulvern
Cavaliere OC.it
Cavaliere OC.it
Posts: 268
Joined: 21 Sep 2011, 11:50

Re: Build.pro ANDROID

Post by paulvern »

Zip wrote:ottimo Paulvern, ti consiglio di indagare su come rootare di default attraverso modifiche alla rom,
me lo hanno spiegato qui http://forum.openhandhelds.net/index.php?topic=47.15
ma ho venduto e non posso testare per ora

Ho visto i tuoi post ma le modifiche del build.pro sono qualcosa di molto più facile che costruire una rom modificata. Hai qualche dritta sul come costruire il fingerprint? Perché non mi è molto chiaro.
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: Build.pro ANDROID

Post by Zip »

cosa intendi per finger print?
paulvern
Cavaliere OC.it
Cavaliere OC.it
Posts: 268
Joined: 21 Sep 2011, 11:50

Re: Build.pro ANDROID

Post by paulvern »

intendo la proprietà ro.build.fingerprint. Non so come si crei la stringa di questa proprietà ma è quella più importante per fare riconoscere correttamente il dispositivo al market. Copiandole da altri build.pro funziona bene, ma saperla costruire sarebbe meglio
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: Build.pro ANDROID

Post by Zip »

ah, non ho idea allora !

tornando al root di default
qui c'e una spiegazione di skelton che mi mando via pm
skelton wrote:Hi, it's difficult to make an easier explanation. Basically you need to modify your kernel or boot.img to edit the default.prop file inside.

Put ro.secure=0

Then just place a su binary in system/bin and update permissions in your updater-script

set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 06755, "/system/bin/su")
@paul ci sei per un articolo a 4 mani per oc7?
paulvern
Cavaliere OC.it
Cavaliere OC.it
Posts: 268
Joined: 21 Sep 2011, 11:50

Re: Build.pro ANDROID

Post by paulvern »

Volentieri per l'articolo. Mandami pure quello che hai già se hai già scritto qualcosa.
User avatar
kayuz
Cavaliere OC.it
Cavaliere OC.it
Posts: 627
Joined: 4 May 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Location: Terni

Re: Build.pro ANDROID

Post by kayuz »

raga, se provate Rom toolbox, disponibile anche free dal market, potete anche modificare il build.pro e altre cose, provatelo è incredibile!! :) :)
Post Reply