librepods icon indicating copy to clipboard operation
librepods copied to clipboard

Removing unused permission from AndroidManifest

Open MaverickNyk opened this issue 1 month ago • 2 comments

INTERACT_ACROSS_USERS is a privileged permission only granted to 1P android apps. It can't be used here.

Summary by CodeRabbit

  • Chores
    • Removed unused cross-user interaction permission from app configuration.

✏️ Tip: You can customize this high-level summary in your review settings.

MaverickNyk avatar Dec 11 '25 10:12 MaverickNyk

📝 Walkthrough

Walkthrough

The android.permission.INTERACT_ACROSS_USERS permission declaration was removed from the Android manifest file, along with its associated tools:ignore attribute.

Changes

Cohort / File(s) Summary
Manifest Configuration
android/app/src/main/AndroidManifest.xml
Removed android.permission.INTERACT_ACROSS_USERS permission declaration and its tools:ignore attribute

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately reflects the main change: removing an unused permission from AndroidManifest, matching the PR's core objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 287163e116d092485d561ad571dae03a2f43cf2f and 54a5ee396da10c60fb712108321277daeb088687.

📒 Files selected for processing (1)
  • android/app/src/main/AndroidManifest.xml (0 hunks)
💤 Files with no reviewable changes (1)
  • android/app/src/main/AndroidManifest.xml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Dec 11 '25 10:12 coderabbitai[bot]

Hi, Can someone please review this PR.

MaverickNyk avatar Dec 17 '25 12:12 MaverickNyk

thank you!

btw, it was originally there for https://github.com/kavishdevar/librepods/blob/e10fe21ba5ef3f86f3dac26421a9f48cf972191e/android/app/src/main/java/me/kavishdevar/librepods/services/AirPodsService.kt#L2000-L2077 but I don't remember it working the last time I tried using it.

kavishdevar avatar Dec 17 '25 19:12 kavishdevar

thank you!

btw, it was originally there for

https://github.com/kavishdevar/librepods/blob/e10fe21ba5ef3f86f3dac26421a9f48cf972191e/android/app/src/main/java/me/kavishdevar/librepods/services/AirPodsService.kt#L2000-L2077

but I don't remember it working the last time I tried using it.

This won't work as sendBroadcastAsUser is a system API only allowed for 1P apps. An app has to be bundled with the Android platform to call this API and hold INTERACT_ACROSS_USERS permission. apps like com.android.* would be able to do that.

MaverickNyk avatar Dec 18 '25 12:12 MaverickNyk

See https://github.com/kavishdevar/librepods/releases/download/v0.1.0-rc.4/LibrePods-v0.1.0-rc.4.zip. It installed the app as a system app and granted those permissions.

This way I could also use the BLUETOOTH_PRIVILIGED to set the metadata, like icon and battery, of a BluetoothDevice.

kavishdevar avatar Dec 18 '25 12:12 kavishdevar

BluetoothDevice

I see in that case sendBroadcastAsUser should be working, can you raise a bug or share the details what was the issue while calling sendBroadcastAsUser

MaverickNyk avatar Dec 18 '25 12:12 MaverickNyk