The way the redesigned Firefox for Android is packaged, some preferences in about:config can cause the UI and the backend parts of the browser to become disconnected from each other when manually changed, rendering the browser completely unusable. The only ways to recover from this are to either dig into the configuration files manually to revert the breaking changes (only possible on Android for rooted phones) or to uninstall/reinstall Firefox to restore the working configuration (causing user data loss). Rather thanputting developer time into tweaking about:config to hide those dangerous preferences or changing the way Firefox is built to avoid this problem, they decided to just block access to about:config altogether. Test versions still have about:config because the expectations of stability and data integrity are reduced in the development builds, and the users of development builds are more likely to be using rooted phones, and are more technically able to work around issues. Answer from kwierso on reddit.com
🌐
Android Developers
developer.android.com › api reference › configuration
Configuration | API reference | Android Developers
Skip to main content · English · Deutsch · Español – América Latina · Français · Indonesia · Polski · Português – Brasil · Tiếng Việt · 中文 – 简体
🌐
Google Support
support.google.com › android › answer › 9021432
Learn about the Android Device Configuration Service - Android Help
The Android Device Configuration Service periodically sends data from Android devices to Google. This data helps Google ensure that your device remains up-to-date and is working as well as possible.&n
🌐
Mozilla Discourse
discourse.mozilla.org › t › about-config-missing › 66537
About:config missing - Firefox On Android - Mozilla Discourse
August 27, 2020 - Hello everyone i would like if you bring back the about:config page to the stable version of android that the way we be able to make advanced configuration and even add protections firefox was about adding more option not decreasing it Edit: work around by @Ash9 on that comment thanks for your ...
🌐
Mozilla Connect
connect.mozilla.org › t5 › ideas › firefox-for-android-about-config › idi-p › 8071
Firefox for Android - about:config - Mozilla Connect
June 16, 2022 - Give about:config to Firefox for Android and let us customize it the same way we can customize the desktop browser. That... high level of customization was the only reason I started using Firefox back in 2006 and why I still prefer Firefox for the desktop to any other browser.
🌐
Stack Overflow
stackoverflow.com › questions › 31905374 › firefox-for-android-cant-modify-anything-on-aboutconfig
Firefox for Android: can't modify anything on about:config - Stack Overflow
Eventually, with a lot of trial and error, got it fixed. The about:config interface has changed since the guide I was following was pasted, but it ended up being a very good step by step anyway.
🌐
Reddit
reddit.com › r/firefox › about:config page on android
r/firefox on Reddit: About:config page on android
May 28, 2020 -

I'm having 2 issues:

  • most of the time when I type About:config in the address bar, I get immediately sent to the search engine rather than the config page

  • the rare single time I have managed to get to what I assume is the settings page, it is blank.

I'll add to this that I'm using an eink tablet which means I may not see some buttons if they are light coloured, but other settings pages are visible, so I just think the page must be blank.

I'm using daylight 87

Ultimately I want to stop Firefox from focussing on the frame that has input in focus (overrated on an a4 screen), so if someone knows how to do it without accessing the config page I'll take that solution too!

Thanks

PS: the search in the sub brought no answer, but I have the same issue on my phone that I can't access the config page, so I can't be the only one?

Top answer
1 of 2
4

The Android version of Firefox Daylight (Fenix) blocks about:config on the stable/release version of the app. I'm not entirely clear on the design details behind this (partly becaseu the dev response actually makes no sense), but the claimed reason is that a lot of the elements exposed by about:config no longer function with the new engine, or function differently than they do on the desktop version or did in Fennec (why about:config would even expose or contain unusable toggles in the first place in an application that has supposedly been entirely rebuilt is an open question), so it is disabled entirely in order to prevent normie users from completely borking their installations (again, that doesn't really make sense, since a reset to default should fix any issues caused by editing config options, and the about:config page tracks and displays which options have been changed from defaults, so that reason doesn't match reality).

