Where do the App .prg files go now on the devices?

Hey Friends,

During development, I routinely drag a .prg file made for the device into the "Apps" folder via the Android File Transfer App.

In the past, the app .prg would remain in that position so I could remove it later, thereby uninstalling it.

(For some reason, development watch faces loaded like this stopped showing up in the CIQ app, so I have no way now of removing previously loaded faces that were added via built .prg files.)

Within the last few months, I've noticed that the .prg file disappears from the Apps folder. I've searched the file system on the watch and can't figure out where it goes.

It feels like the OS is copying the files somewhere.  The watch faces are definitely getting loaded and running.  

But the question is: where did they go?  And how the heck can I delete them now that they're not visible in Android File Transfer or the CIQ app?

Top Replies

All Replies

  • Prg files are in /Apps/Media 
    (at least on my Edge devices…)

  • That sounds reasonable, but I don't have a "Media" option inside Apps.  I see these directories inside Apps:

    • Data
    • Logs
    • Mail
    • Settings
    • Temp
  • Based on device, they are moved to apps/media, which may be hidden on music devices.  This has been the case with media apps for some time, but now is all app types.

    Try deleting sideloads with Garmin Express.

  • TL;DR you can also delete apps (including sideloads) using the on-device CIQ store app.

    Within the last few months, I've noticed that the .prg file disappears from the Apps folder.

    Current-gen [*] watches used to "hide" (**) certain types of PRGs, but now they hide all PRGs. Music provider PRGs have always been hidden, and in the past few years, additional app types were hidden. Now all app types are hidden.

    (*) By this I mean devices still getting firmware updates, like FR255/955/265/965, Fenix 7 / 7 pro family, etc. Technically it's last gen I guess, since Fenix 8 is out now. I would assume Fenix 8 and other devices in the same gen would also hide all PRGs

    (**) in this context, "hide" actually means "make completely inaccessible to the end user"

    You probably noticed a difference because of a recent firmware update that caused all app types to be hidden. My FR955 def showed PRGs for *some* app types in the "file system" when I bought it a year and a half ago, but after a certain firmware update, all of them were hidden.

    I think another change (that's never discussed) is it's now seemingly impossible to sideload an app that was built for a different device (it will just silently fail). This closes an old loophole where you could sideload an app from an old device model to a newer device model if the dev never made it available for the newer device.

    (For some reason, development watch faces loaded like this stopped showing up in the CIQ app, so I have no way now of removing previously loaded faces that were added via built .prg files.)

    This sounds like a bug. Is your sideloaded app also installed via the store (with the same app ID)? In the past when I've done this, I've seen both versions of the app in the Connect IQ app, but maybe something has changed.

    Are you using the CIQ app on Android or iOS?

    And how the heck can I delete them now that they're not visible in Android File Transfer or the CIQ app?

    You should be able to delete device apps via the activity list: scroll to app, long-press UP and select remove from this device.

    All CIQ apps can be deleted via the Connect IQ store app on the device. Open the CIQ store app, select Installed and select the app you want to delete. You will be given an option to delete the app.

    Even though the on-device CIQ app is slow, this might be the most convenient way to delete a sideload, especially if the mobile app isn't working.

    Personally I don't like Garmin Express as it's known to mess up the glance order (and possibly other settings).

  • Thanks  and 

    Garmin Express was something I haven't needed/used in a while, so I forgot about that option.  I bet that would do it.

    The on-device app store app did the trick for me.  Some .prg files that didn't show up in the CIQ iPhone app did show up there, and I was able to delete them.

    Does anyone know the rationale for the .PRG's hiding?  Was this intentional?

  • Does anyone know the rationale for the .PRG's hiding?  Was this intentional?

    As mentioned, this change was first made for music provider apps, so I think it was done for security purposes: e.g. to prevent users from copying the Spotify PRG off their watch and analyzing it to discover secrets Spotify wants to obscure (e.g. sensitive info such as credentials or API key). Seems no different, in principle, than how music files downloaded by music providers are not available via the "file system" (actually MTP). The move from USB mass storage to MTP, for devices which support music, could also be seen to be motivated by security (at least in part). (That way it's not possible for people to try to take a raw dump of the filesystem, in an attempt to access "hidden" files. I think Garmin has had non-user-accessible storage even in the old USB mass storage devices, though)

    The most recent change to "hide" all PRGs could be related to the recent native monetization change (to make it impossible to simply copy a monetized app off one device onto another, without paying).

    I can't really explain why a couple of app types (but not all) were hidden between the first change and the most recent change, though. Looking at my older FR945LTE, every app type but watchfaces is hidden, and I can't really think of a good reason why widgets, device apps and data fields merit hiding, but not watchfaces. I guess the same argument about obscuring secrets could apply to any type of app, and the argument about preventing copying of PRGs could apply to 3rd-party monetization, but I don't know why they previously only chose to hide certain app types (beyond music provider apps) and not all app types.

    All of this is just speculation on my part though. I don't think Garmin has ever officially explained why.

  • All of this is just speculation on my part though.

    Thanks for sharing your ideas on this. I think the monetization system is probably the single biggest driver of changes happening in CIQ land right now.  I bet it connects to this .prg change, and I'll bet that's where the team's spending most of their energy right now.

  • I bet it connects to this .prg change

    Yeah, at least for the latest change where all apps are hidden.

    But music providers have always been hidden, and all app types except watch faces are hidden on my 945LTE (well before Garmin monetization was added). As far as watches go, you probably won't see all apps being visible unless you have an old watch and it doesn't support music.

    I suppose it's possible that the previous hiding of device apps, widgets and data fields was done for devs who wanted to protect revenue via 3rd-party monetization. But why wouldn't they also hide watch faces at the same time, especially since watch faces are probably the 2nd most popular kind of app on the store, with the most popular probably being Spotify.

  • But music providers have always been hidden

    Given that, it would make sense to me that the partners (i.e. Spotify) demanded that the source code be less accessible to prevent reverse engineering the digital rights management systems / api.  But I'll bet this was a pain-in-the-butt hack initially that wasn't worth doing for all apps if it didn't need to be done.  But now that Garmin's launching more proprietary paid apps, they want better IP protections.

    I've cracked open my PRGs and you can see in plaintext most strings and some variable names.  I'm shocked that you can even see absolute file paths from my machine, including my username on my computer.  

  • Spotify

    Yeah I def think spotify kicked this whole thing off, all those years ago.

    But now that Garmin's launching more proprietary paid apps, they want better IP protections.

    I'm sure they don't want ppl to just copy their new all-star watchfaces off the watch, so others can use them without paying.

    I'm shocked that you can even see absolute file paths from my machine, including my username on my computer.  

    Yeah that part is pretty annoying. You'd think that information would be removed for the release build, at least.

    At least end users can't see that stuff now!