有时候,我们会发现默认配置了system 、 global 、secure 数据库的值,但开机后被修改了,如何查找是谁改了数据库里面默认的值?
以 :Settings.System.SCREEN_OFF_TIMEOUT 为例,
1、修改Settings.java (frameworks\base\core\java\android\provider) 中
在class System 内部类的 ,因为有Secure Global 几个内,里面的函数都长的差不多,不要添加错了。
public static boolean putInt(ContentResolver resolver, String name, String value,int userHandle) {
的后面添加
if(name.equals(Settings.System.SCREEN_OFF_TIMEOUT)){ //add begin
Log.d(TAG,"@@## name = "+ name+ "value = "+value,new Exception("Settings"));
} //add end
2、还有可能是通过uri content://settings/system 的方式来修改的。
所以还要添加 ContentResolver.java (frameworks\base\core\java\android\content)中在
public final int update(Uri uri, ContentValues values, String where,String[] selectionArgs) {
后添加
if(values.containsKey("screen_off_timeout")){//add begin
Log.d("Settings","@@## url = "+ uri+", values = "+ values,new Exception("Settings"));
}//add end
最后过打印就知道是谁改了数据库里面的值