[Jogos][Slideshow]

O que é build.prop

Quem já precisou editar a ROM, conhece muito bem o arquivo build.prop. Mas você sabe o que é e o que faz o build.prop?

Nesse post, eu explico isso e muito mais.


Descrição:
Build.prop (Propriedades de construção) é um arquivo com informações e configurações do seu dispositivo

O build.prop é gerado por um arquivo chamado buildinfo.sh junto com a rom, no momento que a rom é criada. Por isso você verá esse cabeçalho nos arquivos build.prop.
# begin build properties
# autogenerated by buildinfo.sh

Quando digo 'gerado', estou falando sobre o processo de construir (build) o sistema à partir de seu código fonte.

Um detalhe importante. Alguns comandos no build.prop abaixo não estarão no seu e vice-versa. Muitos comandos na verdade correspondem a outra edição ou versão do Android. por exemplo:

ro.lcd_min_brightness=40
O comando acima permite que você configure qual será o mínimo brilho da tela. É uma dica ótima para aqueles celulares que o brilho mínimo ainda é muito forte.

Para esse comando ser efetivo, a função dele precisa ser configurada em seu kernel, caso a função não tenha sido programada manual, ele simplesmente não vai fazer a ação. Assim como a HTC tem comandos no build.prop para melhorar o áudio do dispositivo e a Sony para melhorar a autonomia da bateria. Mesmo colocando esses comandos em seu celular, o código não será lido / interpretado pelo Android. 

É possível fazer uma aplicação ler os comandos escritos no build.prop. Alguns apps utilizam isso para manter a exclusividade com um dispositivo. Como era o caso do Katamari, que só funcionava nos celulares da NTT Docomo. Alguns comandos também podem de fato melhorar a velocidade ou a forma que seu Android funciona. Vou tratar sobre eles em um próximo post.

Exemplo de build.prop (Extraído do MOTO G 4G)

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=LPB23.13-35
ro.build.display.id=LPB23.13-35
ro.build.version.incremental=35
ro.build.version.sdk=22
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=5.1
ro.build.date=Mon Jun  8 09:23:25 CDT 2015
ro.build.date.utc=1433773405
ro.build.type=user
ro.build.user=hudsoncm
ro.build.host=ilclbld72
ro.build.tags=release-keys
ro.build.flavor=peregrine_retbr-user
ro.product.model=XT1040
ro.product.brand=motorola
ro.product.name=peregrine_retbr
ro.product.device=peregrine
ro.product.board=MSM8226
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.cpu.abilist=armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=
ro.product.manufacturer=motorola
ro.wifi.channels=
ro.board.platform=msm8226
# ro.build.product is obsolete; use ro.product.device
ro.build.product=peregrine
# Do not try to parse description, fingerprint, or thumbprint
ro.build.description=peregrine_retbr-user 5.1 LPB23.13-35 35 release-keys
ro.build.fingerprint=motorola/peregrine_retbr/peregrine:5.1/LPB23.13-35/35:user/release-keys
ro.build.characteristics=default
# end build properties
#
# from device/moto/peregrine/system.prop
#
#
# system.prop for msm8226
#

# Use reference RIL for initial bringup
#rild.libpath=/system/lib/libreference-ril.so
rild.libpath=/vendor/lib/libril-qc-qmi-1.so
rild.libargs=-d /dev/smd0
persist.radio.nitz_plmn=
persist.radio.nitz_lons_0=
persist.radio.nitz_lons_1=
persist.radio.nitz_lons_2=
persist.radio.nitz_lons_3=
persist.radio.nitz_sons_0=
persist.radio.nitz_sons_1=
persist.radio.nitz_sons_2=
persist.radio.nitz_sons_3=
ril.subscription.types=NV,RUIM
DEVICE_PROVISIONED=1
persist.radio.msgtunnel.start=false
persist.radio.manual_mode_timer=60

#
# system props for the cne module
#
persist.cne.feature=0


# Skip /sys/power/wait_for_fb_* nodes and
# force FB to be always on
debug.sf.fb_always_on=1

debug.sf.hw=1
debug.egl.hw=1
debug.composition.type=c2d
persist.hwc.mdpcomp.enable=true
debug.mdpcomp.logs=0
dalvik.vm.heapsize=36m
dev.pm.dyn_samplingrate=1

persist.demo.hdmirotationlock=false
ro.hdmi.enable=true
tunnel.decode=false
tunnel.audiovideo.decode=false
lpa.decode=true
lpa.use-stagefright=true

#system props for the MM modules

media.stagefright.enable-player=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-fma2dp=true
media.stagefright.enable-scan=true
mmp.enable.3g2=true
#9273 is decimal sum of supported codecs in AAL
#codecs:(PARSER_)AVI AC3 ASF AAC QCP DTS 3G2 MP2TS
mm.enable.qcom_parser=37491

# VIDC: debug_levels
# 1:ERROR 2:HIGH 4:LOW 0:NOlogs 7:AllLogs
vidc.debug.level=1

