How to: OpenStick

I spent wayyy too much time playing with a few of these intriguing things:

image

This is an LTE/WiFi dongle, which lets you insert your SIM card that has a data plan, for when you want to connect to the internet from your laptop on the go. But under the surface, there are several things about this dongle that are very interesting indeed:

First, this stick is basically a fully-fledged Android device on the inside. That’s right — it contains all the internals of a low-end Android phone, cleverly packaged into a USB stick form-factor.

image

Another interesting thing is the price: at the time of writing, I was able to obtain several of these devices for about $8 each from AliExpress, which is an incredible value for the functionality you can unlock, because:

The final interesting thing about these devices is that they’re very hackable. In fact, there’s an entire community (because of course there is!) that has figured out how to load a completely standard Debian distro onto this stick, with all the bells and whistles that provides, including USB gadget capabilities, allowing you to turn this stick into any type of USB device of your choosing, such as a mass storage device, or an HID keyboard (à la Rubber Ducky, except for 1/10th the price), or an RNDIS network interface (which can capture and record packets), or any number of other types of gadgets, all while still allowing you to “log in” to it via its WiFi hotspot or LTE modem.

I went a little overboard and soldered some wires onto the UART pins, then routed the wires around the metal shielding so that they’d stick out of the plastic case.

image

I then put some hot glue over the wires and smooshed the plastic case over it, so that the wires are nicely secured. And now I have a nicely debuggable platform for doing further tinkering with this amazing little stick!

image
image

Here are a few additional notes and resources for using custom firmware on these sticks:

  • They use a prebuilt kernel from postmarketOS. The latest can be found here; look for a file called linux-postmarketos-qcom-msm8916-[latest version].apk.
  • The sticks that you can find on AliExpress can come in various board revisions. The most “compatible” and “supported” board seems to be UZ801, so try to find that one specifically. I own a couple of UZ801_v3.2, and also one of UFI103S_V07 and a couple of UF02 V05.
  • Here is the original release of the Debian (Bullseye) image that can run on these sticks.
  • Here is a slightly newer Debian (Bookworm) image, plus a very detailed tutorial. This is the one that seems to perform with the greatest stability on UZ801 sticks specifically. Newer Debian builds seem to have some stability issues on these sticks.
  • Someone else made a convenient all-in-one script that builds and packages the very latest Debian for these sticks. Quick note: when building from this repo, keep in mind that the build takes a long time. In particular, it might look like it gets “stuck” on the step of “Unpacking the base system…”, but don’t worry — it’s still building. Anyway, there are forks of that repo that go even further:
    • This fork adds AdGuard functionality and DNS encryption with DOH, and also turns the USB gadget into a composite device with RNDIS plus mass-storage plus a Serial device with a root shell.
    • This fork significantly speeds up the build time, and switches to using hostapd for setting up the WiFi access point.
    • My own fork is based on the above.
  • I’ve used the above fork(s) to build the latest image (in a VirtualBox VM of Xubuntu 25.04) and get it running on my sticks.
    • These latest builds seem to be a bit unstable on my UZ801 devices, with occasional crashing and the LEDs no longer working properly. Again, only the original Bookworm image seems to work stably on these sticks.
    • However, interestingly, the latest image is absolutely stable on my UF02 sticks, although also with nonworking LEDs, but I’m fine with that.