{"id":15049808,"url":"https://github.com/mozilla/adbfuzz","last_synced_at":"2026-01-10T12:56:01.696Z","repository":{"id":2647362,"uuid":"3637429","full_name":"mozilla/ADBFuzz","owner":"mozilla","description":"INACTIVE - http://mzl.la/ghe-archive - Fuzzing Harness for Firefox Mobile on Android","archived":true,"fork":false,"pushed_at":"2019-03-28T11:59:20.000Z","size":39,"stargazers_count":40,"open_issues_count":0,"forks_count":16,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-01-16T16:26:11.100Z","etag":null,"topics":["inactive","unmaintained"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-06T12:00:35.000Z","updated_at":"2024-10-11T12:14:55.000Z","dependencies_parsed_at":"2022-07-18T22:01:20.004Z","dependency_job_id":null,"html_url":"https://github.com/mozilla/ADBFuzz","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2FADBFuzz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2FADBFuzz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2FADBFuzz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2FADBFuzz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/ADBFuzz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235252735,"owners_count":18960467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["inactive","unmaintained"],"created_at":"2024-09-24T21:22:43.680Z","updated_at":"2025-10-04T12:30:29.719Z","avatar_url":"https://github.com/mozilla.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"== Quick Start Guide ==\n\n=== Important Notice ===\n\nThis software is a prototype, it's not heavily tested and it was \ndeveloped in a specific environment. Don't expect everything to \nwork out of the box. Be prepared to solve problems related to your \nenvironment, configuration and defects in this code. If you hit a \nproblem you cannot solve, let us know. \n\nYou can find us on IRC at irc.mozilla.org, channel #security.\n\nOr you can write me an email to decoder@mozilla.com.\n\nFurthermore, if you make changes to this code, e.g. bugfixes or\nmodifications that others would benefit from as well, please be\nfair and share them :)\n\n\n=== Requirements ===\n\nIn order to use this software you need:\n\n* The mozdevice module:\n  Tested with my fork at \n     https://github.com/choller/mozbase/tree/master/mozdevice\n  but changes are regularly merged to main.\n\n* A working Android Development environment (in particular ADB)\n\n* A rooted Android device with Fennec (Firefox Mobile) with\n  crash reporter enabled.\n OR\n* A non-rooted Android device with your own debuggable Firefox\n  Mobile build (see end of this doc) and crash reporter enabled.\n\n* A network connection between your host machine and the Android\n  device, e.g. a common LAN/WLAN.\n\n* A Firefox profile on the device with settings as shown in\n  the misc/prefs.js file. You can simply copy this file to\n  the profile directory while Firefox is not running.\n  (DON'T use your productive profile for this!)\n\n* The em-websocket-proxy script (gem install em-websocket-proxy).\n\n\n=== Configuring the Sample Fuzzer ===\n\nOpen the file helloworld.cfg, adjust localHost to match your host's LAN\nIP address. If you are attempting to use ADB over TCP/IP, rather than over\na USB connection, also set the remoteHost variable appropriately.\n\n\n=== Starting the Sample Fuzzer ===\n\nStart the fuzzer with the following command:\n \n python adbfuzz.py helloworld.cfg run\n\nYou'll see all sorts of debug messages, but if everything goes right, you\nshould see Fennec popup on the device, trying to contact the host to load\nthe fuzzing code.\n\nThe sample fuzzer included is just a little demo that makes a pink square\ndiv bounce around using random CSS transformations. It's unlikely that this\nalone will find bugs, but I think it's a good demonstration of what you can\ndo.\n\n=== Reproducing crashes ===\n\nThe sample fuzzer sends all commands it executes using websockets. Once the\nharness detects a crash, it will copy the logfiles (websocket+syslog) and store\nthem together with the crash dump. You need to extract the information from the \nlog and replace the \"start();\" call at the end of the fuzzer file with those\ncommands to replay them.\n\n\n=== Advanced: Creating a debuggable Firefox build for use with non-rooted devices  ===\n\nThe harness supports running on non-rooted devices, given that the \"run-as\" functionality\nis working. Using \"run-as\" requires the installed target package to be marked in a special\nway (\"debuggable\"), because it allows other apps to access the data of that application,\nwhich would be a security problem. To build your own Fennec debuggable package, perform\nthe following steps:\n\n1. Get a working build environment for Fennec:\n https://wiki.mozilla.org/Mobile/Fennec/Android\n\n2. Modify the file mobile/android/base/AndroidManifest.xml.in:\n In that file, search for \"debuggable\", you will find a conditional where it's set to true\n or false based on MOZILLA_OFFICIAL. Make sure it's always true.\n\n3. Use the following .mozconfig to build (make -f client.mk \u0026\u0026 make -C objdir-droid package):\n\n# Add the correct paths here\nac_add_options --with-android-ndk=\"/home/build/NVPACK/android-ndk\"\nac_add_options --with-android-sdk=\"/home/build/NVPACK/android-sdk/platforms/android-13\"\nac_add_options --with-android-version=5\nac_add_options --with-android-tools=\"/home/build/NVPACK/android-sdk/tools\"\n# android options\nac_add_options --enable-application=mobile/android\nac_add_options --target=arm-linux-androideabi\nac_add_options --with-endian=little\nac_add_options --with-ccache\nac_add_options --enable-tests\nac_add_options --disable-elf-hack\nac_add_options --enable-debug-symbols\nexport MOZ_OLD_LINKER=1\n# 32 bit\nac_add_options --host=i386-unknown-linux\nHOST_CC=\"gcc -m32\"\nHOST_CXX=\"g++ -m32\"\nmk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-droid\nmk_add_options MOZ_MAKE_FLAGS=\"-j8\"\nac_add_options --enable-optimize\nac_add_options --enable-debug\nexport MOZILLA_OFFICIAL=1\n\n4. Install the resulting package in objdir-droid/dist/ to your device.\n\n5. Verify it's running, using \"adb shell run-as org.mozilla.fennec_yourusername ls\".\n\nUnfortunately, some (older) Android versions ship a broken version of the \"run-as\" tool, \nand if that is the case with your device, then there is no other way than rooting it, sorry :(\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fadbfuzz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fadbfuzz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fadbfuzz/lists"}