return backup_path;
}
-bool DeviceSupportedCallback(int, storage_type_e type,
- storage_state_e state, const char* path, void* user_data) {
- if (type != STORAGE_TYPE_EXTENDED_INTERNAL)
- return true;
- if (state != STORAGE_STATE_MOUNTED)
- return true;
- bool* is_available = static_cast<bool*>(user_data);
- if (bf::exists(path))
- *is_available = true;
- // Stop iteration
- return false;
-}
-
} // namespace
namespace common_installer {
bool IsExtendedStorageAvailable() {
bool is_available = false;
- int ret = storage_foreach_device_supported(DeviceSupportedCallback,
+ int ret = storage_foreach_device_supported(
+ [](int, storage_type_e type, storage_state_e state,
+ const char* path, void* user_data) -> bool {
+ if (type != STORAGE_TYPE_EXTENDED_INTERNAL)
+ return true;
+ if (state != STORAGE_STATE_MOUNTED)
+ return true;
+ bool* is_available = static_cast<bool*>(user_data);
+ if (bf::exists(path))
+ *is_available = true;
+ // Stop iteration
+ return false;
+ },
&is_available);
if (ret != STORAGE_ERROR_NONE) {
LOG(ERROR) << "Failed to call storage_foreach_device_supported()";
const uid_t kGlobalUserUid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
-int PkgmgrForeachAppCallback(const pkgmgrinfo_appinfo_h handle,
- void *user_data) {
- auto* data = static_cast<std::vector<std::string>*>(user_data);
- char* app_id = nullptr;
- if (pkgmgrinfo_appinfo_get_appid(handle, &app_id) != PMINFO_R_OK)
- return PMINFO_R_ERROR;
- data->emplace_back(app_id);
- return PMINFO_R_OK;
-}
-
-int PkgmgrForeachPrivilegeCallback(const char* privilege_name,
- void* user_data) {
- auto* data = static_cast<std::vector<std::string>*>(user_data);
- data->emplace_back(privilege_name);
- return PMINFO_R_OK;
-}
-
} // namespace
namespace common_installer {
if (!IsValid())
return false;
error_ = pkgmgrinfo_appinfo_get_usr_list(handle_, PMINFO_ALL_APP,
- &PkgmgrForeachAppCallback, result, uid_);
+ [](const pkgmgrinfo_appinfo_h handle, void* user_data) -> int {
+ auto* data = static_cast<std::vector<std::string>*>(user_data);
+ char* app_id = nullptr;
+ if (pkgmgrinfo_appinfo_get_appid(handle, &app_id) != PMINFO_R_OK)
+ return PMINFO_R_ERROR;
+ data->emplace_back(app_id);
+ return PMINFO_R_OK;
+ },
+ result, uid_);
return error_ == PMINFO_R_OK;
}
if (!IsValid())
return false;
error_ = pkgmgrinfo_pkginfo_foreach_privilege(handle_,
- &PkgmgrForeachPrivilegeCallback, result);
+ [](const char* privilege_name, void* user_data) -> int {
+ auto* data = static_cast<std::vector<std::string>*>(user_data);
+ data->emplace_back(privilege_name);
+ return PMINFO_R_OK;
+ },
+ result);
return error_ == PMINFO_R_OK;
}
return true;
}
-int PrivilegeCallback(const pkgmgrinfo_pkginfo_h handle, void* user_data) {
- uid_t uid = static_cast<uid_t>(reinterpret_cast<uintptr_t>(user_data));
- char* pkgid = nullptr;
-
- int ret = pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
- if (ret != PMINFO_R_OK)
- return -1;
- if (!PerformExternalDirectoryCreationForUser(uid, pkgid))
- return -1;
-
- return 0;
-}
-
bool PerformExternalDirectoryCreationForAllPkgs() {
UserList list = ci::GetUserList();
for (auto l : list) {
}
ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(filter_handle,
- PrivilegeCallback,
+ [](const pkgmgrinfo_pkginfo_h handle, void* user_data) -> int {
+ uid_t uid =
+ static_cast<uid_t>(reinterpret_cast<uintptr_t>(user_data));
+ char* pkgid = nullptr;
+
+ int ret = pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
+ if (ret != PMINFO_R_OK)
+ return -1;
+ if (!PerformExternalDirectoryCreationForUser(uid, pkgid))
+ return -1;
+
+ return 0;
+ },
reinterpret_cast<void*>(static_cast<uintptr_t>(uid)));
if (ret != PMINFO_R_OK) {
LOG(DEBUG) << "Failed to create external directoy";