4 * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 #include "app2sd_utils.h"
25 int _is_global(uid_t uid)
27 if (uid == OWNER_ROOT || uid == GLOBAL_USER)
33 char *_app2sd_get_encoded_name(const char *pkgid, uid_t uid)
35 char *new_name = NULL;
36 char *temp_string = NULL;
37 char source_name[FILENAME_MAX] = { 0, };
40 snprintf(source_name, FILENAME_MAX - 1, "%s_%d", pkgid, uid);
41 checksum = g_checksum_new(G_CHECKSUM_MD5);
42 g_checksum_update(checksum, (const guchar *)source_name, strlen(source_name));
43 temp_string = (char *)g_checksum_get_string(checksum);
44 new_name = strdup(temp_string);
45 g_checksum_free(checksum);
50 int _app2sd_delete_directory(const char *dirname)
53 struct dirent *ep = NULL;
54 char abs_filename[FILENAME_MAX] = { 0, };
57 dp = opendir(dirname);
59 while ((ep = readdir(dp)) != NULL) {
60 struct stat stFileInfo;
62 snprintf(abs_filename, FILENAME_MAX, "%s/%s", dirname,
65 if (lstat(abs_filename, &stFileInfo) < 0) {
71 if (S_ISDIR(stFileInfo.st_mode)) {
72 if (strcmp(ep->d_name, ".")
73 && strcmp(ep->d_name, "..")) {
74 ret = _app2sd_delete_directory(abs_filename);
81 ret = remove(abs_filename);
89 ret = remove(dirname);
93 _W("couldn't open the directory[%s]", dirname);