Get an Android phone attached with the APK installed on it #48
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
v2
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wayfinder:ticket
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiko/denpa#48
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Question
No phone has ever been attached to this project. STATE.md records the intent —
the human attaches a phone with USB debugging enabled, then the orchestrator
drives
adb— and it was never done; only the OnePlus Pad has run anything.The phone is one of the three surfaces the destination names, so nothing can
prove v1 without it, and several decisions on this map are easier to make with a
real small screen in hand rather than a breakpoint in a spec.
Nothing to decide here. The work:
SYSTEM_ALERT_WINDOWandRECORD_AUDIO.Record on resolution: the device model and Android version, the screenshots, and
anything that failed on the way — those are facts later tickets depend on.
Related
denpa#23,denpa#34,denpa#12Map:
aiko/denpa#41Both devices are attached. Facts for the tickets downstream of this one:
cheetah)OPD2203)28171FDH30025TGUMZLZ9DAMXSGYDYarm64-v8aarm64-v8aBoth are
arm64-v8a, so theortAndroid prebuilt covers both — no armv7 or x86_64 leg is needed for real hardware. See #44.The APK on disk is stale.
app-universal-debug.apkwas built 11:16 today; C3 merged at 12:01 and the rename at 14:53, so it predates#28,#29,#32and the whole rename. Any launcher-label check against it would be wrong. Rebuilding frommainatf796efa.Toolchain blocker recorded for
#35, not for today. The only NDK installed is 27.2.12479018.ort's Android prebuilts are built against r28, and the maintainer is explicit that "NDK 27 definitely won't work" — it fails at runtime with adlopenlibc++ symbol error, not at build time, which is the worst way for it to fail. Installing NDK r28 is a prerequisite for#35, not for the current app.Android 17 / SDK 37 on the phone is newer than anything the
#44research covered (it went up to Android 15 on the foreground-service rules). The FGS restrictions have tightened at every release since 14, so#47's overlay decision and#35's microphone service should be checked against 17 specifically rather than assumed.Built, installed and launched on the phone. Fresh universal debug APK from
mainatf796efa, built 15:56 (the APK previously on disk was from 11:16 — it predated C3 and the whole rename). Installed on both devices,Successon each. Screenshot at.denpa-work/shots/phone.png.denpa#25's Android acceptance box is now observed rather than asserted.aapt2 dump badgingreportsapplication-label:'Denpa', and the launcher resolvesworks.aiko.ollvt.debug/works.aiko.ollvt.MainActivityon both devices — so the display name changed and the bundle identifier did not, exactly as#25claimed. That was one of the two boxes closed on trust; it is now closed on evidence.What the phone actually shows
The app launches, takes focus (
mCurrentFocus=works.aiko.ollvt.debug/works.aiko.ollvt.MainActivity) and renders. Three things are wrong, reported as observed, not diagnosed — this is one screenshot at one viewport, not a root cause:周波数 集音 姿 重ねて表示 · ANDROID のみ 開局appears at the top of the content column and again lower down the screen.What is right: the empty state is the 受信記録 one — 「まだ何も受信していない」, the carrier meter glyph, and a 同調をはじめる button. Sensible, since no go-between is running.
This is material for #46 (what one unified log looks like at phone width) — it now has a real device to be wrong on, rather than a breakpoint in a spec. Note that
#12's mobile chrome and#16's viewport dispatch were both verified against a browser at a resized window, never against a phone.Still outstanding on this ticket
mDreamingLockscreen=true), so it has the new APK installed but has not been launched or captured. Needs a human to unlock it.SYSTEM_ALERT_WINDOWwas not granted and is no longer needed for v1 — #47 ruled the overlay out.RECORD_AUDIOnot yet granted; nothing requests it until#35.Resolution
Done. Both devices are attached, both run the current build, and both have been launched and
captured.
cheetah)OPD2203)28171FDH30025TGUMZLZ9DAMXSGYDYarm64-v8aarm64-v8aScreenshots:
.denpa-work/shots/phone3.png(portrait),.denpa-work/shots/phone2.png(landscape),
.denpa-work/shots/tablet.png.Facts later tickets depend on
arm64-v8a, soort's single Android prebuilt covers both and no armv7or x86_64 leg is needed for real hardware. See #44.
ort, so device testing is notoptional once
#35starts.ort's Android prebuilts target r28, and themaintainer is explicit that r27 does not work — it fails at runtime with a
dlopenlibc++symbol error, not at build time. Installing NDK r28 is a prerequisite for
#35.#44could reach. Foregroundservice rules have tightened at every release since 14, so
#35's microphone service should bechecked against 17 rather than against the Android 15 behaviour on record.
14:53. Rebuilt from
mainatf796efa; both devices now run that.denpa#25's Android acceptance box is now observedaapt2 dump badgingreportsapplication-label:'Denpa', and the launcher resolvesworks.aiko.ollvt.debug/works.aiko.ollvt.MainActivityon both devices. The display name changedand the bundle identifier did not, exactly as
#25claimed. That box was closed on trust; it isnow closed on evidence.
What the devices showed
Filed as #49: onboarding renders as a fixed
292x600 CSS px card, so it is a small box in a large black screen — ~60% of the phone's width
and ~37% of the tablet's. Plus no safe-area inset, so the rail sits under the system status bar.
The rest of the chrome does not have this problem; onboarding is the outlier.
One correction worth recording, since it nearly became a finding: an apparent duplicate step
rail in two screenshots was an artifact of the downscaled renders being read, not of the
devices. A row-luminance profile of the full-resolution captures shows a single rail on both —
content bands at the top (status bar, rail, headline), the meter, the CTA, and the system gesture
pill, with nothing between. Measured, not eyeballed.