MuntashirAkon/AppManager
A full-featured package manager and viewer for Android
Single-maintainer risk — review before adopting
weakest axisnon-standard license (Other); top contributor handles 98% of recent commits
Has a license, tests, and CI — clean foundation to fork and modify.
Documented and popular — useful reference codebase to read through.
No critical CVEs, sane security posture — runnable as-is.
- ✓Last commit 3w ago
- ✓3 active contributors
- ✓Other licensed
Show all 8 evidence items →Show less
- ✓CI configured
- ✓Tests present
- ⚠Small team — 3 contributors active in recent commits
- ⚠Single-maintainer risk — top contributor 98% of recent commits
- ⚠Non-standard license (Other) — review terms
What would change the summary?
- →Use as dependency Concerns → Mixed if: clarify license terms
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Forkable" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/muntashirakon/appmanager)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/muntashirakon/appmanager on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: MuntashirAkon/AppManager
Generated by RepoPilot · 2026-05-09 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/MuntashirAkon/AppManager shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
WAIT — Single-maintainer risk — review before adopting
- Last commit 3w ago
- 3 active contributors
- Other licensed
- CI configured
- Tests present
- ⚠ Small team — 3 contributors active in recent commits
- ⚠ Single-maintainer risk — top contributor 98% of recent commits
- ⚠ Non-standard license (Other) — review terms
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live MuntashirAkon/AppManager
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/MuntashirAkon/AppManager.
What it runs against: a local clone of MuntashirAkon/AppManager — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in MuntashirAkon/AppManager | Confirms the artifact applies here, not a fork |
| 2 | License is still Other | Catches relicense before you depend on it |
| 3 | Default branch master exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 52 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of MuntashirAkon/AppManager. If you don't
# have one yet, run these first:
#
# git clone https://github.com/MuntashirAkon/AppManager.git
# cd AppManager
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of MuntashirAkon/AppManager and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "MuntashirAkon/AppManager(\\.git)?\\b" \\
&& ok "origin remote is MuntashirAkon/AppManager" \\
|| miss "origin remote is not MuntashirAkon/AppManager (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(Other)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"Other\"" package.json 2>/dev/null) \\
&& ok "license is Other" \\
|| miss "license drift — was Other at generation time"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "app/src/main/AndroidManifest.xml" \\
&& ok "app/src/main/AndroidManifest.xml" \\
|| miss "missing critical file: app/src/main/AndroidManifest.xml"
test -f "app/build.gradle" \\
&& ok "app/build.gradle" \\
|| miss "missing critical file: app/build.gradle"
test -f "app/src/main/aidl/io/github/muntashirakon/AppManager/IAMService.aidl" \\
&& ok "app/src/main/aidl/io/github/muntashirakon/AppManager/IAMService.aidl" \\
|| miss "missing critical file: app/src/main/aidl/io/github/muntashirakon/AppManager/IAMService.aidl"
test -f "app/src/main/assets/debloat.json" \\
&& ok "app/src/main/assets/debloat.json" \\
|| miss "missing critical file: app/src/main/assets/debloat.json"
test -f "app/schemas/io.github.muntashirakon.AppManager.db.AppsDb" \\
&& ok "app/schemas/io.github.muntashirakon.AppManager.db.AppsDb" \\
|| miss "missing critical file: app/schemas/io.github.muntashirakon.AppManager.db.AppsDb"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 52 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~22d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/MuntashirAkon/AppManager"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
App Manager is a full-featured Android package manager and viewer application that provides granular control over installed apps without relying on Google Play Services. It allows users to inspect and manipulate app components (activities, services, receivers, providers), manage permissions, scan for trackers, back up/restore apps with encryption, and perform batch operations—all with optional root or ADB access for advanced features like freezing apps, blocking components, and editing shared preferences. Single Android app module (app/) with typical Gradle structure: app/src/{main,debug} contains Java code under io/github/muntashirakon/, app/schemas/ holds Room database migrations (currently at version 7), and app/src/main likely contains Activities, Services, and AIDL interfaces for system interaction. Native code compiled via CMake (visible in build.gradle externalNativeBuild config). Build variants include debug (with .debug suffix) and release (minified). Multiple .run.xml files suggest modular entry points (app.run.xml, file_manager.run.xml, settings.run.xml).
👥Who it's for
Power users and Android enthusiasts who need deep app inspection and management capabilities; ROM developers and security researchers analyzing tracker behavior; contributors interested in Android internals, permission systems, and system-level app manipulation.
🌱Maturity & risk
Actively developed and mature: the project is at version 4.0.5 (versionCode 445), uses Room database schemas with 7 migration versions (indicating years of development), has comprehensive GitHub workflows (CodeQL, linting, testing), and sports a copyleft GPLv3+ license. The file structure shows extensive feature implementation (Material 3 UI, encryption, terminal emulator, file manager). Verdict: production-ready for its target audience.
Single maintainer (MuntashirAkon) is a potential bus factor; the codebase is large (~7MB Java) and complex (AIDL, native C++, multiple build variants). Debug keystore credentials are committed to repo (app/dev_keystore.jks with plain-text password in build.gradle), a significant security anti-pattern. The project targets both root and non-root paths with different permission models, increasing complexity. No obvious signs of security audits in the visible file structure.
Active areas of work
The README lists many 'Upcoming features' (Finder, APK editing, routine operations, crash monitor, systemless disabling), suggesting active feature development. The presence of 7 database schema versions and recent version numbering (4.0.5) indicates ongoing maintenance. GitHub workflows for CodeQL, linting, and tests are enabled, showing CI/CD discipline. No specific PR or milestone data visible, but the codebase structure suggests work on permissions, app ops, and component blocking features.
🚀Get running
git clone https://github.com/MuntashirAkon/AppManager.git
cd AppManager
# Requires Android SDK (API 31+ based on build.gradle patterns)
# Build via Gradle wrapper or Android Studio
./gradlew assembleDebug
# Or open in Android Studio and run the app configuration (.run/app.run.xml)
Daily commands:
Open in Android Studio and run configuration app.run.xml, or: ./gradlew installDebug && adb shell am start -n io.github.muntashirakon.AppManager.debug/[main activity]. The app requires 'Usage Access' permission for some features and optional root/ADB. Debug variant includes additional tooling (separate keysore in dev_keystore.jks).
🗺️Map of the codebase
app/src/main/AndroidManifest.xml— Entry point declaring all activities, services, permissions, and app metadata; essential for understanding app structure and required permissions.app/build.gradle— Build configuration defining SDK versions, dependencies, and version info; critical for setting up the build environment and understanding library dependencies.app/src/main/aidl/io/github/muntashirakon/AppManager/IAMService.aidl— IPC interface definition for core AppManager service; foundational for inter-process communication with root/system access.app/src/main/assets/debloat.json— Database of bloatware definitions; core data asset used by the app's debloating and analysis features.app/schemas/io.github.muntashirakon.AppManager.db.AppsDb— Room database schema definitions tracking evolution; essential for understanding app data persistence layer..github/workflows/tests.yml— CI/CD pipeline for automated testing; critical for understanding code quality gates and validation strategy.BUILDING.rst— Build and development setup instructions; essential reference for all contributors setting up the development environment.
🛠️How to make changes
Add a new app analysis feature
- Define the IPC interface for your analysis operation in the IAMService.aidl (
app/src/main/aidl/io/github/muntashirakon/AppManager/IAMService.aidl) - Create a new Activity or Fragment for the UI in app/src/main/java/io/github/muntashirakon/AppManager/ and declare it in AndroidManifest.xml (
app/src/main/AndroidManifest.xml) - Implement the service handler in the AppManager service backend to execute the analysis logic with appropriate permissions (
app/src/debug/java/io/github/muntashirakon/AppManager/debug/R.java) - If storing results, add a new Room entity and DAO to the AppsDb database schema (
app/schemas/io.github.muntashirakon.AppManager.db.AppsDb/7.json)
Add support for a new file type to the editor
- Create a new TextMate language definition file in the appropriate language directory (
app/src/main/assets/languages/xml/tmLanguage.json) - Create a language-configuration.json file for syntax-specific behaviors (indentation, comments, brackets) (
app/src/main/assets/languages/xml/language-configuration.json) - Add the new language to the editor theme files and register in the code editor component (
app/src/main/assets/editor_themes/dark.tmTheme.json) - Update ProGuard rules if new reflection or dynamic loading is introduced (
app/proguard-rules.pro)
Add a new tracker/bloatware definition
- Update the debloat.json asset file with new package entries, signatures, or classification rules (
app/src/main/assets/debloat.json) - If adding to the database schema, create a migration by updating the schema version in AppsDb (
app/schemas/io.github.muntashirakon.AppManager.db.AppsDb/7.json) - Add corresponding unit tests in app/src/test/ to verify the new tracker is correctly identified (
.github/workflows/tests.yml)
Add a new remote shell command capability
- Extend the IRemoteShell.aidl interface with new command types or parameters (
app/src/main/aidl/io/github/muntashirakon/AppManager/IRemoteShell.aidl) - Implement the command handler in the AppManager service backend to process and execute the command (
app/src/debug/java/io/github/muntashirakon/AppManager/debug/R.java) - Create a new Activity or dialog UI for invoking the command in app/src/main/java/io/github/muntashirakon/AppManager/ (
app/src/main/AndroidManifest.xml) - Update ProGuard rules to preserve your new command classes from obfuscation (
app/proguard-rules.pro)
🔧Why these technologies
- Android Framework (Activities, Services, IPC) — Required for building Android apps; enables system-level package management and process monitoring.
- AIDL (Android Interface Definition Language) — Provides inter-process communication for accessing root/system privileges and executing privileged operations.
- Room ORM with SQLite — Efficient local caching of app metadata, permissions, and analysis results; reduces repeated system calls.
- Material 3 UI — Modern, accessible Android UI design language with dynamic theming for consistent user experience.
- Gradle Build System — Standard Android build tool; supports versioning, ProGuard obfuscation, and multi-flavor builds.
⚖️Trade-offs already made
-
Use IPC + remote shell execution for privileged operations
- Why: App needs root/system access for operations like uninstalling system apps; IPC enables privilege separation.
- Consequence: Increased complexity and latency; requires foreground service and elevated permissions; potential security attack surface.
-
Cache app metadata in local SQLite database
- Why: Reduces repeated queries to PackageManager; improves list performance and reduces system load.
- Consequence: Data staleness; must implement refresh mechanism; adds disk I/O overhead; requires schema migrations.
-
Bundle debloat.json and language definitions as static assets
- Why: Ensures offline availability and reduces network dependencies for tracking/analysis features.
- Consequence: APK size increase; updates require app release cycle; no dynamic definition updates.
-
Support multiple code languages (Java, Kotlin, Smali, XML, JSON, Shell) via TextMate syntax
- Why: Enables rich code inspection and manifest viewing for reverse engineering use cases.
- Consequence: Larger asset footprint; maintenance burden for syntax definitions
🪤Traps & gotchas
Committed credentials: app/dev_keystore.jks and plaintext password in build.gradle (kJCp!Bda#PBdN2RLK%yMK@hatq&69E) are serious security risks—should be in local.properties or CI secrets. Multi-process complexity: debug variant has separate applicationIdSuffix (.debug), meaning debug and release versions coexist; test carefully to avoid conflicts. Room schema migrations: incrementing schema version requires generating migration .json files in app/schemas/; Room will fail at runtime if schema doesn't match. AIDL compilation: native code built via CMake with ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON—ensure NDK is installed and compatible. Permission levels: features vary drastically based on root vs. ADB vs. non-privileged mode; test each path. ProGuard in release: app/proguard-rules.pro may obfuscate stack traces; keep mapping files for crash analysis.
🏗️Architecture
💡Concepts to learn
- AIDL (Android Interface Definition Language) — App Manager uses AIDL to communicate between its UI process and root/system service processes; understanding AIDL is essential for modifying permission revocation, app op changes, and component blocking features.
- Room Database Migrations — The app has 7 schema versions; any data model change requires a migration file. Mishandling migrations breaks user data during upgrades.
- Android Package Manager & PackageInfo — Core Android API for inspecting installed apps, permissions, and components; App Manager's entire feature set depends on querying this system service.
- Hybrid Encryption (RSA/ECC + AES) — App Manager supports 'Backup encryption: OpenPGP via OpenKeychain, RSA, ECC (hybrid encryption with AES)'; understanding hybrid encryption is critical for reviewing or extending backup security.
- Android Runtime Permissions & Dangerous Permissions — A core feature is revoking 'runtime (AKA dangerous) permissions'; this requires knowledge of Android's permission model and the distinction between install-time and runtime permissions.
- SELinux Policy & Contexts — Root features like freezing apps and editing system configs interact with SELinux; overly broad operations may be blocked by policy, requiring knowledge of SELinux contexts.
- APK Signing & Signing Certificates — App Manager can 'sign APK files with custom signatures before installing'; implementing or testing this requires understanding APK signature schemes (v1, v2, v3).
🔗Related repos
Magisk/Magisk— Companion systemless rooting framework; App Manager's root-only features depend on or integrate with Magisk's module system for deep app control.android-hacker/VirtualXposed— Alternative app management tool via Xposed hooks; solves similar permission/component control problems but via a different architectural approach.termux/termux-app— Provides terminal emulator that App Manager integrates with; users of App Manager often need Termux for command-line app analysis and ADB bridging.k3b/AuroraStore— Alternative Google Play client; App Manager's feature to 'open in Aurora Store' directly depends on this, and both target users avoiding Google Play Services.M66B/NetGuard— Network filtering tool addressing a related problem (app-level network control); some users combine with App Manager for comprehensive app restrictions.
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add unit tests for AIDL service interfaces (IAMService, IRemoteProcess, IRemoteShell)
The repo defines critical AIDL interfaces in app/src/main/aidl/io/github/muntashirakon/AppManager/ for IPC communication (IAMService.aidl, IRemoteProcess.aidl, IRemoteShell.aidl, IShellResult.aidl) but there are no visible unit tests covering these interfaces. Given that AppManager performs privileged operations via these services, comprehensive tests would ensure reliability and catch regressions in inter-process communication logic.
- [ ] Create app/src/test/java/io/github/muntashirakon/AppManager/ipc/ directory structure
- [ ] Add unit tests for IAMService.aidl covering service binding, method invocation, and error handling
- [ ] Add tests for IRemoteProcess and IRemoteShell interfaces validating command execution and result serialization
- [ ] Integrate tests into .github/workflows/tests.yml to run on CI
Add Room database migration tests for schema evolution (versions 1-7)
The app/schemas/ directory shows 7 database schema versions, indicating the app has evolved significantly. However, there are likely no migration tests ensuring data integrity when upgrading from older versions. This is critical for user data preservation and should be tested systematically before each release.
- [ ] Create app/src/test/java/io/github/muntashirakon/AppManager/db/ for database tests
- [ ] Add MigrationTest class that tests migrations from each schema version (1→2, 2→3, ... 6→7)
- [ ] Verify that sample data survives each migration without data loss
- [ ] Reference app/schemas/io.github.muntashirakon.AppManager.db.AppsDb/{1-7}.json files in test data setup
Add GitHub Action workflow for testing ProGuard obfuscation and release builds
The repo has app/proguard-rules.pro and release build types defined in app/build.gradle, but .github/workflows/tests.yml likely only tests debug builds. ProGuard misconfiguration can silently break release builds. A dedicated workflow would catch obfuscation issues, stripped methods, and incompatible library interactions early.
- [ ] Create .github/workflows/release-build-test.yml workflow file
- [ ] Configure workflow to build release APK with ProGuard enabled (minifyEnabled true for release)
- [ ] Add validation steps to verify APK size, check for stripped essentials using apktool or similar
- [ ] Set up to run on pull requests to app/proguard-rules.pro and app/build.gradle changes
🌿Good first issues
- Add unit tests for Room database migrations: The app/schemas/ directory shows 7 schema versions but no visible test files for migration correctness. Create tests in app/src/test/ that verify upgrading from each schema version to the next works without data loss.
- Document AIDL interfaces: The codebase has AIDL files (.aidl) for root/ADB communication, but no visible documentation of which interfaces are public API vs. internal. Create or enhance comments in AIDL files and add a doc explaining the IPC contract.
- Expand tracker scanning library data: The README mentions 'scan for trackers and libraries in apps' but the scanning logic's accuracy depends on a maintained library list. Review and contribute new tracker signatures to the embedded tracker database (likely in app/src/main/assets/ or as a resource file).
⭐Top contributors
Click to expand
Top contributors
- @MuntashirAkon — 98 commits
- @Fei1Yang — 1 commits
- @iamsanjaymalakar — 1 commits
📝Recent commits
Click to expand
Recent commits
3d11bcb— Update GitHub templates (MuntashirAkon)ba82bc9— Add AI usage policy (MuntashirAkon)4f69a92— interceptor: Intercept some popular Chinese apps (Fei1Yang)c24253d— SplitInputStream: close all underlying streams even if one close fails (iamsanjaymalakar)24c95a1— Check whether pin shortcut is supported before requesting a shortcut (MuntashirAkon)e08d028— Upgrade dependencies (MuntashirAkon)401b1c0— Fix resource leak in LogcatHelper#getLastLogLine (MuntashirAkon)cd6e3ac— Delete debug_build.yml (MuntashirAkon)d0e53fe— Discontinue debug variants (MuntashirAkon)3e7ea8b— Fix always setting system fonts (MuntashirAkon)
🔒Security observations
- Critical · Hardcoded Keystore Credentials in Build Configuration —
app/build.gradle - signingConfigs.debug section. The debug keystore password and key password are hardcoded in plain text in app/build.gradle. This exposes sensitive signing credentials in the source code repository, allowing any person with access to the repository to sign malicious APKs using the same keystore credentials. Fix: Move keystore credentials to a secure, external configuration file (e.g., local.properties or gradle.properties) that is added to .gitignore. Use environment variables or a secure credential management system for CI/CD pipelines. Never commit credentials to version control. - High · Development Keystore Committed to Repository —
app/dev_keystore.jks. The dev_keystore.jks file is committed to the repository at app/dev_keystore.jks. Combined with hardcoded passwords, this allows unauthorized signing of APKs. Even development keystores should not be committed to public repositories. Fix: Add dev_keystore.jks to .gitignore immediately. Revoke and regenerate this keystore. Use a secure artifact repository or key management system to distribute keystores to developers. Implement pre-commit hooks to prevent keystore files from being committed. - High · Disabled ProGuard/R8 Obfuscation in Release Build —
app/build.gradle - buildTypes.release section. The release build configuration has minifyEnabled set to false, disabling code obfuscation and optimization. This makes the released APK easier to reverse engineer, allowing attackers to analyze the code logic, extract sensitive algorithms, and identify security weaknesses more easily. Fix: Enable minifyEnabled true and proguardFiles for release builds. Configure ProGuard/R8 rules to preserve necessary classes while obfuscating sensitive code. Test thoroughly to ensure functionality is not broken by obfuscation. - Medium · Lint Security Checks Disabled —
app/build.gradle - lint section. The lint configuration has checkReleaseBuilds set to false and abortOnError set to false. This disables critical security and quality checks during the build process, allowing potential security issues to slip into production builds. Fix: Enable checkReleaseBuilds true and abortOnError true for release builds. Ensure all lint warnings are properly reviewed and addressed. Use a separate debug configuration if you need to disable checks only for development builds. - Medium · AIDL Interfaces May Expose Remote Access —
app/src/main/aidl/io/github/muntashirakon/AppManager/. Multiple AIDL interface files are defined (IAMService.aidl, IRemoteProcess.aidl, IRemoteShell.aidl) that provide inter-process communication. Without proper permission checks and input validation, these could be exploited for unauthorized access to sensitive functionality, particularly shell command execution. Fix: Implement strict permission checks for all AIDL interfaces. Validate all inputs from remote callers. Use signature-level permissions for sensitive operations. Implement rate limiting and logging for AIDL method calls. Review the implementation of IRemoteShell.aidl for command injection vulnerabilities. - Medium · Incomplete Gradle Configuration —
app/build.gradle - compileOptions section. The build.gradle file appears to be truncated (sourceCompatibility JavaVersion.). This could indicate missing or misconfigured security settings for the Java compilation environment. Fix: Complete the configuration and verify all compiler settings are explicitly defined. Set sourceCompatibility and targetCompatibility to consistent, supported Java versions. Review all build configuration for completeness. - Low · External Native Build Configuration —
app/build.gradle - externalNativeBuild section. The app uses CMake for native build with the ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES flag enabled. While not inherently insecure, native code introduces additional attack surface and requires careful security review. Fix: Ensure native code is thoroughly reviewed for memory safety issues (buffer overflows, use-after-free, etc.). Use Address Sanitizer (ASan) for testing. Keep NDK and CMake versions updated. Review native code for hardcoded credentials or secrets. - Low · Package Manager Permissions Should Be Reviewed —
undefined. As a package manager application, AppManager likely requests Fix: undefined
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.