關於android手機system/build.prop的淺析
阿新 • • 發佈:2019-02-15
手機很多資訊是預設固定的,例如裝置名稱,使用者名稱稱等等。它們大部分都是通過配置檔案解析得到的,而這個檔案就是/system/build.prop。
- 首先,這個檔案的許可權很高,你們有root許可權是無法操作的,所以你要是單純的想改下配置,比如換換你的裝置名稱什麼的,只需要root手機,把檔案改掉,然後在保持重啟就好。
- 下邊我們分析下程式碼,更詳細的說一下這個檔案。
build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=LMY49M
ro.build.display.id=android_x86_64-eng 5.1 .1 LMY49M eng..20170217.031351 test-keys
ro.build.version.incremental=eng..20170217.031351
ro.build.version.sdk=22
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=5.1.1
ro.build.version.security_patch=2016-07-05
ro.build.version.base_os=
ro.build.date=Fri Feb 17 03:16 :28 UTC 2017
ro.build.type=eng
ro.build.host=086c81d1ec96
ro.product.name=android_x86_64
ro.product.device=x86_64
ro.product.manufacturer=unknown
ro.product.locale.language=en
ro.product.locale.region=US
ro.com.android.dateformat=MM-dd-yyyy
dalvik.vm.heapsize=512m
net.bt.name=Android
so on....
- 上述檔案,是屬於鍵值對的形式,前邊的key值,有不同的型別:
- ro.build.** 的形式定義的變數,類如使用者名稱,host,設別,deivce,製造商,manufacturer等,按程式碼結構來說,ro.build形式的鍵值對內容都是不可修改的,通過setprop()方法是不生效的,因為程式碼在識別到是此key值就不再對它進行處理;
- 當然事情不是絕對的,雖然說我們通過setProp的方式可行,還有一種比較暴力的方式(程式碼操作),就是我們整體改變此檔案的可讀寫屬性,直接進行檔案編譯,然後在重啟機器,便可以後的值便被永久改變了。
- 當然,也有可也操作的屬性,l例如;ro.property./ro.product./net.bt.**/其他你自己定義的,只要符合規範
一般用到操作此檔案的較少,至於該檔案各個變數代表什麼內容,你可以去查一下。生活中總是不乏技術宅的,把手機定做的與眾不同的,也大有人在的。