#
# system props for the data modules
#
ro.use_data_netmgrd=true

#system props for time-services
persist.timed.enable=true

#
# system prop for opengles version
#
# 196608 is decimal for 0x30000 to report version 3
ro.opengles.version=196608

#
# System props for telephony
# System prop to turn on CdmaLTEPhone always
telephony.lteOnCdmaDevice=0

# simulate sdcard on /data/media
#
persist.fuse_sdcard=false
persist.esdfs_sdcard=true
ro.crypto.fuse_sdcard=true

#
#snapdragon value add features
#
# System props for audio
ro.qc.sdk.audio.ssr=false
##fluencetype can be "fluence" or "fluencepro" or "none"
persist.audio.fluence.mode=endfire
persist.audio.handset.mic=digital
ro.config.vc_call_vol_steps=7
# FM maximum volume be between 0 and 8192 (0dB)
ro.audio.fm_max_volume=4096

#need rotation info in audio-land
ro.audio.monitorRotation=1

# Enable/disable cabl
ro.qualcomm.cabl=0

# system prop for NFC DT
ro.nfc.port=I2C

#
# system property for Bluetooth hci transport
#
ro.qualcomm.bt.hci_transport=smd

#
# system property for Bluetooth HFP version
#
ro.bluetooth.hfp.ver=1.6

#
# system property for Bluetooth SAP support
# Motorola disabled SAP
#
ro.qualcomm.bluetooth.sap=false

# Bluetooth LE power class
qcom.bt.le_dev_pwr_class=1

##property to choose between virtual/external wfd display
persist.sys.wfd.virtual=0
# Motorola, ams087, 09/24/2013, IKJBMR2-6432 : disable tunnel audio encode
#tunnel.audio.encode = true

# Enable SSR
persist.sys.ssr.restart_level=3
persist.sys.qc.sub.rdump.on=1

# For TCMD debug level
persist.tcmd.log.limit=0

# Disable QCOM net early sockets feature
net.early.sockets=0

# Radio RIL properties
persist.radio.no_wait_for_card=1
persist.radio.apm_sim_not_pwdn=1
persist.radio.dfr_mode_set=1
persist.radio.relay_oprt_change=1

#Enable offload audio playback by default
audio.offload.disable=0

#Disable offload audio video playback by default
av.offload.enable=false

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.build.version.full=Blur_Version.23.21.35.peregrine_retbr.retbr.en.BR
ro.mot.build.customerid=retbr
ro.mot.build.version.sdk_int=22
ro.product.display=Moto G
ro.persist.qcapb=0
ro.build.version.qcom=AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.045
ro.product.locale.language=pt
ro.product.locale.region=BR
persist.sys.timezone=America/Sao_Paulo
persist.radio.mot_ecc_enabled=0
telephony.lteOnCdmaDevice=0
ro.telephony.default_network=9
persist.radio.plmn_name_cmp=1
ro.camera.sound.forced=0
ro.gsm.data_retry_config=default_randomization=2000,max_retries=infinite,1000,1000,80000,125000,485000,905000
ro.com.android.dataroaming=false
persist.mot.gps.assisted=false
persist.radio.all_bc_msg=all
ro.config.ringtone=Moto.ogg
ro.config.notification_sound=Moto.ogg
ro.config.alarm_alert=Oxygen.ogg
ro.MAX_HIDDEN_APPS=12
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=96m
dalvik.vm.heapsize=256m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=2m
dalvik.vm.heapmaxfree=8m
persist.sys.logkit.ctrlcode=0
ro.vendor.extension_library=/vendor/lib/libqc-opt.so
persist.radio.apm_sim_not_pwdn=1
ro.usb.mtp=0x2e82
ro.usb.mtp_adb=0x2e76
ro.usb.ptp=0x2e83
ro.usb.ptp_adb=0x2e84
ro.usb.bpt=0x2e28
ro.usb.bpt_adb=0x2e29
ro.usb.bpteth=0x2e2a
ro.usb.bpteth_adb=0x2e2b
persist.audio.calfile0=/etc/Bluetooth_cal.acdb
persist.audio.calfile1=/etc/General_cal.acdb
persist.audio.calfile2=/etc/Global_cal.acdb
persist.audio.calfile3=/etc/Handset_cal.acdb
persist.audio.calfile4=/etc/Hdmi_cal.acdb
persist.audio.calfile5=/etc/Headset_cal.acdb
persist.audio.calfile6=/etc/Speaker_cal.acdb
ro.bug2go.magickeys=24,26
persist.sys.qc.sub.rdump.max=0
ro.adb.secure=1
ro.sf.lcd_density=320
persist.radio.apn_delay=5000
persist.sys.media.use-awesome=false
audio.offload.disable=0
audio.offload.pcm.16bit.enable=false
audio.offload.pcm.24bit.enable=false
audio.offload.gapless.enabled=false
av.offload.enable=false
mm.enable.qcom_parser=4643
keyguard.no_require_sim=true
drm.service.enabled=true
mdc_initial_max_retry=10
ro.com.google.clientidbase=android-motorola
ro.com.google.clientidbase.ms=android-motorola
ro.com.google.clientidbase.am=android-motorola
ro.com.google.clientidbase.gmm=android-motorola
ro.com.google.clientidbase.yt=android-motorola
ro.url.legal=https://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=https://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.setupwizard.mode=OPTIONAL
ro.com.google.gmsversion=5.1_r1
ro.carrier=unknown
ro.media.enc.aud.fileformat=amr
ro.media.enc.aud.codec=amrnb
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.arm.features=div
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.qc.sdk.izat.premium_enabled=0
ro.qc.sdk.izat.service_mask=0x0
persist.gps.qc_nlp_in_use=0
ro.gps.agps_provider=1
persist.debug.wfd.enable=1


