// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#if defined(OS_TIZEN_MOBILE)
#include <appcore/appcore-common.h>
-#endif
+#include <pkgmgr-info.h>
+
+#include "xwalk/application/common/id_util.h"
#include "xwalk/application/tools/linux/xwalk_launcher_tizen.h"
enum app_event {
return appcore_init(name, &appcore_ops, argc, argv);
}
+
+int xwalk_change_cmdline(int argc, char** argv, const char* app_id) {
+ // Change /proc/<pid>/cmdline to app exec path. See XWALK-1722 for details.
+ pkgmgrinfo_appinfo_h handle;
+ char* exec_path = NULL;
+ if (pkgmgrinfo_appinfo_get_appinfo(app_id, &handle) != PMINFO_R_OK ||
+ pkgmgrinfo_appinfo_get_exec(handle, &exec_path) != PMINFO_R_OK ||
+ !exec_path) {
+ fprintf(stderr, "Couldn't find exec path for application: %s\n", app_id);
+ return -1;
+ }
+
+ for (int i = 0; i < argc; ++i)
+ memset(argv[i], 0, strlen(argv[i]));
+ strncpy(argv[0], exec_path, strlen(exec_path)+1);
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
+ return 0;
+}