Skip to content

doc(pinephone): document adb toggle resets and AT interface conflicts - #1110

Merged
untitaker merged 1 commit into
EFForg:mainfrom
phedoreanu:doc/pinephone-adb-caveats
Aug 16, 2026
Merged

untitaker merged 1 commit into
EFForg:mainfrom
phedoreanu:doc/pinephone-adb-caveats

Conversation

@phedoreanu

@phedoreanu phedoreanu commented Aug 15, 2026 •

Copy link
Copy Markdown
Contributor

While installing Rayhunter on a PinePhone (Kali, phosh), I ran into three specific behaviors that are not currently mentioned on the PinePhone page. Each of these required significant debugging time, and one temporarily disabled my mobile data, so I believe they are worth documenting.

I observed all three issues on a PinePhone with an EG25-G running Rayhunter v0.12.0:

  1. The adb forward disappears: The adb forward tcp:8080 tcp:8080 command is tied directly to the modem connection. When that connection re-establishes, the forward drops. Because adb devices still lists the modem and the daemon keeps recording, the web UI stops responding without an error. Re-running the forward command resolves this.
  2. Toggling adb resets the modem: The scripts pinephone-start-adb and pinephone-stop-adb write to AT+QCFG="usbcfg". The EG25-G resets on that write even if it is already using that configuration. The modem takes about a minute to reboot, during which there is no cellular service. Writing a supervisor script that re-runs the start script too frequently will continuously reset the modem, causing ModemManager's QMI probe to time out. Leaving the modem alone to finish its boot cycle allows adb and cellular to coexist normally.
  3. "Resource busy" when enabling adb: On distributions where ModemManager or eg25-manager is running, the manager holds the AT interface, causing the unlock to fail with a "Resource busy (os error 16)" error. Stopping the daemon while making the call resolves this, and the modem re-probes once it is back up.

This update is for documentation only. I have added three short sections to doc/pinephone.md covering the symptoms and the fix for each issue. No code changes were made.

Pull Request Checklist

  • The Rayhunter team has recently expressed interest in reviewing a PR for this.
  • Added or updated any documentation as needed to support the changes in this PR. (This PR is the documentation.)
  • Code has been linted and run through cargo fmt. (No code changed.)
  • If any new functionality has been added, unit tests were also added. (No new functionality.)
  • CONTRIBUTING.md has been read.
  • Your pull request is fewer than ~400 lines of code.

You must check one of:

  • No generative AI (including LLMs) tools were used to create this PR.
  • Generative AI was used to create this PR. I certify that I have read and understand the code, and that all comments and descriptions were authored by myself and are not the product of generative AI.

untitaker
untitaker previously approved these changes Aug 16, 2026
Three things about the PinePhone workflow are easy to hit and currently
undocumented:

- The adb forward is tied to the connection to the modem and is silently
  dropped when that connection is re-established, so the web UI stops
  answering while `adb devices` still looks healthy and recording
  continues.

- `pinephone-start-adb` and `pinephone-stop-adb` write `AT+QCFG="usbcfg"`,
  which resets the modem even when the requested composition is already
  active. The modem needs about a minute to boot and the phone has no
  cellular service meanwhile. Retrying faster than that keeps the modem in
  a reset cycle, ModemManager never finishes its QMI probe, and mobile data
  stays down until the modem is left alone.

- Where ModemManager or eg25-manager manages the EG25-G, it holds the AT
  interface and enabling adb fails with
  `detach_and_claim_interface ... Resource busy (os error 16)`.

Document each with the symptom and the way out.
@untitaker
untitaker merged commit 3837c5e into EFForg:main Aug 16, 2026
19 checks passed
@untitaker

Copy link
Copy Markdown
Collaborator

ty for both PRs!

@phedoreanu
phedoreanu deleted the doc/pinephone-adb-caveats branch August 16, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants