fix(android): remove Play-restricted permissions#39660
Merged
Conversation
Contributor
Greptile SummaryThis PR removes two Play-restricted Android permissions ( Key changes:
Confidence Score: 4/5
Last reviewed commit: 87289bf |
79a04e2 to
6c04088
Compare
Contributor
Author
|
Landed via temp rebase onto
|
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.
Summary
ACCESS_BACKGROUND_LOCATION,REQUEST_INSTALL_PACKAGES,FOREGROUND_SERVICE_MICROPHONE,FOREGROUND_SERVICE_MEDIA_PROJECTION) that trigger extra review and block Play release.app.update), cut Android location to foreground-only, removed Androidscreen.record, made voice mic sessions foreground-only, reduced the Android foreground service todataSynconly, updated docs/tests/runtime/UI, and bumped AndroidversionCodefor a fresh Play upload.FOREGROUND_SERVICE_DATA_SYNCremains for the visible gateway connection foreground service, Android photo access (READ_MEDIA_IMAGES) remains unchanged, and non-Android node platforms were not refactored here.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
app.update.Alwaysmode is removed.screen.record.ACCESS_BACKGROUND_LOCATION,REQUEST_INSTALL_PACKAGES,FOREGROUND_SERVICE_MICROPHONE, orFOREGROUND_SERVICE_MEDIA_PROJECTION.Security Impact (required)
Yes/No) NoYes/No) NoYes/No) NoYes/No) YesYes/No) YesYes, explain risk + mitigation:Removed Android command/capability surface (
app.update,screen.record) and reduced Android runtime access from background to foreground-only for location and mic capture. Risk is intentional feature loss on Android; mitigation is that runtime, manifests, UI copy, docs, and advertised command lists were all updated together to match the narrower Play-safe scope.Repro + Verification
Environment
Steps
Expected
FOREGROUND_SERVICE_DATA_SYNConly, and noACCESS_BACKGROUND_LOCATION,REQUEST_INSTALL_PACKAGES,FOREGROUND_SERVICE_MICROPHONE, orFOREGROUND_SERVICE_MEDIA_PROJECTION.Actual
Evidence
Attach at least one:
Human Verification (required)
What you personally verified (not just CI), and how:
./gradlew :app:compileDebugKotlin;./gradlew :app:testDebugUnitTest --tests ai.openclaw.app.node.DeviceHandlerTest --tests ai.openclaw.app.node.InvokeCommandRegistryTest --tests ai.openclaw.app.protocol.OpenClawProtocolConstantsTest;./gradlew :app:processReleaseManifestForPackage --rerun-tasks;./gradlew :app:bundleRelease;pnpm tsgo; direct scan of the builtapp-release.aabmanifest payload.app.updateorscreen.record; app backgrounding now stops active mic capture; rebuilt AAB uses a fresh AndroidversionCode(202603081).dataSyncreview.Compatibility / Migration
Yes/No) NoYes/No) NoYes/No) YesUpload a new Play build from this branch. Android users on this build lose background
location.get, Android self-update, Androidscreen.record, and background mic capture; no operator-side config migration is required.Failure Recovery (if this breaks)
53e0d367a,87289bfe7,fd3d7d4f6, and7259abb7a.app.updateorscreen.record; packaged release manifest or AAB still containing any removed restricted permission/FGS type; voice mic remaining active after app backgrounding.Risks and Mitigations
app.update,screen.record, background location, background mic capture).FOREGROUND_SERVICE_DATA_SYNCdeclaration for the long-lived gateway connection service.dataSynconly; any further policy cut can now focus on that single remaining declaration.