1. 程式人生 > >關於android手機system/build.prop的淺析

關於android手機system/build.prop的淺析

手機很多資訊是預設固定的,例如裝置名稱,使用者名稱稱等等。它們大部分都是通過配置檔案解析得到的,而這個檔案就是/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.**/其他你自己定義的,只要符合規範
    一般用到操作此檔案的較少,至於該檔案各個變數代表什麼內容,你可以去查一下。生活中總是不乏技術宅的,把手機定做的與眾不同的,也大有人在的。