2011-8-1 11:10:12
直接刷内置SD卡
GConf Error: Configuration server couldn't be contacted:
D-BUS error: Can't overwrite existing read-only value:
Value for `/system/osso/inputmethod/im-mode' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value:
Value for `/system/osso/inputmethod/input_method_plugin' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Message did not receive a reply (timeout by message bus)
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value:
Value for `/system/osso/inputmethod/available_languages' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for
`/system/osso/inputmethod/hildon-im-languages/current' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for
`/system/osso/inputmethod/im-mode' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for
`/system/osso/inputmethod/input_method_plugin' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for
`/system/osso/inputmethod/input_method_plugin' set in a read-only source at the front of your configuration path
hildon-input-method[1068]: GLIB CRITICAL ** Gtk - gtk_widget_set_size_request: assertion `GTK_IS_WIDGET (widget)' failed
hildon-input-method[1068]: GLIB CRITICAL ** Gtk - gtk_widget_set_size_request: assertion `GTK_IS_WIDGET (widget)' failed
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for
`/system/osso/apps/mediaplayer/updatelist_begin' set in a read-only source at the front of your configuration path
GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for
`/system/osso/apps/mediaplayer/updatelist' set in a read-only source at the front of your configuration path
GCONF_ERROR_SUCCESS = 0,
GCONF_ERROR_FAILED = 1, /* Something didn't work, don't know why, probably unrecoverable
so there's no point having a more specific errno */
GCONF_ERROR_NO_SERVER = 2, /* Server can't be launched/contacted */
GCONF_ERROR_NO_PERMISSION = 3, /* don't have permission for that */
GCONF_ERROR_BAD_ADDRESS = 4, /* Address couldn't be resolved */
GCONF_ERROR_BAD_KEY = 5, /* directory or key isn't valid (contains bad
characters, or malformed slash arrangement) */
GCONF_ERROR_PARSE_ERROR = 6, /* Syntax error when parsing */
GCONF_ERROR_CORRUPT = 7, /* Fatal error parsing/loading information inside the backend */
GCONF_ERROR_TYPE_MISMATCH = 8, /* Type requested doesn't match type found */
GCONF_ERROR_IS_DIR = 9, /* Requested key operation on a dir */
GCONF_ERROR_IS_KEY = 10, /* Requested dir operation on a key */
GCONF_ERROR_OVERRIDDEN = 11, /* Read-only source at front of path has set the value */
GCONF_ERROR_OAF_ERROR = 12, /* liboaf error */
GCONF_ERROR_LOCAL_ENGINE = 13, /* Tried to use remote operations on a local engine */
GCONF_ERROR_LOCK_FAILED = 14, /* Failed to get a lockfile */
GCONF_ERROR_NO_WRITABLE_DATABASE = 15, /* nowhere to write a value */
GCONF_ERROR_IN_SHUTDOWN = 16 /* server is shutting down */
backend
static gboolean
source_is_writable(GConfSource* source, const gchar* key, GError** err)
{
if ((source->flags & GCONF_SOURCE_NEVER_WRITEABLE) != 0)
return FALSE;
else if ((source->flags & GCONF_SOURCE_ALL_WRITEABLE) != 0)
return TRUE;
else if ((source->backend->vtable.writable != NULL) &&
(*source->backend->vtable.writable)(source, key, err))
return TRUE;
else
return FALSE;
}
判断某个源的某个key是否是可写的?
if (gconf_source_set_value (src, key, value, err))
{
/* source was writable, err may be set */
gconf_log (GCL_DEBUG, "%s was writable in %s", key, src->address);
if (modified_sources)
{
*modified_sources = gconf_sources_new_from_source (src);
}
return;
}
else
{
/* check whether the value is set; if it is, then
we return an error since setting an overridden value
would have no effect
*/
GConfValue* val;
val = gconf_source_query_value(tmp->data, key, NULL, NULL, NULL);
if (val != NULL)
{
gconf_log (GCL_DEBUG, "%s was already set in %s", key, src->address);
gconf_value_free(val);
gconf_set_error(err, GCONF_ERROR_OVERRIDDEN,
_("Value for `%s' set in a read-only source at the front of your configuration path"), key);
return;
}
}
某个源不可写
这个源的写方法来自哪?
/* This is the actual thing we want to talk to, the stack of sources */
typedef struct _GConfSources GConfSources;
struct _GConfSources {
GList* sources;
};
配置源用单链表的形式组织起来
先重做文件系统 先升级试试
再查看为什么gconf 失败
查找gconf的各种方法
struct _GConfDatabase
{
/* "inherit" from the servant,
must be first in struct */
POA_ConfigDatabase3 servant;
ConfigDatabase objref;
GConfListeners* listeners;
GConfSources* sources;
GTime last_access;
guint sync_idle;
guint sync_timeout;
gchar *persistent_name;
};
配置数据库
static void
register_database (GConfDatabase *db)
{
gconfd_need_log_cleanup ();
if (db->sources->sources)
safe_g_hash_table_insert (dbs_by_addresses,
(char *) gconf_database_get_persistent_name (db),
db);
db_list = g_list_prepend (db_list, db);
}
将这些东西都插到数据源中去
safe_g_hash_table_insert(GHashTable* ht, gpointer key, gpointer value)
{
gpointer oldkey = NULL, oldval = NULL;
if (g_hash_table_lookup_extended(ht, key, &oldkey, &oldval))
{
gconf_log(GCL_WARNING, "Hash key `%s' is already in the table!",
(gchar*) key);
return;
}
else
{
g_hash_table_insert(ht, key, value);
}
没有SD卡的图标了
比较一下正常的试试
看有问题没
Can't overwrite existing read-only value: Value for `/system/osso/apps/mediaplayer/updatelist_begin'
set in a read-only source at the front of your configuration path
使用脚本读取看看
gconftool-2 --get /system/osso/apps/mediaplayer/updatelist_begin
gconftool-2 --set /system/osso/apps/mediaplayer/updatelist_begin --type=int 1
没有写的权限
文件的所有者应该为 messagebus:messagebus