1.6 Firefox Android

Thorin-Oakenpants edited this page Apr 21, 2018 · 4 revisions

Authors: Non-Rooted Wiki: icpantsparti | Script: TerkiKerel | Rooted Wiki: jghq | Many thanks :)

:small_orange_diamond: Rooted

All steps are performed on your Android.

  • Bring up the list of running apps (tap the usually square button) and stop Firefox by swiping it away
  • Start your file manager that supports root, such as Ghost Commander
  • Copy your user.js file to your profile folder at:
    • data/data/org.mozilla.firefox/files/mozilla/[random_string].default
  • Set permissions on the file to match other files in the directory
  • Start Firefox, go to about:config and confirm user.js was recognized. Be sure to check the last line as well, in case processing was stopped in the middle due to some error
  • If you delete user.js from your profile directory, the applied settings will remain until you or the application changes them. If you don't delete the file, all settings in the file will be reapplied on each Firefox start.
  • If no settings from user.js are applied, follow the Non-Rooted method below

:small_orange_diamond: Non-Rooted

Choose 1A Wi-Fi (easier) or 1B USB connection

:small_blue_diamond: 1A: Connecting Firefox on your Desktop Computer and Android Device via Wi-Fi

Mozilla - Debugging_Firefox_for_Android_over_Wifi

  • Install the ZXing Team Barcode Scanner Android app
  • Enable Remote debugging via Wi-Fi on Android Firefox (Options|Settings|Advanced)
    • You might have to toggle this off/on later if troubleshooting
  • On desktop Firefox visit and set true: about:config?filter=devtools.webide.enabled
  • Open WebIDE on desktop Firefox (Shift+F8 or menu|Tools|Web Developer)
  • Click Refresh Devices icon (upper right), click on your Android device
  • Scan the QR code with your Android to connect

:question: Troubleshooting If the device is not seen (note any settings changes for reversal later): Visit the troubleshooting link on the Mozilla page for more details.

  • Is desktop firewall stopping connection?
  • Is Android firewall app stopping connection? (eg NetGuard, No-root firewall, etc)
  • Is Network/router settings/firewall stopping connection?
  • Desktop needs to be on Wi-Fi too and not wired? (wired can work)
  • Desktop Firefox version is too much older than Android Firefox?

:small_blue_diamond: 1B: Connecting Firefox on your Desktop Computer and Android Device with a USB cable

Mozilla - Debugging_Firefox_for_Android_with_WebIDE

  • Enable Remote debugging via USB on Android Firefox (Options|Settings|Advanced)
  • Enable Android's USB debugging (Settings app|Developer options)
    • You might have to toggle either of these off/on later if troubleshooting.
    • Note: to unhide Developer options tap Build number 7 times (Settings app|About Device)
  • Watch out for any Android allow/connect prompts.
  • On desktop Firefox visit and set true: about:config?filter=devtools.webide.enabled
  • Open WebIDE on desktop Firefox (Shift+F8 or menu|Tools|Web Developer)
  • You need the ADB Helper Add-on (menu|Project|Manage Extra Components)
  • Click Refresh Devices icon (upper right), click on your Android device

:question: Troubleshooting If the device is not seen (note any settings changes for reversal later): Click the troubleshooting link on the Mozilla page for more details.

  • Did you plug in your USB cable? ;-D<
  • Windows: you might need to install Google USB Driver from Android SDK?
  • Linux: you may need a /etc/udev/rules.d/51-android.rules file, then restart udev (or reboot)?
  • Linux: you might need to install android-tools-adb / adb? (it can work without)
  • Desktop Firefox version is too old and not compatible with Android firefox?

:small_blue_diamond: 2: Remote access

  • Open about:config page on Android Firefox
    • It will show under WebIDE TABS on Desktop Firefox too (use tabs refresh icon)
  • Click the remote tab name and the web developer tools panel will open
    • if you exit the panel by accident use: F12 or Project|Debug App
  • Select the Scratchpad button
    • If there is no button for Scratchpad click the cog and enable it

:small_blue_diamond: 3: Inject the preferences

  • Paste the javascript and your user.js into the scratchpad
var user_pref = function(pref, val){
  try{
    if(typeof val == "string"){
         Services.prefs.setStringPref(pref, val);      
    }
    else if(typeof val == "number"){
         Services.prefs.setIntPref(pref, val);      
    }
    else if(typeof val == "boolean"){
         Services.prefs.setBoolPref(pref, val);      
    }
  } catch(e){
    console.log("pref:" + pref + " val:" + val + " e:" + e);
  }
}
//paste your user.js file content here
  • The script sets a function called user_pref so wherever that appears in the rest of the code (ie in the part from your user.js) that function is called to set the user preference. Any code for preferences that are commented out will not be run. If a preference name does not exist or is mistyped it will still be created without any warnings.
  • Use Display (Ctrl+L) to run the javascript as it adds a result message in a comment after the script, which will say "undefined" or show errors.
  • Also click the Console button to look for any other error messages.
  • If errors occur on a line, the script might have stopped at that line, and you will need to correct the error in the code and re-run.
  • Check your Android Firefox about:support and about:config pages for your modified preferences, and see if the _user.js.parrot preference is showing success.

:small_blue_diamond: 4: Finish

  • Disconnect: WebIDE menu|Runtime|Disconnect
  • For security, reverse settings you temporarily changed in any steps above:
    • Desktop Firefox's WebIDE preference back to false
    • Android Firefox's debugging off
    • Android's USB debugging off (if used)
    • Troubleshooting changes (desktop firewall, android firewall, router, etc)
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.