The about:config page is functional in the beta and nightly releases of Firefox (Daylight/Fenix) for Android, and you could try using one of those instead, or rolling back to the final Fennec APK (I've been continuing to use Fennec as my primary browser while using the beta and nightly release channels for test use because Fenix is still far, far too bugged in ways that make my daily use cases non-fucntional e.g. tab unloading from memory behavior stopping background media streams after five minutes and reloading pages almost every time a tab or the entire app is put in the background, wiping page scroll/playback position and any entered text and thus making browsing and media streaming all but impossible).

2 of 2
2

You can't open about:config in release Firefox. If you want to access it, you'll need to use Beta or Nightly.

Find elsewhere
🌐
Android Developers
developer.android.com › api reference › config
Config | API reference | Android Developers
Skip to main content · English · Deutsch · Español – América Latina · Français · Indonesia · Polski · Português – Brasil · Tiếng Việt · 中文 – 简体
🌐
Mozilla Support
support.mozilla.org › en-US › questions › 1300502
Accessing about:config on Firefox Android (August 2020)
JavaScript is disabled in your browser · Please enable JavaScript to proceed · A required part of this site couldn’t load. This may be due to a browser extension, network issues, or browser settings. Please check your connection, disable any ad blockers, or try using a different browser
🌐
Android Developers
developer.android.com › android enterprise › set up managed configurations
Set up managed configurations | Android Enterprise | Android Developers
If you are developing apps for the enterprise market, you may need to satisfy particular requirements set by a organization's policies. Managed configurations, previously known as application restrictions, allow the organization's IT admin to remotely specify settings for apps.
🌐
Reddit
reddit.com › r/firefox › why is about:config disabled on ff 79.0.4 for android? is there any way to enable it?
r/firefox on Reddit: Why is about:config disabled on FF 79.0.4 for android? is there any way to enable it?
December 5, 2019 - Because Mozilla clowns think that you are soooo dumb that you need to be protected from da big bad about:configgywiggy like your some sort of kiddy-widdly. ... Because companies that run the Internet like Google hate certain addons as those circumvent their own apps. For example Android Firefox will never let you play YT videos in the background anymore.
🌐
Google Groups
groups.google.com › g › mozilla.support.firefox › c › -4VbjWz4wfw
Firefox for Android, about:config?
I have 2 questions about Firefox for Android tablets: 1. Is there a way to get Firefox to show the url in the address bar by default, instead of just this title thing? 2. Is there a way to get Firefox to show everything in about:config, instead of having to enter a search term?
Top answer
1 of 4
121

If your application is going to be released to the public, and if you have sensitive data in your config, such as API keys or passwords, I would suggest to use secure-preferences instead of SharedPreferences since, ultimately, SharedPreferences are stored in an XML in clear text, and on a rooted phone, it is very easy for an application to access another's shared preferences.

By default it's not bullet proof security (in fact it's more like obfuscation of the preferences) but it's a quick win for incrementally making your android app more secure. For instance it'll stop users on rooted devices easily modifying your app's shared prefs. (link)

I would suggest a few other methods:

Method 1: Use a .properties file with Properties

Pros:

  1. Easy to edit from whatever IDE you are using
  2. More secure: since it is compiled with your app
  3. Can easily be overridden if you use Build variants/Flavors
  4. You can also write in the config

Cons:

  1. You need a context
  2. You can also write in the config (yes, it can also be a con)
  3. (anything else?)

First, create a config file: res/raw/config.properties and add some values:

api_url=http://url.to.api/v1/
api_key=123456

You can then easily access the values with something like this:

package some.package.name.app;

import android.content.Context;
import android.content.res.Resources;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public final class Helper {
    private static final String TAG = "Helper";

    public static String getConfigValue(Context context, String name) {
        Resources resources = context.getResources();

        try {
            InputStream rawResource = resources.openRawResource(R.raw.config);
            Properties properties = new Properties();
            properties.load(rawResource);
            return properties.getProperty(name);
        } catch (Resources.NotFoundException e) {
            Log.e(TAG, "Unable to find the config file: " + e.getMessage());
        } catch (IOException e) {
            Log.e(TAG, "Failed to open config file.");
        }

        return null;
    }
}

