Skip to content

Fix visibility of background service apps - #89

Merged
nqmgaming merged 2 commits into
mainfrom
fix/issue-84-query-all-packages
Jul 1, 2026
Merged

Fix visibility of background service apps#89
nqmgaming merged 2 commits into
mainfrom
fix/issue-84-query-all-packages

Conversation

@minhnq1-apero

@minhnq1-apero minhnq1-apero commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #84 by replacing the restricted <queries> block with the QUERY_ALL_PACKAGES permission in AndroidManifest.xml. This ensures that apps without a launcher intent (such as Every Proxy Network Bridge) are correctly listed in the Manage and Backup screens.

Summary by CodeRabbit

  • New Features

    • Broadened app visibility on Android to improve discovery of installed apps.
    • File names generated by the app now preserve parentheses, making extracted names closer to the originals.
  • Bug Fixes

    • Updated package lookup behavior on newer Android versions for more consistent results.

@vercel

vercel Bot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
universal-installer Building Building Preview Jul 1, 2026 11:51am

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR replaces the Android 11+ package-visibility <queries> manifest element with the QUERY_ALL_PACKAGES permission in AndroidManifest.xml, broadening app package visibility. Separately, ApkExtractor.sanitize() is updated to allow parentheses as valid filename characters.

Changes

Package Visibility Permission Change

Layer / File(s) Summary
QUERY_ALL_PACKAGES permission
app/src/main/AndroidManifest.xml
Adds the QUERY_ALL_PACKAGES permission with a comment, removing the previous <queries> element that declared a MAIN/LAUNCHER intent for package visibility.

Filename Sanitization Whitelist Update

Layer / File(s) Summary
Allowed character extension
core/src/main/java/app/pwhs/core/install/ApkExtractor.kt
Extends sanitize()'s character whitelist to allow ( and ), which were previously replaced with _.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Related Issues: #84

Suggested labels: enhancement, manifest

Suggested reviewers: pass-with-high-score

🐰 A permission swapped, a queries block gone,

Parentheses now welcome in filenames spawned,

Hidden apps surface, no longer concealed,

Two small tweaks, a bigger scope revealed.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The filename sanitization change in ApkExtractor is unrelated to the linked issue and appears out of scope. Remove the ApkExtractor sanitization change or explain it in the issue scope if it is intentionally required.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: improving visibility of background service apps.
Linked Issues check ✅ Passed The manifest permission change addresses #84 by making service-type apps without launcher activities visible in the management UI.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/issue-84-query-all-packages

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.

@nqmgaming
nqmgaming merged commit 203d5df into main Jul 1, 2026
4 of 5 checks passed
@nqmgaming
nqmgaming deleted the fix/issue-84-query-all-packages branch July 1, 2026 11:53

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
app/src/main/AndroidManifest.xml (1)

53-54: 🎯 Functional Correctness | 🔵 Trivial

Add the Play Console declaration for QUERY_ALL_PACKAGES — This is appropriate for app-management discovery, but Google Play still requires the Permissions Declaration Form and a core-purpose justification before release.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/main/AndroidManifest.xml` around lines 53 - 54, The AndroidManifest
includes QUERY_ALL_PACKAGES via the QUERY_ALL_PACKAGES permission, so make sure
the release process also includes the required Play Console permissions
declaration. Update the app submission checklist for the manifest change in the
AndroidManifest to complete the Permissions Declaration Form and provide the
core-purpose justification before publishing. No code change is needed in the
manifest itself; the fix is to add the required Play Console disclosure tied to
the QUERY_ALL_PACKAGES usage.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@app/src/main/AndroidManifest.xml`:
- Around line 53-54: The AndroidManifest includes QUERY_ALL_PACKAGES via the
QUERY_ALL_PACKAGES permission, so make sure the release process also includes
the required Play Console permissions declaration. Update the app submission
checklist for the manifest change in the AndroidManifest to complete the
Permissions Declaration Form and provide the core-purpose justification before
publishing. No code change is needed in the manifest itself; the fix is to add
the required Play Console disclosure tied to the QUERY_ALL_PACKAGES usage.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a1275eb0-2c85-49e9-b001-307012bc56ae

📥 Commits

Reviewing files that changed from the base of the PR and between dfd5980 and f00e974.

📒 Files selected for processing (2)
  • app/src/main/AndroidManifest.xml
  • core/src/main/java/app/pwhs/core/install/ApkExtractor.kt

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.

Service-type app reading function without interface

2 participants