Rooting, Unlocking, and Debranding the Franklin RG2100

A practical write-up of poking at a Qualcomm SDX65-based Franklin hotspot: finding a web UI command injection, working out the SIM lock, enabling root access, and building a small signed OTA package that installs SSH without replacing the whole firmware.

This is not the Franklin R717/T9. The device here is an RG2100, reported by the system as SDXLEMUR-LITE-MTP and built around a Qualcomm SDX65 Linux platform.

The work below was done on my own hardware, for research and personal use. Treat everything as at your own risk. Do not run arbitrary commands on a device you depend on. Back up anything device-specific before touching branding, factory-reset scripts, modem configuration, or persistent storage. The factory tooling on this unit can write the IMEI, Wi-Fi MAC addresses, Ethernet MAC address, carrier brand, and MCFG files, a casual-looking command can have lasting consequences.

The chain, in brief

  1. Find command execution in the web firmware upload endpoint via shell expansion in the uploaded filename.
  2. Use logger and callback HTTP requests to turn that into a practical command-output channel.
  3. Turn the same bug into a reverse shell.
  4. Use the web shell to change the USB composition and expose root ADB.
  5. Dump and inspect the filesystem.
  6. Reverse the SIM unlock code path in QCMAP_Web_CLIENT.
  7. Apply the model-aware SHA-1 unlock formula.
  8. Carefully debrand with fti_factory_reset.sh DEFAULT perm,all,reboot.
  9. Analyse recovery, FOTA, PAC packing, encryption, and signatures.
  10. Reuse Dropbear from an older Franklin firmware.
  11. Build a small signed OTA that installs only an SSH service and runtime files.

The most important practical takeaway: the OTA system is script-driven. A carefully built package can add or replace a small number of files without flashing full images or touching the modem or boot partitions. That makes controlled modifications possible — but the integrity model is only as strong as the key handling, and in this firmware the key handling is not strong.

Series contents

PartTitleWhat it covers
1Getting StartedNetwork setup, admin UI, filesystem layout, hidden web interfaces
2Command InjectionThe fw_download filename bug, output channels, reverse shell
3Root ADB and BackupsUSB compositions, root shell, filesystem and MTD dumps
4SIM Unlock and DebrandingUnlock formula, carrier branding, fti_factory_reset.sh
5OTA and PAC FormatFOTA endpoints, recovery mounts, encryption, signatures
6Building an SSH OTADropbear runtime, updater-script, AppleDouble trap, final packages
7Security and Wrap-UpWhat went wrong with the design, lessons learned

Start with Part 1: Getting Started.

Leave a Reply