+static int appAotCb(pkgmgrinfo_appinfo_h handle, void *userData)
+{
+ char *pkgId = NULL;
+ int ret = 0;
+
+ ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgId);
+ if (ret != PMINFO_R_OK) {
+ _DBG("Failed to get pkgid");
+ return -1;
+ }
+
+ // When you create native image with pkgid, ni file is generated even though already ni file exist.
+ if (createNiUnderPkgRoot(pkgId) != 0) {
+ _ERR("Failed to get root path from [%s]", pkgId);
+ return -1;
+ } else {
+ _DBG("Complete make application to native image");
+ }
+
+ return 0;
+}
+
+int regenerateAppNI()
+{
+ int ret = 0;
+ pkgmgrinfo_appinfo_metadata_filter_h handle;
+
+ ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
+ if (ret != PMINFO_R_OK)
+ return -1;
+
+ ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, "http://tizen.org/metadata/prefer_dotnet_aot", "true");
+ if (ret != PMINFO_R_OK) {
+ pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+ return -1;
+ }
+
+ ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, appAotCb, NULL);
+ if (ret != PMINFO_R_OK) {
+ _DBG("Failed pkgmgrinfo_appinfo_metadata_filter_foreach");
+ pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+ return -1;
+ }
+
+ _DBG("Success pkgmgrinfo_appinfo_metadata_filter_foreach");
+
+ pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+ return 0;
+}
+