Usage:

String apiUrl = Helper.getConfigValue(this, "api_url");
String apiKey = Helper.getConfigValue(this, "api_key");

Of course, this could be optimized to read the config file once and get all values.

Method 2: Use AndroidManifest.xml meta-data element:

Personally, I've never used this method because it doesn't seem very flexible.

In your AndroidManifest.xml, add something like:

...
<application ...>
    ...

    <meta-data android:name="api_url" android:value="http://url.to.api/v1/"/>
    <meta-data android:name="api_key" android:value="123456"/>
</application>

Now a function to retrieve the values:

public static String getMetaData(Context context, String name) {
    try {
        ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
        Bundle bundle = ai.metaData;
        return bundle.getString(name);
    } catch (PackageManager.NameNotFoundException e) {
        Log.e(TAG, "Unable to load meta-data: " + e.getMessage());
    }
    return null;
}

Usage:

String apiUrl = Helper.getMetaData(this, "api_url");
String apiKey = Helper.getMetaData(this, "api_key");

Method 3: Use buildConfigField in your Flavor:

I didn't find this in the official Android documentation/training, but this blog article is very useful.

Basically setting up a project Flavor (for example prod) and then in your app's build.gradle have something like:

productFlavors {
    prod {
        buildConfigField 'String', 'API_URL', '"http://url.to.api/v1/"'
        buildConfigField 'String', 'API_KEY', '"123456"'
    }
}

Usage:

String apiUrl = BuildConfig.API_URL;
String apiKey = BuildConfig.API_KEY;
2 of 4
10

You can achieve this using shared preferences

There is a very detailed guide on how to use Shared Preferences on the Google Android page https://developer.android.com/guide/topics/data/data-storage.html#pref

🌐
Indie IT Wiki
wiki.indie-it.com › wiki › Firefox_Android_about:config_Modifications
Firefox Android about:config Modifications - Indie IT Wiki
A MozillaZine guide to Thunderbird's about:config · Thanks to Ghacks · Method One: Options --> Settings --> Display --> Scroll title bar - Untick · Method Two: By default the Address Bar in Firefox for Android hides as you scroll down a page, to alter this to have it always displayed undertake the following: Go to desired search engine home page.
🌐
GitHub
github.com › mozilla-mobile › focus-android › issues › 6210
about:config is blocked on Firefox Focus Beta for Android · Issue #6210 · mozilla-mobile/focus-android
January 12, 2022 - Steps to reproduce Install Firefox Focus Beta through early access on the Play Store. In this case it's version 96.0.0-beta5. Expected behavior Access to about:config is unrestricted as in Firefox Beta for Android. Actual behavior User g...
Published   Jan 12, 2022
🌐
Mozilla Support
support.mozilla.org › en-US › questions › 1300001
Can't access about:config | Firefox for Android Beta ...
JavaScript is disabled in your browser · Please enable JavaScript to proceed · A required part of this site couldn’t load. This may be due to a browser extension, network issues, or browser settings. Please check your connection, disable any ad blockers, or try using a different browser
🌐
GitHub
github.com › mozilla-mobile › fenix › issues › 21276
enable about:config in stable release · Issue #21276 · mozilla-mobile/fenix
As i said many including myself left ff and are reluctant of using it on android for it's flaws but tbh i can tolerate them if only you hadn't removed this feature. I understand ff has a smaller team than chromium and can't compete with them but please think this over, chromium (and forks) allow a lot of configuration through thier gui (managing cookies, java script, etc) and offer a supreme ux and while they are targeted at normal users they allow users to change many settings that can break the browser through chrome://flags without even a warning.
🌐
Appconfig
appconfig.org › android.html
Android – AppConfig Community
The AppConfig community streamlines the adoption and deployment of mobile enterprise apps by providing developers a standard approach to app configuration and management, building upon the extensive app security and configuration frameworks available in Android enterprise.