diff --git a/1.6-Firefox-Android.md b/1.6-Firefox-Android.md new file mode 100644 index 0000000..1324b1a --- /dev/null +++ b/1.6-Firefox-Android.md @@ -0,0 +1,100 @@ +Authors: Wiki: [icpantsparti](https://github.com/icpantsparti) | Script: [TerkiKerel](https://github.com/TerkiKerel) | Many thanks :) + +### :small_orange_diamond: Rooted + +blah blah + +### :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](https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/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](https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/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 uninstall/install to update, or [get it here if you have trouble](https://ftp.mozilla.org/pub/labs/fxos-simulator/adb-helper/). +- 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 much older than 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 + +```js +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) +