[Other SmartWatches] SifJar:
If it's allowing you to select an update file, surely it is showing you the file system of the phone? Otherwise, you'd have no way to put a firmware update file there to select. My understanding would be this allows you to install a firmware update file stored on your phone, although I can't test this for sure as my Android phone is currently being repaired. There's some discussion about this here and that thread also contains a very small amount of analysis on the firmware file (VERY small amount, basically just analysing the name of the binary file), and another app that is apparently in some way related (link).

For what I can glean from the description of that app (seemingly made by the manufacturer of the SoC [System on a Chip] used in the WeLoop Tommy), it would appear that devices using the SoC (including the Tommy) have three firmwares: "bootloader", "soft device" and "application". The one embedded within the WeLoop app apk has the name "ble_app_ancs.bin"; ble stands for bluetooth low energy and ancs apparently stands for apple notification centre services. That leaves "app" - my guess would be this is the "application firmware". I'm not entirely sure the roles of the "bootloader" and "soft device" firmwares, but my guess is the one or other allows the device to get into "DFU mode" (or "OTA mode" as it seems to be referred to also), meaning in theory it should perhaps be possible to recover from any bricks arising from flashing dodgy application firmwares.

So potentially there is the option of reverse engineering the firmware (easily obtained from here: http://wtf.li/ - mirror of the APKs of the app [each of which contain a version of the firmware], and also one version of the firmware (the .bin file) separately), and creating a custom/modified one, while still being able to recover (because bootloader & soft device should be untouched). However, I have neither the expertise nor the time to look into that.

Without an Android phone with which to run either of the apps right now, I can't poke about too much (I only received my Tommy today), but once I get my phone back I'll maybe try and see if I can find anything else interesting. I'd like to see if I can figure out any way to get access to the watch faces, and see if they can be reverse engineered in any way, for example.

EDIT: Here is the output of strings run on the firmware binary from the latest version of the app on http://wtf.li : http://pastebin.com/X7TQXTb3 - nothing particularly interesting, a few filenames of the source files and a few other strings seen in the watch interface and stuff.

EDIT: A couple of URLs accessed by the app (seemingly related to updating):

http://au.umeng.com/api/check_app_update

http://www.yfsmart.com/weloopInterface/getFirmware.do

I can't see anything on these sites, my guess would be they need query strings parameters or something (not really sure what, some way of identifying that the app is accessing the site) to actually do anything.

EDIT: Hmm... http://www.yfsmart.com/weloopInterface/firmware_Upload.jsp - this site seems to allow you to upload a firmware. I wonder if it allows anyone to upload a firmware, which would then be downloaded by everyone when they check for updates? Certainly seems rather insecure...There's a bunch of other pages at http://www.yfsmart.com/weloopInterface/ haven't looked through them all yet.

EDIT: From what I can glean from this page ("SoftDevices" section under the "Development Tools and Software" tab), it seems like the "soft device" firmware is essentially a bit like a library, it's a precompiled binary supplied by Nordic (company that makes chip inside Tommy) which provides all the networking functions etc. which the "application" firmware uses. So:

application = front end UI (basically, the part WeLoop made)
soft device = "library" via which application can access hardware etc.
bootloader = initial part of firmware that loads SD + app firmwares

So the only really interesting part is probably the application firmware, the part that is in the WeLoop app. That's the code that actually "matters", the rest is just low level stuff. For actually changing the interface or whatever, modifying the app firmware would be all that's needed (for example, to increase the font size or the back light duration etc.).