Systemproperties類在android.os下,但這個類是隱藏的, 上層程序開發無法直接使用。其實用java的反射機制是可以使用這個類。何謂java反射機制,請自行研究學習,在此不做介紹,放到后續文章中。用JNI 的方式,可以繞過Systemproperties這個類,直接本地調用來實現創建、獲取及修改系統屬性。在此也不做介紹,也放到后續文章中。
這篇文章主要介紹android系統屬性的命名方式:
創建與修改android屬性用Systemproperties.set(name, value),獲取android屬性用Systemproperties.get(name),需要注意的是android屬性的名稱是有一定的格式要求的,如下: 前綴必須用system\core\init\property_service.c中定義的前綴 ,進行系統屬性設置的程序也必須有system或root權限,
如何將android程序的權限提升到system權限?方法是這樣的:
1、在AndroidManifest.xml中,在manifest加入android:sharedUserId="android.uid.system "。
2、在Android.mk中,將LOCAL_CERTIFICATE := XXX修改成LOCAL_CERTIFICATE := platform 。
經過以上兩步就可以把ap的權限提升到system權限了。 但是用這種方法提升權限有兩個弊端,如下:
1、程序的擁有都必須有程序的源碼;
2、程序的擁有都還必須有android開發環境,就是說自己能make整個android系統。
一般能做這兩點的,基本上都是開發人員!