Skip to content

Rebase into upstream (v16.2) - #115

Closed
PatrykMis wants to merge 34 commits into
GrapheneOS:mainfrom
talkback-foss-team:gos-16.2
Closed

Rebase into upstream (v16.2)#115
PatrykMis wants to merge 34 commits into
GrapheneOS:mainfrom
talkback-foss-team:gos-16.2

Conversation

@PatrykMis

@PatrykMis PatrykMis commented May 26, 2026

Copy link
Copy Markdown

This update syncs the TalkBack codebase with the latest upstream sources and adds downstream improvements specific to GrapheneOS.

Changes include:

  • Rebased to the latest upstream version.

TODO:

  • Add Gradle Dependency Verification Metadata
  • Update build system for AGP v9.2+
  • Various adjustments regarding internal OCR
  • Avoid and test communication between mlkit and GMS (possible, partially tested)
  • Update liblouis (various memory issues fixed)
  • update brltty (hard work; Google maintains their own fork in upstream repo)

simplexatg and others added 30 commits October 17, 2024 12:12
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
# Conflicts:
#	build.sh
Signed-off-by: Patryk Miś <foss@patrykmis.com>

# Conflicts:
#	version.gradle
Signed-off-by: Patryk Miś <foss@patrykmis.com>

# Conflicts:
#	talkback/src/main/res/values/strings.xml
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>

# Conflicts:
#	build.gradle
#	shared.gradle
#	uiunderstanding/build.gradle
Signed-off-by: Patryk Miś <foss@patrykmis.com>
# Conflicts:
#	braille/brailleime/src/phone/res/values-pl/strings.xml
#	talkback/src/main/res/values-pl/strings.xml
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>

# Conflicts:
#	talkback/src/main/res/values/donottranslate.xml
…no network permission

Signed-off-by: Patryk Miś <foss@patrykmis.com>

# Conflicts:
#	talkback/src/main/java/com/google/android/accessibility/talkback/preference/TalkBackPreferenceFilter.java
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>

# Conflicts:
#	braille/brailleime/src/phone/java/com/google/android/accessibility/brailleime/input/BrailleInputPlaneResult.java
These are only used for version output that's not actually used.
- Fix status bar being white
Signed-off-by: Patryk Miś <foss@patrykmis.com>
PatrykMis added 4 commits May 18, 2026 00:52
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
Signed-off-by: Patryk Miś <foss@patrykmis.com>
…egration

Signed-off-by: Patryk Miś <foss@patrykmis.com>
@PatrykMis PatrykMis changed the title Rebase onto TalkBack v16.2 Rebase into upstream (v16.2) May 26, 2026
@kenblizzardcaron

kenblizzardcaron commented Jul 16, 2026

Copy link
Copy Markdown

+1 on this, I had to install Google's Android Accessibility Suite for work related reasons due to the growing divergence in TalkBack versions. But I understand this isn't trivial work. 60+ merge conflicts on top of the TODOs listed above. Any way to break this down into down into smaller independent PRs?

EDIT: Here's an AI analysis of the conflicts, not sure if this is helpful at all

Root cause: the merge-base is dcddedd ("Push to GitHub 2024-02-26"). main hasn't advanced its upstream baseline since then, so this effectively lands ~2 years of upstream (→16.2) at once, and GrapheneOS's downstream patches collide with the paths upstream reorganized in that window. 64 files conflict; they fall into five groups:

1. Build system & CI (~12 files)build.gradle, shared.gradle (8 hunks), gradle.properties, gradle-wrapper.properties, proguard/build.gradle, utils/build.gradle, braille/*/build.gradle, .github/workflows/*, dependabot.yml. Both sides overhauled the Gradle/toolchain config independently (main is on Gradle 9.6.1 + dependency verification; this branch brings Kotlin 2 / Compose / AGP 9.2+). Mostly a union of the two toolchain bumps — low semantic risk, but needs a green build to validate.

2. Wear OS + Play/dynamic-feature removals (~23 files, structural) — all the *-watch / values-watch / xml-watch / layout-watch / drawable-watch / *-v31 resources, plus dynamicfeature/FeatureDownloader.java, SettingsMetricStore.java, material/{flags,preference/compose} manifests, TrainingSectionLoggerImpl.java. These are rename/delete + modify/delete conflicts where main deleted the file and 16.2 modified/reorganized it (git even mis-pairs a few deleted watch files as "renames" into unrelated new phone files). Largely mechanical: re-apply the deletions (Wear/Play), take 16.2's new files for the mis-detected renames.

3. Vendored braille — liblouis / brltty / tables (~14 files)liblouis/{compileTranslationTable.c, config.h, metadata.c}, brltty/{brlapi_server.c, build.gradle}, and the translation tables (da/en-ueb/fi/hu/nl/tr). This is the group that needs a real decision rather than line-by-line merging: main and this branch each bumped liblouis/brltty independently. Probably cleanest to converge on a single newest revision of each and drop the parallel bump, rather than hand-merging generated tables.

4. Preferences / strings / de-Google logic (~13 files)xml/{preferences, advanced_preferences, focus_indicator_preferences (10 hunks)}, values/{strings, donottranslate}, TalkBackPreference{Filter,Fragment}.java, TutorialAndHelpFragment.java, ImageCaptioner.java, PackageManagerUtils.java, both AndroidManifest.xml. This is where the de-Googling (removed help/feedback, OCR/mlkit, network permission) has to be re-applied on top of 16.2's restructured screens — worth the most care.

5. Polish translations (2 files, 34 hunks)values-pl/strings.xml (24) and brailleime/.../values-pl/strings.xml (10). Tedious but low-risk; take 16.2's pl set and re-apply any downstream overrides.

@PatrykMis

Copy link
Copy Markdown
Author

It's rebase PR so it needs to be taken as-is from the PR branch to work properly and no merge conflicts.

@thestinger

Copy link
Copy Markdown
Member

@PatrykMis Do you think more should be done before merging it or this is already an improvement?

@RankoR RankoR mentioned this pull request Jul 19, 2026
@RankoR

RankoR commented Jul 20, 2026

Copy link
Copy Markdown

Superseded by #121

@RankoR RankoR closed this Jul 20, 2026
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.

5 participants