Charging: Record the HONOR external-write follow-up in the ledger - #76
Merged
Conversation
The Magic8 Pro contributor (issue #66) ran the both-direction external write from Termux via Shizuku/rish. Both keys accept the value and HONOR's own battery screen follows in both directions, which excludes the read-only-mirror class the Oplus `_status` comparison pointed at and clears the `_ui_`-name suspicion on asw_ui_state. It closes only half of Blocker 1. Step 2 of the protocol passes on the charging hardware moving, not the Settings UI, and the surviving failure mode is exactly oriole on LineageOS 20: write accepted, the ROM's own controller reported the new config back, battery charged past the limit anyway. Recorded as a precondition, never as qualification. Also records that Smart charge is adaptive rather than a cap, so it maps to Adaptive and offers no plateau to measure, leaving Smart battery capacity as the only hardware-testable key here, and it is the one carrying the level hazard. Sharpens that hazard three ways, because the existing paragraph understated it. The predicate is a disjunction, so BATTERY_STATUS_FULL alone trips it and guarding percent >= 100 would close nothing; full is the first branch of the decision engine, so the resulting RESTORE_FULL outranks every other outcome and is silent. Nothing establishes that the broadcast, as opposed to HONOR's display, carries the synthetic 100, so the measurement has to read dumpsys battery. And no level clamp or cross-check exists anywhere to build a workaround on. Adds the bypass key as out-of-scope context (ChargePolicy cannot express a bypass-only state) and notes the two follow-up asks: the direct device report for the codename the wizard omits, and pm list features/packages for a MagicOS identity signal, since a property cannot answer it and the app has no way to probe one without a code change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
No user-facing behavior change. This records new contributor evidence for the HONOR Magic8 Pro in the device-qualification ledger. No app code is touched, no gate moves, and the device stays unsupported.
Technical Context
_statuscomparison pointed at and clears the_ui_-name suspicion onasw_ui_state. It closes only half of Blocker 1: step 2 of the protocol passes on the charging hardware moving, not the Settings UI, and the surviving failure mode is exactly oriole on LineageOS 20 (write accepted, the ROM's own controller reported the new config back, battery charged past the limit anyway).Adaptiveand offers no plateau for the hardware test to observe. That leaves Smart battery capacity as the only hardware-testable key here, and it is also the one carrying the level hazard.ChargeSessionService.kt:374), soBATTERY_STATUS_FULLalone trips it and guardingpercent >= 100would close nothing;fullis the first branch ofSessionDecisionEngine.decide, so the resultingRESTORE_FULLoutranks every other outcome and is silent; nothing establishes that the broadcast rather than HONOR's display carries the synthetic 100, so the measurement has to readdumpsys battery; and no level clamp or cross-check exists anywhere to build a workaround on.secure/charge_separation_all_scenarios_switch(bypass charging) as out-of-scope context, sinceChargePolicycannot express a bypass-only state, and notes the two follow-up asks: the direct device report for the codename the wizard omits, andpm list features/pm list packages -sfor a MagicOS identity signal, because a property cannot answer it and the app has no way to probe one without a code change.ChargeSessionService,SessionDecision,StatsLimitHitDetector,ChargeAlarmEngine). Each cited line was checked against source, but they are assertions about behavior no supported device currently exhibits.Refs #66