</policy>
<policy context="default">
<deny own="org.tizen.update.manager"/>
- <deny send_destination="org.tizen.update.manager"/>
- <allow send_destination="org.tizen.update.manager" send_interface="org.tizen.update.manager" send_type="method_call" />
+ <deny send_destination="org.tizen.update.manager" send_type="method_call"/>
+ <allow send_destination="org.tizen.update.manager" send_interface="org.tizen.update.manager" send_member="install" />
+ <allow send_destination="org.tizen.update.manager" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" />
</policy>
</busconfig>
\ No newline at end of file
API int update_control_do_update(void)
{
- CHECK_FEATURE_SUPPORTED(DEVICE_UPDATE_FEATURE);
- _I("Try to start update ...");
+ CHECK_FEATURE_SUPPORTED(DEVICE_UPDATE_FEATURE);
+ _I("Try to start update ...");
- OrgTizenUpdateManager *proxy = NULL;
+ static OrgTizenUpdateManager *proxy = NULL;
gint status = 0;
- GError *error = NULL;
-
- proxy = org_tizen_update_manager_proxy_new_for_bus_sync(
- G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE,
- "org.tizen.update.manager", "/org/tizen/update/manager", NULL, &error);
- if (error == NULL) {
- _I("Success to get proxy for org.tizen.update.manager");
- } else {
- _E("Failed get proxy for org.tizen.update.manager : %s", error->message);
- return UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
- }
-
- org_tizen_update_manager_call_install_sync(proxy, &status, NULL, &error);
- if (error == NULL) {
- _I("Success to call install to daemon");
- if (status < 0) {
- _E("Failed to do update : %d", status);
- return UPDATE_CONTROL_ERROR_INVALID_OPERATION;
- }
- } else {
- _E("Failed to call install to daemon : %s", error->message);
- return UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
- }
-
- return UPDATE_CONTROL_ERROR_NONE;
+ GError *error = NULL;
+
+ if (proxy == NULL) {
+ proxy = org_tizen_update_manager_proxy_new_for_bus_sync(
+ G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE,
+ "org.tizen.update.manager", "/org/tizen/update/manager", NULL, &error);
+ if (error == NULL) {
+ _I("Success to get proxy for org.tizen.update.manager");
+ } else {
+ _E("Failed get proxy for org.tizen.update.manager : %s", error->message);
+ return UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
+ }
+ }
+
+ org_tizen_update_manager_call_install_sync(proxy, &status, NULL, &error);
+ if (error == NULL) {
+ _I("Success to call install to daemon");
+ if (status < 0) {
+ _E("Failed to do update : %d", status);
+ return UPDATE_CONTROL_ERROR_INVALID_OPERATION;
+ }
+ } else {
+ _E("Failed to call install to daemon : %s", error->message);
+ return UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
+ }
+
+ return UPDATE_CONTROL_ERROR_NONE;
}
API int update_control_make_reservation(struct tm *reservation_time)
_I("Start process to get storage status");
ret = storage_set_changed_cb(STORAGE_TYPE_EXTERNAL, fota_storage_checker_callback, NULL);
- if (ret != STORAGE_ERROR_NONE) {
+ if (ret == STORAGE_ERROR_NOT_SUPPORTED) {
+ _I("External storage is not suppported, so local update will not be supported");
+ } else if (ret != STORAGE_ERROR_NONE) {
_E("storage_set_changed_cb failed : %d", ret);
return -1;
}