2011-8-1 11:10:12

来源:互联网 发布:python 开发网站 编辑:程序博客网 时间:2024/04/30 03:13
 

 

 

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

原创粉丝点击