在系统build.prop中添加以下属性
ro.lockscreen.disable.default=true
frameworks/base/core/java/com/android/internal/widget/LockSettingsService.java class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG = "LockSettingsDB"; private static final String DATABASE_NAME = "locksettings.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); setWriteAheadLoggingEnabled(true); } private void createTable(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE + " (" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_KEY + " TEXT," + COLUMN_USERID + " INTEGER," + COLUMN_VALUE + " TEXT" + ");"); } @Override public void onCreate(SQLiteDatabase db) { createTable(db); initializeDefaults(db); } private void initializeDefaults(SQLiteDatabase db) { // Get the lockscreen default from a system property, if available boolean lockScreenDisable = SystemProperties.getBoolean("ro.lockscreen.disable.default", false);//在这里会去读默认值 if (lockScreenDisable) { writeToDb(db, LockPatternUtils.DISABLE_LOCKSCREEN_KEY, "1", 0); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) { // Nothing yet } }
android 4.1修改:
frameworks/base/packages/SettingsProvider/res /values/defaults.xml
<bool name="def_lockscreen_disabled">true</bool>