From 4c8abfc5dbc98448a374c5c09f6360dccc6a6513 Mon Sep 17 00:00:00 2001 From: Timur Date: Fri, 30 Apr 2021 18:06:59 +0300 Subject: [PATCH] dotnettool: Add --rm-app-profile option Signed-off-by: Timur --- NativeLauncher/tool/dotnettool.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/NativeLauncher/tool/dotnettool.cc b/NativeLauncher/tool/dotnettool.cc index 7fcb6ee..3269ee4 100644 --- a/NativeLauncher/tool/dotnettool.cc +++ b/NativeLauncher/tool/dotnettool.cc @@ -25,6 +25,7 @@ #include #include #include +#include void DisplayUsage() { _SOUT( @@ -50,6 +51,8 @@ void DisplayUsage() { " --ibc-dir - Specify a directory containing IBC files\n" " --resolve-all-app - Remove unused multi-targeting files of all apps\n" " (this option is used for FOTA script or test)\n" + " --rm-app-profile - Remove application profile for all users\n" + " (this option should be run as root)\n" "\n" "Options:\n" " --r2r - Generate a Ready-To-Run image (disable: /FragileNonVersionable)\n" @@ -71,6 +74,8 @@ void DisplayUsage() { " # dotnettool --r2r --ni-regen-all-app\n" "5. Create native image for dll based on the IBC data\n" " # dotnettool --ibc-dir /tmp/ibcdata/ --ni-dll /usr/bin/Tizen.Runtime.dll\n" + "6. Remove profile for package\n" + " # dotnettool --rm-app-profile org.tizen.FormsGallery\n" "\n"); } @@ -315,6 +320,28 @@ int main(int argc, char* argv[]) _SERR("Failed to remove unused multi-targeting files"); } } + //sh-3.2# dotnettool --rm-app-profile [pkgId] [pkgId] ... + else if (cmd == "--rm-app-profile") { + if (args.size() < 1) { + fprintf(stderr, "Package name is missing\n"); + } + while (it != args.end()) { + std::string pkg = std::string(*it); + setenv("AUL_APPID", pkg.c_str(), 1); + char *localDataPath = app_get_data_path(); // /root/apps_rw//data/ + if (localDataPath != NULL) { + char *home = getenv("HOME"); // /root + std::string rmCMD = std::string("rm -f /home/*"); + rmCMD.append(localDataPath + strlen(home)); // rm /home/*/apps_rw//data/ + rmCMD.append(PROFILE_BASENAME); // rm /home/*/apps_rw//data/.__tizen_specific_profile_data + system(rmCMD.c_str()); + free(localDataPath); + } else { + fprintf(stderr, "Application not found [%s], skip to remove profile\n", pkg.c_str()); + } + it = args.erase(it); + } + } else { _SERR("Unknown option [%s]", cmd.c_str()); DisplayUsage(); -- 2.7.4