storage and properties

There are some threads about it but no conclusion...

So, what is:

- the max size of them?

- how many keys can they contain (it is s dictionary, so how many keys it can have, 255)?,

- does the max size  of them limits numbers of keys (e.g. user has 100 string properties of max 1000 chars, so if the limit is 8kb,, can he put 100 of 80chars or 80 of 100 chars?)

Yes, I can make 1000 test on sim (on condition sim tells truth) but not on all devices.

Info in doc is necessary..I really don't understand why this principle informations are hidden for dev.

There is a limit on the size of the Object Store that can vary between devices. If you reach this limit, the value will not be saved and an exception will be thrown. Also, values are limited to 32 KB in size.

there is a limit but nobody knows the size of it, can vary but nobody knows how vary...

btw some devs say: data are stored in the user-inaccessible internal storage of the watch

I think storage and properties are flies accessable after connecting watch to computer by usb (the same Garmin pay wallet file). So there is no any secret area on disk (like e.g. on android/iphone). But maybe I'm wrong.

  • No secret place.

    Settings are stored in garmin/apps/settings and Storage in garmin/apps/data

    Settings have a total of something like 8k (total in .set file) If you use the old object store (the .str file in data), the same limit.

  • wow  :-)  max 20 string of 400 chars (or less in unicode)

    so if the limit is total, user can use only 10 string but with 800 chars?

  • For settings, I don't come anywhere close to that in any app.  The entire content of the .set is loaded when an app starts or when settings change and is held in memory.  Storage loads only 1 key at a time which why the total can be larger, but that also means it's slower as each time a new key is used, it's a file system access.

  • Just because your apps use properties like properties. I'm storing notes in properties to avoide typing it using a picker. But both p/s have the same limit the difference is in memory, but 60kb is enough for now.

  • So there is no any secret area on disk (like e.g. on android/iphone). But maybe I'm wrong.

    Of course there's a secret (inaccessible) area on the watch, but I personally never said that the Storage and Properties are stored there. No idea if anyone else said something similar.

    Evidence:

    - On music-based watches, when you sideload or install certain kinds of apps, the PRGs are removed from the user-accessible area, yet the apps still work. Where did they go?

    - On an older, non-music watch like 935, if you delete *everything* from the user-accessible area (or even just one folder like SPORTS, or one file in the SPORTS folder), the watch magically restores default files from *somewhere*. This is especially relevant because the user has direct access to the underlying (user-visible) file system, as opposed to music-based watches which use MTP. Yet even in this case, there's hidden storage. IIRC, I've tried deleting all files on my 935, although I was never brave enough to actually format the drive. Haven't tried this on a newer watch though.

    - If you reset your watch to factory defaults from the UI, the default settings come from *somewhere* (e.g. default SPORTS/*.FIT files). If there's a giant blob in the user-accessible storage that has this information, I haven't seen any evidence of that, and besides, it would be deleted in the previous case when you manually delete all files.

    - If you pair with bluetooth or change certain sensitive settings like your wi-fi password, you'll notice those changes won't be reflected in any file in user-accessible storage. It's easy enough to make a copy of all files before changing something, make another copy after changing that thing, and compare the two sets. If you use a non-MTP watch, you could even image the raw filesystem (it's FAT IIRC).

    - If you set a custom interval workout on the watch itself (only one is allowed), you'll notice that a FIT file gets created which represents the workout. If you replace it with a 0-byte file, you'll notice that the watch crashes if you try to open it. However, if you delete the file, you'll notice that the workout comes back, with the same settings. So a copy of that custom interval workout is stored *somewhere*. I discovered this when someone asked if it was possible to delete that workout.

    - Where's the firmware, bootloader, etc stored? Is there any file you can delete on music or non-music watches that will cause the watch not to boot?

    - Where's the system fonts and graphics stored? If they were in the user-accessible file system, someone would've found a way to extract them

    - If there's no secret area, why can't an APAC watch be easily changed to non-APAC and vice versa?

    It should also be possible for end users to load custom firmware to the watch if there's nothing they can't access.

    (Ok, so the last few points are moving the goalposts, since you probably weren't talking about read-only system files. But there's a bunch of writeable settings which are also apparently in hidden storage, even if they're just copies of the user-visible stuff.)

    There's obviously stuff on the watch (both read-write and read-only) which is not accessible to the end user via MTP or mass storage, when the usb cable is connected to a computer.

  • I've suspected  there is inaccessible area of watch but storage/properties are not in it. So if somebody says
    "data are stored in the user-inaccessible internal storage of the watch" and it is truth he has to use any trick.

    Why garmin's wallet data are not move to this area?

  • Why garmin's wallet data are not move to this area?

    Wow Garmin Pay information is available in user-accessible storage? That's crazy. I'm sure it's encrypted, but you'd think it would be stored in the same place that wi-fi passwords are stored.

    Or maybe I'm wrong about all of the above. But I'm pretty sure that if you delete the custom workout it gets recreated (with your settings, not default settings), and default files get recreated if you delete existing files.

    I also couldn't find any file which corresponds to wi-fi settings (and they don't get recreated if you use the manual backup/restore procedure that's outlined in support.)

    And of course everyone agrees that PRGs have to go somewhere on music watches.

  • Now, if you have written it, I'm not sure :), the more that if there is a secret area, it seems natural to put such data there. Once I scanned the contents of the watch, I remember that I found something related to the wallet. I will check it again.

    So if somebody want to use secret area it's enough to write music app and all them data is protected a bit better :)

  • So if somebody want to use secret area it's enough to write music app and all them data is protected a bit better :)

    Haha but seriously I think the object store / settings / properties are still in the normal file system, even for music apps, right? On newer watches other kinds of apps besides music apps get hidden away, but the *.SET file for each app is still visible IIRC.

  • Yes, even if the prg gets hidden, the object store/storage is in the data folder, and settings, in the settings folder.  What could be confusing is the names are the store generated 8 char name if installed from the app store.

    Settings are .set files, and the old object store (using setPropery) are .str files, while Application.Storage.setValue() are 3 files per app - a .idx, .imt and a .dat