Explicando os comandos de base

Informações do dispositivo

ro.product.model=XT1040 #Nome do modelo
ro.product.brand=motorola #Marca
ro.product.name=peregrine_retbr #Nome do produto
ro.product.device=peregrine #Codinome
ro.product.manufacturer=motorola #Fabricante

Informações Físicas
CPU architecture (ARM) + EABI (Application Binary Interface) V(Versão) 7a

ro.product.cpu.abi=armeabi-v7a #Versão antiga
ro.product.cpu.abilist=armeabi-v7a,armeabi  #Versão nova
ro.board.platform=msm7k #Processador 

Informações de build/sistema
ro.build.date=Sun Feb 22 04:00:49 UTC 2015 #Data que o sistema foi compilado
ro.build.date.utc=1424577649 #Data de compilação em Timestamp (mais preciso)
ro.build.version.codename=REL #Tipo de build (REL = Release = Lançada ao público)
ro.build.version.all_codenames=REL #Tipo de build (REL = Release = Lançada ao público)
ro.build.version.release=5.1 #Versão do Android
ro.build.id=LMY47E #ID de Build
ro.build.display.id=LMY47E #O ID de build exibido no menu 'Sobre'
ro.build.version.release=5.1 #Versão do Android
ro.build.version.sdk=22 #Versão da API (clique aqui para ver todas)
ro.build.type=user #Tipos de build
ro.build.description=shamu-user 5.1 LMY47E 1748839 release-keys #Descrições do build
ro.build.fingerprint=google/shamu/shamu:5.1/LMY47E/1748839:user/release-keys #Infos da ROM
ro.build.user=android-build #Quem fez o build da ROM
ro.build.host=wpiv12.hot.corp.google.com #Servidor que fez o build da ROM
ro.build.tags=release-keys #Tags para identificar o build para desenvolvedores
ro.product.display=Moto G #Campo que aparece em Configurações/Sobre/Número do modelo)
ro.sf.lcd_density=560 #Densidade de pixels da tela

Tipos de build
user = público geral
userdebug = Igual ao user. Porém, vem com root
eng = Rom beta, para testadores.

Configurações regionais/Padrão
ro.product.locale.language=en #Idioma padrão
ro.product.locale.region=US #Região padrão
persist.sys.timezone=America/New York #Fuso horário padrão
ro.com.android.dateformat=MM-dd-yyyy #Formato de data

*Essas informações serão aplicadas como padrão ao iniciar o telefone pela primeira vez. se você pretende lançar a rom na internet, mantenha em inglês.
ro.config.ringtone=Moto.ogg #Ringtone padrão
ro.config.notification_sound=Moto.ogg #Som de notificação padrão
ro.config.alarm_alert=Oxygen.ogg #Som de alarme padrão
ro.com.android.dataroaming=false #Roaming de dados ligado(true)/desligado(false) por padrão
keyguard.no_require_sim=true #Permitir o uso do celular sem chip
ro.setupwizard.mode=OPTIONAL #Liga o assistente de configuração inicial
ro.setupwizard.enterprise_mode=1 #Liga o assistente de configuração como modo empresa por padrão
net.bt.name=Android #Nome que o dispositivo usa ao se indentificar em uma rede

Outro
ro.opengles.version=196609 #Versão do OpenGL ES
rild.libpath=/system/vendor/lib/libril-qc-qmi-1.so #Caminho da biblioteca para a camada de interface de rádio para interagir com Android
persist.sys.dalvik.vm.lib.2=libart.so #Especifica entre a Dalvik ou Art como padrão (4.4 ou acima, use apenas ART)
dalvik.vm.stack-trace-file=/data/anr/traces.txt #Localização de arquivo de rastreamento Dalvik


Dicas
1.. Se editar o build.prop, faça backup do original
2. Saiba que a edição do build.prop pode causar bootloop
3. Não coloque um build.prop de outro Android que não seja o seu.




Nenhum comentário:

Todos os comentários são monitorados. Comentários ofensivos serão removidos e os respectivos usuários banidos.