Partial Firefox Marketplace Backup – FAQ

Which apps are included in this partial backup?

I put all apps here that are referenced from one of my own apps in some way, and several other apps, some of which I use myself, some which I think that are usefull for others. For legal reasons I will only publish apps which are open source, or where I for other reasons feel sure that I am allowed to publish them.

If you want me to add an app to the list, feel free to tell me about it.

Please note that I’m not the developper of those apps, and the developper doesn’t know they are here (probably), so if you found a bug in one of the apps or have a feature request, probably nobody will care.

Are there other places to get apps for Firefox OS from?

Yes, there are some more places where you can get apps for Firefox OS from:

If you know other places, feel free to tell me about them, and I’ll add them to the list.

The Internet Archive backup contains all apps from the Firefox Marketplace along with some metadata. Before downloading any app from there, please make sure you are legally allowed to do so. The Internet Archive is only allowed to host them because they are an US archive, but this might not give you the permission to actually use the content. Downloading apps available under open source licenses is always allowed, and in many countries you are allowed to download the apps at least for personal usage.

Note that the ZIP file is very large, but you can browse its contents online and download them separately. The TXT file is a list of all the content of that ZIP file (it loads a bit faster than the ZIP viewer, which also lists all the contents). The most interesting contents from that large ZIP are the actual apps, which are ZIP files themselves.

Some of the apps in the backup don’t come with a ZIP file, these are apps of type “web”. You can look into their metadata to determine the location of their manifest file and the main entry point.

Read the next section to learn how to install an app, once you have its address or its ZIP file.

How do I install apps from an address or from a ZIP file?

There are two ways to install an app: You can use debug tools or the “normal” way.

Using the debug tools to install an app is described in MDN (connecting your phone, using WebIDE), and will work for any app. But this requires you to properly set up all those debug tools, so you might (like me) prefer the “normal” way if possible.

Not all apps can be installed by you using the “normal” way: The two exceptions are apps with a restrictive entry for installs_allowed_from in their manifest file, and privileged apps without a valid signature. If the signature is just no longer valid (and that’s the case for all apps from the Marketplace), it might still be possible to install the app without resorting to the debug tools, but you’ll have to try yourself, as I didn’t discover a way to do so yet. If the app isn’t privileged, just remove the signature (that is, the META-INF folder) from the ZIP, that will save you a lot of troubles.

Once you have made sure the app can be installed the normal way, you have to provide an extra manifest file (not necessary for “web” apps) and a bit of JS code to actually install them. For the apps on this site I already did so, so you just have to click a button to install them. For other apps you can use my Firefox OS App Installer, which has instructions on the extra manifest file and will provide the JS code for the installation.

Note that surprisingly many “web” apps have a broken manifest file, and thus ca’n’t be installed the normal way, but for these apps there is yet another way: Just open them in your browser and add a bookmark for them on the homescreen. This will work in most cases, only for apps where the manifest file contained important metadata this could cause issues, but even in these cases the basic functionality should work.

What’s the problem with the signatures?

When the apps were uploaded to the Marketplace, they were automatically signed. You can look into the ZIP file, the signature is in the META-INF folder. The public key is in zigbert.rsa, you can inspect it via keytool -printcert -file zigbert.rsa (if you have keytool installed, which should be true at least on Linux). You’ll see that the key is valid from 2013-02-27T00:30:05Z to 2018-02-26T00:30:05Z, so it is no longer valid, and thus will be rejected. Current versions of Firefox no longer require an unexpired signature in similar circumstances, but this wo’n’t help you.

For reference, you can look at the current code, note that it changed quite a lot over time, especially the exception for expired signatures was only added with this commit.

So, the best trick is to change the system clock. But there is a catch: The HTTPS protocol uses certificates, too, and these certificates will be invalid if you change your clock. That isn’t a real problem, as you just can decide to ignore the invalid certificate for the HTTPS protocol. But every way I tried to install with a faked time did not work, though I was able to install privileged apps from the backup back in early 2018 when the certificates were still valid, so it should be possible one way or other.

For now, I decided to disable the install buttons for privileged apps. But if you want to try yourself, just open the page in debug mode (i.e. append ?debug to the URL), then the buttons will work. Good luck! If you succeeded, don’t forget to tell me how you did it.

For the unprivileged apps I just removed the signature from the original ZIP, since it isn’t necessary, so these will install without problems.

Will these apps get updates?

Those apps of the type “web” can still receive updates, though you should understand that “can receive updates” probably means “can break at any time”. This is also true for packed apps which embed web content.

All other apps wo’n’t receive updates anymore. See the next question if you plan to provide updates yourself.

Can I provide updates for these apps myself?

There are several aspects, both legal and technical.

For apps available under an open source license that allows modification, there are no legal issues, but for other apps that might be a problem. If you want to use the app only for yourself and not publish it for others, too, you might be allowed to do so. Be sure to check your local laws before doing anything that could get you into trouble.

Next, you’ll need the source code to modify. You could just unpack the ZIP file (the ZIP files for the apps here are all located in the backup folder and are also linked on the main page), this will contain all relevant code, but especially if the code is minified, you should better look for the original, uncompressed code. For open source apps this shouldn’t be a problem, but in other cases this can get difficult.

Once you have the code to work with, you can modify it as you wish, and pack it again as ZIP file after you are done. If it was a privileged app, you might want to try to avoid those special APIs if possible, to make it an unprivileged app.

Once you have the modified ZIP file, proceed as described above.

Can I use these apps on devices without Firefox OS?

Since apps for Firefox OS are just web apps with a few extra features, this might be possible.

If the type of the app is “web”, you can simply bookmark that page, creating an entry on your home screen. This should work in most cases.

If that’s not enough and for other types, first of all, read the previous section for some more details on legal and technical issues.

Once you have the code, you have to modify it to work as a web app, ideally as a progressive web app. This is quite easy (at least if you know how to write progressive web apps, read this documentation or see this commit as example), the biggest problem is with privileged apps, as these use some non-standard APIs, but in some cases it is possible to rewrite them to work without these APIs.

If you don’t want to modify the original app, you can also run it in my FFOS simulator which will do the necessary conversion automatically in the background.

Alternatively, instead of creating a web app, you could try to use Capacitor (tutorials for Android and iOS, or just convert them online), Adobe PhoneGap, Apache Cordova or a similar framework.

How do I install, use, and uninstall keyboard apps?

Keyboard apps are a bit special, as they don’t have a visible icon on the home screen. You manage them through the settings. There you can enable and disable all keyboards provided by the app, and also uninstall the app again if you no longer want to use it. Please note that all these keyboard apps require Firefox OS 2.0 or later. Also note that everything said about privileged apps is true for keyboard apps as well.