Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15531839
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2008-12-05 11:33:33

[First written by Steve Guo, please keep the mark if forwarding.]

Android saved settings in a database file which is /data/data/com.android.providers.settings/databases/settings.db. For some settings, Android does not support set them on the GUI. So we need find another way to set it. Here it is. I will use set "device_provisioned" as an example.

Android use sqlite3 as the database. So we can use sqlite3 to manage the database file.

$sqlite3 /data/data/com.android.providers.settings/databases/settings.db

The above command will open the settings database. Then you will enter into sqlite3 command line.

First we can check how many tables existed in the database. Here lists the result.

sqlite> .tables
android_metadata   bookmarks          gservices       
bluetooth_devices  favorites          system 

The settings we try to set lies in "system" table, so then we list all items in the table to view the current table information.
sqlite> .dump system
BEGIN TRANSACTION;
CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
INSERT INTO "system" VALUES(3,'volume_system','5');
INSERT INTO "system" VALUES(4,'volume_voice','4');
INSERT INTO "system" VALUES(5,'volume_alarm','6');
INSERT INTO "system" VALUES(6,'mode_ringer','2');
INSERT INTO "system" VALUES(7,'vibrate_on','4');
INSERT INTO "system" VALUES(8,'mode_ringer_streams_affected','6');
INSERT INTO "system" VALUES(9,'mute_streams_affected','14');
INSERT INTO "system" VALUES(10,'dim_screen','1');
INSERT INTO "system" VALUES(11,'stay_on_while_plugged_in','0');
INSERT INTO "system" VALUES(12,'screen_off_timeout','60000');
INSERT INTO "system" VALUES(13,'airplane_mode_radios','cell,bluetooth,wifi');
INSERT INTO "system" VALUES(14,'airplane_mode_on','0');
INSERT INTO "system" VALUES(15,'bluetooth_on','0');
INSERT INTO "system" VALUES(16,'usb_mass_storage_enabled','1');
INSERT INTO "system" VALUES(17,'wifi_on','0');
INSERT INTO "system" VALUES(18,'wifi_networks_available_notification_on','1');
INSERT INTO "system" VALUES(19,'network_preference','1');
INSERT INTO "system" VALUES(20,'auto_time','1');
INSERT INTO "system" VALUES(21,'screen_brightness','102');
INSERT INTO "system" VALUES(23,'window_animation_scale','1');
INSERT INTO "system" VALUES(24,'transition_animation_scale','0');
INSERT INTO "system" VALUES(26,'data_roaming','0');
INSERT INTO "system" VALUES(27,'date_format','MM-dd-yyyy');
INSERT INTO "system" VALUES(30,'device_provisioned','0');
INSERT INTO "system" VALUES(31,'location_providers_allowed','gps');
INSERT INTO "system" VALUES(32,'install_non_market_apps','1');
INSERT INTO "system" VALUES(119,'ringtone','content://media/external/audio/media/11');
INSERT INTO "system" VALUES(243,'volume_music','15');
INSERT INTO "system" VALUES(244,'volume_music_last_audible','15');
INSERT INTO "system" VALUES(266,'volume_ring','7');
INSERT INTO "system" VALUES(267,'volume_ring_last_audible','7');
INSERT INTO "system" VALUES(274,'font_scale','1.0');
INSERT INTO "system" VALUES(275,'adb_enabled','0');
INSERT INTO "system" VALUES(276,'next_alarm_formatted','');
CREATE INDEX systemIndex1 ON system (name);
COMMIT;
Pay attention to the first line about table information. The text marked with red will be used when writting SQL statements. Assume we want to set "device_provisioned" to 1, we need to prepare a local file which contains the SQL statements to access the database. Here is the content of this file.
UPDATE "system" SET value='1' WHERE name='device_provisioned';

Assume that we have saved the above statements into SQL.cmd file. Finally we can update the database by executing this file.

sqlite> .read SQL.cmd

You can type ".dump system" again to check whether the modification is valid.

阅读(2108) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~