Repository navigation
Releases: 1zumiii/AppOpsNext
Release list
v1.6.5
简体中文
1.6.5 包含 1.6.5-beta1 和 beta2 的全部改动,可直接覆盖安装 1.6.0。
新增
- 应用页新增“按权限查看”。选择一项权限后,可查看各应用的权限模式,并单独或批量修改。
- 多选模式新增“全选”,仅作用于当前显示的项目。
改进
- 改进多选、批量操作、搜索筛选和刷新的交互。
- 批量操作前列出目标模式和待修改项目,结果可只显示失败项。
- 访问监测记录支持按应用和权限筛选。
兼容性
部分 Android 16 设备会限制相机、麦克风和位置等运行时权限的 AppOps 修改。遇到此类限制时,AppOpsNext 通过设置兼容撤销标记(REVOKED_COMPAT)实现“忽略”。
这种方式保留应用已获得的权限,系统权限页面可能仍显示为“已允许”。受影响的权限不支持“拒绝”,选择“拒绝”时会自动改用“忽略”。
修复
- 修复部分 Android 16 设备上运行时权限无法修改的问题。
- 修复监听者较多时“权限变更监听者”页面无法加载的问题。
English
1.6.5 includes all changes from 1.6.5-beta1 and beta2. It installs directly over 1.6.0.
New
- Added a By permission view to the Apps page. Select a permission to see the mode of each app, then change one app or several apps in a batch.
- Added Select all to multi-select mode. It applies only to the items currently shown.
Improved
- Improved multi-select, batch operations, search, filters and refreshing.
- Before a batch operation starts, it lists the target mode and the items to change. Batch results can show failures only.
- The access monitor log has filters for app and permission.
Compatibility
Some Android 16 devices restrict AppOps changes for runtime permissions such as camera, microphone and location. When these restrictions apply, AppOpsNext uses the compatibility revocation flag (REVOKED_COMPAT) to enforce Ignore.
This keeps the app's granted permission. The system permission settings can still show the permission as allowed. Deny is not available for the affected permissions. If you select Deny, AppOpsNext uses Ignore.
Fixed
- Fixed runtime permission changes that failed on some Android 16 devices.
- Fixed the Permission change listeners page failing to load when there are many listeners.
SHA-256 (AppOpsNext-v1.6.5.apk): 037b871e6ea99ec1e55a8b7414e5558ff8cd0008a840272384ddd631798182ae
v1.6.5-beta2
简体中文
本测试版基于 1.6.5-beta1,主要改进多选、批量操作、刷新和访问监测的交互,并修复若干问题。本版本支持覆盖安装 1.6.0 和 1.6.5-beta1。
新增与改进
- 批量操作确认时显示目标模式和待修改项目清单。清单较长时默认折叠,可展开查看。
- 批量操作结果新增“仅失败”筛选。失败项显示简短原因,可展开查看细节。
- 模板“管理权限”、权限历史“选择要查看的权限”和访问监测的监测点列表中,已选项目优先显示,其余项目保持原有顺序。列表打开期间,勾选或取消选择不会改变排列顺序。
- 模板“管理权限”显示已选数量,搜索无结果时显示提示,入口移至规则列表上方。
- 应用页和“权限变更监听者”页面支持下拉刷新。监听者页面的说明移至信息按钮。
- 搜索框新增清空按钮。权限历史的应用筛选支持按应用名和包名搜索。
- 监测记录支持按应用和权限筛选,可与允许、拒绝筛选组合使用。
- “按权限查看”中,模式为“忽略”的项目补充显示对应运行时权限的授权状态。
- 优化部分 Android 16 设备上的权限修改流程。同一应用的同一项权限在确认需要兼容处理后,后续修改优先使用该方式,减少重复失败的尝试。
修复
- 修复 beta1 中权限详情页从后台返回时不刷新的问题。
- 修复取消批量操作确认后已选项目被清空的问题。
- 修复屏幕旋转后已选项目丢失的问题。
- 没有权限规则的模板不再允许套用,并显示提示。
- 修复监听者数据较多时“权限变更监听者”页面无法加载的问题。
- 修复访问监测的应用搜索无结果时页面空白的问题。
English
This beta is based on 1.6.5-beta1. It improves interaction in multi-select, batch operations, refreshing and the access monitor, and fixes several issues. It can be installed over 1.6.0 and 1.6.5-beta1.
New and improved
- Batch confirmations now show the target mode and the list of items to change. Long lists are collapsed by default and can be expanded.
- Batch results add a Failures only filter. Failed items show a short reason, with details available on expansion.
- Template Manage permissions, Choose permissions to show in Permission history, and the monitoring points list in Access monitor now show selected items first, with the rest in their original order. Checking or unchecking items while the list is open does not change the order.
- Template Manage permissions shows the selected count and a message when a search has no results. Its entry moved above the rules list.
- The Apps page and the Permission change listeners page support pull to refresh. The listeners page explanation moved behind the info button.
- Search fields have a clear button. The app filter in Permission history supports searching by app name and package name.
- Monitor log can be filtered by app and permission, in combination with the allowed and denied filters.
- In the By permission view, items in Ignore mode also show whether the corresponding runtime permission is granted.
- Improved permission changes on some Android 16 devices. Once a permission of an app is confirmed to need compatibility handling, later changes to the same permission of that app use that method first, avoiding repeated failed attempts.
Fixed
- Fixed permission details not refreshing when returning from the background, introduced in beta1.
- Fixed selections being cleared after cancelling a batch confirmation.
- Fixed selections being lost after rotating the screen.
- Templates without permission rules can no longer be applied and show a notice instead.
- Fixed the Permission change listeners page failing to load when there are many listeners.
- Fixed a blank page when an app search in Access monitor has no results.
SHA-256 (AppOpsNext-v1.6.5-beta2.apk): 4d70b525cf9596e019925a618f44e0c0da5199b55f494f40ee92dbdbbaf94ba6
v1.6.5-beta1
简体中文
本测试版基于 1.6.0,新增按权限查看和全选功能,并修复部分 Android 16 设备上的运行时权限修改失败问题。可直接覆盖安装 1.6.0,已保存的模板和设置不受影响。
兼容性说明
部分 Android 16 设备会限制相机、麦克风和位置等运行时权限的 AppOps 修改。遇到此类限制时,AppOpsNext 通过设置兼容撤销标记(REVOKED_COMPAT)实现“忽略”。
这种方式保留应用已获得的权限,不会结束应用进程。系统权限页面可能仍显示为“已允许”。
在此类设备上,受影响的权限不支持“拒绝”模式。选择“拒绝”时,AppOpsNext 会自动改用“忽略”。
新增与改进
- 应用页新增“按应用”和“按权限”两个标签页。选择一项权限后,可查看各应用的权限模式,支持单项修改和多选批量修改。
- 应用页、应用详情页和权限详情页的多选模式新增“全选”。全选仅作用于当前显示的项目,搜索或筛选前的选择会保留。
- 为权限列表中的常见权限补充图标映射。
修复
修复部分 Android 16 设备上从“拒绝”自动改用“忽略”后,修改仍然失败的问题。此修复适用于单项修改、批量操作和模板应用。
验证范围
按权限查看功能目前仅在 ASUS AI2302(Android 15)上验证。反馈者已在 realme RMX3370(Android 16)上确认兼容撤销标记生效。
English
This beta is based on 1.6.0. It adds a by-permission view and Select all, and fixes runtime permission changes that fail on some Android 16 devices. It can be installed over 1.6.0 without affecting saved templates or settings.
Compatibility notes
Some Android 16 devices restrict AppOps changes for runtime permissions such as camera, microphone and location. When these restrictions apply, AppOpsNext uses the compatibility revocation flag (REVOKED_COMPAT) to enforce Ignore.
This method preserves the app's granted permission and does not terminate its process. The system permission settings may still show the permission as allowed.
Deny is unavailable for the affected permissions on these devices. Selecting Deny automatically falls back to Ignore.
New and improved
- Added By app and By permission tabs to the Apps page. Selecting a permission shows each app's permission mode, with support for individual and batch changes.
- Added Select all to multi-select mode on the Apps page, app details and permission details. It applies only to currently displayed items and preserves selections made before a search or filter.
- Added dedicated icons for common permissions in permission lists.
Fixed
Fixed permission changes that still failed after falling back from Deny to Ignore on some Android 16 devices. The fix applies to individual changes, batch operations and template application.
Verification scope
The by-permission view has currently been verified only on an ASUS AI2302 running Android 15. A reporter confirmed that the compatibility revocation flag takes effect on a realme RMX3370 running Android 16.
SHA-256 (AppOpsNext-v1.6.5-beta1.apk): ab35efeae54502efd94ddd069533f1c24cdf68ca914f5c6b000701007c975d86
v1.6.0
简体中文
-
1.6.0 对主要页面及相关操作界面进行了现代化重构,可直接覆盖安装 1.5.0。
-
历史页「涉及应用」现在默认按访问与拒绝的总次数排序,也可切换其他排序方式。
English
-
1.6.0 refreshes the main screens and related views with a more modern design. It installs directly over 1.5.0.
-
The Apps involved list in History now sorts by total accesses and denied attempts by default, with other sorting options available.
SHA-256 (AppOpsNext-v1.6.0.apk): afca931497d4f1f3372d26a0c4ea83a19924bef0db3f2223b6a5b75efec98713
v1.5.0
简体中文
因内容较多,直接提升版本号至1.5.0 正式版,包含 1.4.1 三个测试版的全部改动,可直接覆盖安装升级。
新增
- 历史记录持久化: 系统只保留最近 7 天的权限访问明细,超过7天会汇总成区间统计无法查看明细,超过30天记录遍不再可信。此功能默认关闭,开启后,AppOpsNext 会将这些记录长期留存在本地,更早的访问也能随时回溯查看。
- 历史记录筛选: 权限历史支持按时间范围和应用筛选,并新增被拒绝访问的次数统计。
- 定向访问监测(实验性): 可对指定应用的指定权限进行实时监测,在其被访问时推送通知。所有访问(包括被拒绝的)均会留存为监测记录,可供后续查询。每个监测点的通知方式和频率也可单独设置。
此功能走的是和历史记录不同的管线,即使因为兼容性失效也不影响核心功能的使用 - 权限变更监听者(实验性): 查看当前有哪些进程在监听应用权限设置的变化。
改进
- 改善 UI/UX,优化 App 性能。
- 诊断日志不再参与云备份。
需要注意
- 访问监测默认每次访问都会通知,定位这类高频权限建议设置通报间隔。
English
With this many additions, this release moves straight to 1.5.0. It includes all changes from the three 1.4.1 betas and can be installed over an earlier version.
New
- History persistence: Android keeps detailed permission access records for seven days. After that, only counts over broader time periods remain, and records older than 30 days are no longer reliable. History persistence is off by default. Enable it to keep a local copy of individual records and revisit them after Android stops retaining the details.
- History filters: filter permission history by time range and app, with counts of denied attempts.
- Access monitor (experimental): watch chosen permissions of chosen apps in real time and get notified when they are used. Every access, including refused ones, is kept in a log you can review later. Each monitoring point can have its own notification style and frequency. The monitor runs independently of permission history. If it is unavailable on your device, history and the app's core features will still work.
- Permission change listeners (experimental): see which processes are listening for changes to app permission settings.
Improved
- Better UI and UX, and improved app performance.
- The diagnostic log is no longer included in cloud backups.
Note
- The access monitor notifies on every access by default. For high-frequency permissions such as location, setting a reporting interval is recommended.
SHA-256 (AppOpsNext-v1.5.0.apk): 84b831c803d692ee32eb57e596ed500c45e87f6bb0d97cbb6837442d64643487
v1.4.1-beta3
简体中文
相比 Beta2,本次测试版主要改进实验性监测功能,并在历史页加入被拒绝访问的统计。
应该是最后一个Beta了,如果没出啥奇奇怪怪的Bug预计两三天后出正式版
需要注意
- 监测自检不再读取剪贴板,而是检查系统是否记录了相应的监听注册。检查结果分为「已确认」「无法确认」和「失败」。如果 ROM 输出格式不同,或未找到匹配的注册,可能显示「无法确认」。此时仍可手动启用监测,但即使注册已确认,也不能保证事件一定送达。
- 修复部分较新 AppOps 的编号映射错误。此前在「显示全部监测点」中选择某些操作时,实际监听的可能是其他操作。默认的 10 个常用监测项不受影响。
新增与改进
- 新增「权限变更监听者」页面,查看当前有哪些进程注册了权限模式变更监听。页面显示的是查询时的状态。多个应用共享 UID 时,可能列出多个关联应用,无法确定具体由哪个应用注册。
- 历史页新增被拒绝访问的次数统计,并标明统计区间。这些数据只有区间内的累计次数,没有每次尝试的时间戳。七天图表仍只统计成功访问。
- 诊断报告加入监听注册状态,方便排查监测问题。
- 高级选项中的可选 AppOps 从 147 项增加到 148 项,实际可用范围取决于 ROM。
- 改进监测通知,改善 UI 视觉表现,并增加通知权限提示和通知设置入口。
修复
- 看门狗现在会检查监听注册是否仍然存在,发现已确认的注册丢失后,会尝试自动重新注册。
- 解析回调失败时,监测状态会显示错误提示。
实验性监测和监听注册表相关功能目前仅在 ASUS AI2302(Android 15)上验证。其他 ROM 如果显示「无法确认」,仍可继续测试,并在反馈时附上诊断报告。
AppOps 的正常读写逻辑没有改变,已保存的模板、设置和监测配置不受影响。历史缓存格式已升级。如果回退到 Beta2,需要重新读取系统历史来重建缓存。
English
This test build improves the experimental monitor and adds denied-access statistics to History. The changes below are relative to Beta2.
Important
- Monitor self-check no longer reads the clipboard. It now checks for matching registrations in the system watcher registry and reports confirmed, unconfirmed, or failed. An unrecognized ROM output format or missing matching registrations may produce an unconfirmed result. You can still enable monitoring manually, but even confirmed registrations do not guarantee event delivery.
- Fixed incorrect operation-code mappings for some newer AppOps. Previously, selecting certain operations under Show all monitoring points could cause a different operation to be monitored. The default 10 monitoring options were not affected.
New and improved
- Added Permission change listeners to show which processes have registered for permission mode changes. The page is a snapshot taken when queried. Apps that share a UID may appear together because the registering app cannot always be identified.
- History now shows denied-access counts and the intervals they cover. These are totals for each interval, without timestamps for individual attempts. The seven-day chart still counts successful accesses only.
- Diagnostic reports now include watcher registration state to help troubleshoot monitoring.
- The advanced list has expanded from 147 to 148 AppOps. Which operations are available depends on the ROM.
- Improved monitor notifications and UI appearance, and added notification-permission guidance with a shortcut to notification settings.
Fixed
- The watchdog now checks whether watcher registrations are still present. If a previously confirmed registration is lost, it attempts to register it again automatically.
- Callback parsing failures now appear as errors in monitor status.
Experimental monitoring and watcher-registry features have only been verified on an ASUS AI2302 running Android 15. If another ROM reports an unconfirmed result, you can continue testing and include a diagnostic report with your feedback.
Normal AppOps read/write logic is unchanged. Saved templates, settings, and monitoring configurations are unaffected. The history cache format has been updated. Downgrading to Beta2 requires fetching system history again to rebuild the cache.
SHA-256 (AppOpsNext-v1.4.1-beta3.apk): 7f7e1432b4eda029525dafcc7f65f55b8ea856ea0fd4adfcb71dadb8dbb5798e
v1.4.1-beta2
简体中文
测试版,改动集中在实验性监测功能。未启用该功能的话与 v1.4.0 行为一致。
先挂个两三天,没出奇奇怪怪的Bug就推正式版
需要注意的行为变化
- 计数含义改为「通报次数」,默认每次访问都会通报,不再自动合并。定位这类会持续高频上报的权限,不设通报间隔的话通知会在几秒内被刷满。请在「监测设置 → 监测点设置」里给这类监测点设一个间隔。
新增
- 监测点级配置:「应用 + 权限」构成一个监测点,每个监测点可单独设置通报间隔、提醒方式(跟随全局/静默/弹窗)、通报内容(全部/仅被拒绝/仅被允许)。
- 新增「仅在应用不在屏幕上时通报」。判定依据是系统为该应用记录的进程状态,只有应用正显示在屏幕上才算前台,前台服务算作不在屏幕上。读不到该状态时照常通报,不会静默。
- 可监测的权限从 10 个扩展到全部 147 个,首次开启会说明噪音与 ROM 适配性两项风险。
- 新增「配置示例」页,列出常见场景对应的配置建议。
- 取消勾选某个权限后,它的监测点配置会保留,重新勾选时继续生效。
修复
- 监听的注册与停止没有串行化,可能造成重复订阅,或关闭后仍有监听残留在系统中。
- 旧版 Parcel 布局的回退解析判别条件不可靠,可能把「被拒绝」读成「被允许」。
- 事件只按包名匹配,其他用户空间(如私密空间)中同名应用的访问会混入同一条记录。
- 只注册到 started 监听时,被允许的长时访问会被整体丢弃。
- 常驻通知不再在不同通知渠道之间来回切换。
- 通知中过长的应用名不再把后面的权限名和计数挤掉。
- 系统服务重启后的恢复流程此前无法真正重新注册,现已可用。
AppOps 的读写方式没有改动,已保存的模板、历史和设置不受影响。已选择的监测应用与权限会保留。
English
A test build. The changes are confined to the experimental monitor; with that feature off it behaves like v1.4.0.
Behaviour change to be aware of
- Counts now mean "times reported", and every access is reported by default instead of being folded together. A permission that reports constantly, such as location, will fill the notification within seconds if no interval is set. Give those monitoring points a reporting interval under Monitor settings → Monitoring points.
New
- Per-point settings: an app and a permission together form a monitoring point, each with its own reporting interval, notification behaviour (follow monitor / silent / pop up), and outcome filter (everything / refused only / allowed only).
- New "only when off screen" option. It reads the process state the system keeps for the app; only the app being on screen counts as foreground, so a foreground service is still reported. If the state cannot be read, the access is reported rather than dropped.
- The list of watchable permissions goes from 10 to all 147. Turning that on explains the noise and ROM-compatibility risks first.
- New "Example setups" page describing common situations and what to set for them.
- Unpicking a permission keeps its monitoring point settings for when it is picked again.
Fixed
- Watch registration and teardown were not serialised, which could leave duplicate subscriptions or watches still registered after the monitor was switched off.
- The fallback for the older Parcel layout could not tell the two layouts apart reliably and could read a refusal as an allowed access.
- Events matched on package name alone, so an app with the same name in another profile, such as a private space, was folded into the same entry.
- Allowed long-running accesses were dropped entirely when only the started watch was registered.
- The ongoing notification no longer moves between notification channels.
- A long app name no longer pushes the permission and the count off the end of a notification line.
- Recovery after a system service restart could not actually re-register; it now can.
AppOps reads and writes are unchanged, and saved templates, history, and settings are unaffected. Selected monitoring targets are kept.
SHA-256 (AppOpsNext-v1.4.1-beta2.apk): 87a93079a2d635fc0916b2357f15ae4b1b0c00e85984de8835f99024f840d318
v1.4.1-beta1
简体中文
测试版,仅包含实验性监测功能的修复与改进。未启用该功能的话与 v1.4.0 无差别。
- 通知合并为一条:常驻通知同时承载运行状态和访问记录,状态栏不再出现两个图标互相遮挡。
- 计数按实际访问次数统计:同一应用短时间内重复访问会累加并显示次数,图标上的数字改为访问总数而非记录条数。
- 平台会把一次调用上报多次,现已按 1 秒窗口归并,不再虚增计数。
- 通知新增「清空」按钮,划掉通知也会清零。
- 监测的配置项收进「监测设置」子页面,监测运行时整个入口禁用。
- 监测开启但未排除电池优化时给出提示,可跳转系统设置,也可手动关闭该提示。
- 修复注册失败时服务仍挂着「运行中」通知的问题。
- 修复强行停止后监测不恢复、切换语言后通知语言不变的问题。
English
A test build. It only touches the experimental monitor; with that feature off it behaves exactly like v1.4.0.
- The monitor now keeps a single notification carrying both its running state and the reported accesses, so two icons no longer compete in the status bar.
- Counts reflect actual accesses: repeats from one app are folded together with a count, and the number on the icon is the total rather than the number of entries.
- The platform reports one call several times; repeats within a second are now treated as one access instead of inflating the count.
- The notification has a Clear action, and dismissing it also resets the count.
- Monitor configuration moved behind a single Monitor settings entry, closed while the monitor runs.
- A notice appears when the monitor is on but the app is not exempt from battery optimisation, linking to system settings and dismissible by hand.
- Fixed the service staying up with a "running" notification after its registration failed.
- Fixed the monitor not returning after a force stop, and the notification keeping the previous language after a language change.
SHA-256 (AppOpsNext-v1.4.1-beta1.apk): d392797c56c2547bc1fd3d422b0c7b036d790ba4e0197227edeede2cf00c71ce
v1.4.0
简体中文
-
新增实验性功能:后台定向监测指定应用的指定权限,应用在后台调用时主动通知。入口:设置 → 实验性功能。默认不监测任何应用,需自行选择要监测的应用及其权限。开启时会读取一次自己的剪贴板用于自检。
仅在 ASUS AI2302(Android 15 / API 35)上验证过可用性,其余 ROM 可用性未知,不支持的设备会在自检时明确告知。提示:部分厂商的电池优化或后台管理会在熄屏一段时间后结束本应用进程,导致监测静默停止。这不受应用控制。若需长时间运行该功能,建议在系统设置中将 AppOpsNext 排除出电池优化,并在最近任务中锁定。重新打开应用会自动恢复监测。
-
新增网络权限,仅用于静默检查更新。不会强制更新,也不会弹窗或发通知;有新版本时只在设置页的「App 版本」条目旁显示,点击跳转发布页。不会上报任何用户信息。
AppOps 的读写方式没有改动,已保存的模板、历史和设置不受影响。
English
-
New experimental feature: watch chosen permissions for chosen apps and be told when they are used in the background. Settings → Experimental features. Nothing is watched until you pick it. Turning it on reads this app's own clipboard once as a self-check. Availability was only verified on an ASUS AI2302 (Android 15 / API 35) and is unknown on other ROMs, where the self-check will say so.
Note: some vendors' battery optimisation or background management ends this app's process after the screen has been off for a while, which stops the monitor silently. This is outside the app's control. To run it for long periods, exclude AppOpsNext from battery optimisation in system settings and lock it in the recents list. Opening the app again restores the monitor.
-
Added the network permission, used only to check quietly for a newer release. It never forces an update and never shows a popup or a notification; a new version appears next to the app version in Settings and opens the release page when tapped. No user information is uploaded.
AppOps reads and writes are unchanged, and saved templates, history, and settings are unaffected.
SHA-256 (app-release.apk): 0bfe0b3dce4e92ddb1cc0c8311491e4a04e1895739f0d44e8a8dde7c392726fc
v1.3.3
简体中文
- 修复旋转屏幕、切换深色模式或字号、以及应用被系统回收后返回时,详情页退回应用列表的问题。
- 返回应用时复用近期的应用列表结果,不再每次都重新枚举全部已安装应用,从系统设置页返回更快。
- 详情页搜索不再每输入一个字符就重建整个操作目录。
- 历史刷新改为一次性保存,诊断日志改为追加写入。
- 原生后端连接时清理
/data/local/tmp下旧版本残留的 daemon 目录,并为请求与握手读取补齐长度上限。
AppOps 的读写方式没有改动,已保存的模板、历史和设置不受影响。
English
- Fixed the app detail screen falling back to the app list after the activity was recreated - rotating the device, switching dark mode or font size, or returning once Android had reclaimed the app.
- Returning to the app reuses a recent app list instead of enumerating and labelling every installed package again, so coming back from system settings is quicker.
- Searching operations on the detail screen no longer rebuilds the whole operation catalog on every keystroke.
- History refreshes now save once instead of once per followed operation, and the diagnostic log appends entries instead of rewriting the file.
- The native backend removes daemon directories left by earlier versions under
/data/local/tmp, and bounds request and handshake reads by the protocol length limit.
AppOps reads and writes are unchanged, and saved templates, history, and settings are unaffected.
SHA-256 (app-release.apk): 9c8dac19f788e13c9113372e52caf6b40c64cc928f620fedf8f81fb3fa0f1a55