- ★ Untouched apk with Original Hash
Signature
★ No changes were applied
★ Certificate MD5 digest: f759632b4cf3a7a8b4f3014dc7349e42
âž¡ Languages: Full Multi Languages
âž¡ CPU architectures: arm64-v8a, armeabi-v7a, x86, x86_64
âž¡ Screen DPIs: 120dpi, 160dpi, 240dpi, 320dpi, 480dpi, 640dpi
@derrin
This app has no advertisements
â— Added full support for Android 14-r29 and later
App Details page
â— [App Info] Added a new tag: Sensors disabled
â— System may misreport this permission. The best way to check if
sensors are indeed disabled is by opening the app first and then
visiting the App Info tab leaving the other app running in the
background.
â— [App Info] Added option to enable/disable sensors
â— [App Info] Display detailed installer info
â— An info button is added next to the installer which displays
the installer, the actual installer (AKA initiator), and the APK
source (originator). Clicking on each item opens the corresponding
App Details page. It also fixed displaying the installer app in
certain devices.
â— [App Info] Use the configured naming format when sharing an
APK(S)
â— Display blocking method in the components tabs
â— IFW+Dis = The component is blocked using both IFW and
disable
â— IFW = The component is blocked using IFW
â— Dis = The component is disabled.
◠Hide “Data usage†for apps without the internet
permission
◠Disabled “IFW†and “IFW+Disable†in the providers
tab
◠In Rules settings, the description for “Default blocking
method†was also updated with a note that says IFW feature does
not work with providers, “disable†is used for them
instead.
â— Fixed applying IFW method in the components tabs
â— Fixed applying IFW rules if the previous rules were
“IFW+Disable†or “Disableâ€.
App Usage page
â— Improve the usage time calculation method
â— The usage events returned by the UsageStatsManager were assumed
to be in order of their timestamp which does not seem to be true
and resulted in missing a few events due to the standard
calculation method, that is, calculating the time difference
between activity resume and pause timestamps. In addition, it
appears that the system may log activity stop timestamp without
logging any pause timestamp (a typical activity cycle would be
resume → pause → stop → resume → …) causing further miss
of events. These issues were addressed by sorting the events in
order of their timestamp as well as measure the time difference
between resume and stop timestamps instead of resume and pause
timestamps.
◠Fixed the “times opened†value
â— In order to calculate a more reliable number of times an app
was opened, the time difference between each activity opening and
closing are now relaxed. So, when the user navigates to another
activity from an activity belonging to the same app and the time
difference is less than 500 ms, the time difference is added to the
total usage time. This calculation is technically more precise than
the system's own open count because certain navigation involves the
use of system UI (e.g., the arrow in the gesture navigation is
emitted from the System UI app and should be considered as such)
which are ignored. However, the issues with choosing 500 ms (half
of a second) time difference are as follows:
â— 1. Due to an user waiting a long time to trigger the back
gesture or simply bad coding, an app may take more than this time
to open an activity which will cause them to be listed as two
accesses.
â— 2. Some apps support multiple windows. If the user opens
another activity in a new window shortly after opening the first
activity, the two accesses may be counted as one instead of
two.
â— These events are considered extraordinary and can be negligible
in a real-life setting.
Backup/restore
â— Improved handling custom users in backups
◠- Properly handle backup/restore for a single app. “Custom
users†in the backup options is displayed only if the app is
installed for multiple users. Similarly, cross-user restore is
supported via the “Custom users†option. In addition, fixed
issues causing the backup or restore to be performed for the wrong
users.
◠- Unless the “Custom users†option is selected, backup or
restore is made only for the current user in the batch selection
mode. Others retain the old behaviour. For example, in the batch
selection mode, restore is only made with the “base†backup
which is defined to be the primary backup for the current user. So,
if “Custom users†option is selected for restore operation, App
Manager will try to find the base backup of each selected user and
restore those for that user.
â— These behaviours are applied throughout the app to reduce
complexity and remove any ambiguous behaviour.
â— Fixed creating custom backups
â— When custom backups are enabled but the backup name is empty,
create a custom backup with the current date and time instead of
creating a base backup.
◠Fixed the “cache†“no cache†confusion in the backup
flags selection dialog
◠The “No cache†flag was replaced by the “cache†flag,
but the translations still use the former. So, the string ID is
altered to invalidate the translations.
DexOpt
â— Set default compiler filter from the pm.dexopt.install
property
â— Fixed applying force dexopt in Android 14
â— These fixes may not work for every device. A novel approach is
needed to reduce the complexity as well as put an end to the
cat-and-mouse game.
File Manager
â— Fixed remembering scroll position during navigation
Installer
â— Accelerate the installation process in Android 12 onwards when
possible
â— If an app is being installed in the foreground, App Manager
will try to accelerate the installation process by delaying various
post-installation tasks carried out by the system services.
â— Properly handle the originating URI extra supplied by
third-party apps via Intent.EXTRA_ORIGINATING_URI
â— Set originating package in Android 7 onwards
â— The originating package is automatically determined from the
Intent sent from the third-party apps. However, the determination
logic may not always work, but it was ensured that there will not
be any false positives, e.g., no spoofing can be done by a
third-party app.
â— Set package source to PACKAGE_SOURCE_OTHER by default in
Android 13 onwards
â— This is done to prevent the system from applying various
accessibility restrictions to the app. However,
PACKAGE_SOURCE_STORE is set by default if the originating package
is one of the supported app stores. At present, the supported app
stores are: Aurora Store, Droid-ify, F-Droid, F-Droid Basic,
F-Droid Classic and Neo Store. It is up to the developers to ensure
that they send the APK installation requests in a proper way, i.e.,
by utilizing features such as startActivityForResult whenever
possible.
Interceptor
â— Intercept SAF, dialer, gallery, search, music player, and
WhatsApp URLs
Main page
â— [Batch Ops] Added option to export app list as CSV and JSON
â— Display restore dialog for uninstalled apps with backups
◠Instead of displaying “App not installed†toast for the
uninstalled apps with backups, open the restore dialog instead when
clicking on such an item in the Main page.
â— Fixed retrieving applications when there are too many
applications installed on the device
Profiles page
â— Display app op names instead of number in the profiles page
Settings page
â— Added support for pure black theme
â— Added a fallback server runner command from DE storage
â— Added a fallback server runner command in case SD card is
inaccessible from the UID from which the script is being run. This
leverages the device encrypted storage (data_de) by making certain
folder and files globally accessible.
â— Fixed displaying custom commands in the mode of ops page
â— Fixed the title for the Mode of Ops settings page
UI Tracker
â— Display current activity name when possible
â— In addition to displaying the class name and its hierarchies,
the window will display the activity name if there's is an activity
(not all windows are activities). This requires the usage stats
permission which is enforced here even if it's disabled in the
settings. This is because this feature is meant to be used as a
useful tool separated from the rest of the app, but with some level
of integration.
â— Fixed freezing issues in certain devices (e.g., Samsung)
Others
â— Allow opening an application in Android TV as well as for other
users
â— This feature does not work in the installation completion
dialog or notification.
â— Allow the remote server to run under any privileged UID
â— Made notification permission optional
â— Although denying notification permission will render many
features useless, it is made optional for those who insists on
denying it. However, the permission shall still be asked everytime
the app is launched until it times out.
â— Updated documentation to reflect latest changes
â— In addition, Oxygen OS specific ADB instructions were
added.
â— Fixed changing permissions in Android 14-r50 and later
â— Fixed deleting the cached application after the installation
attempt fails
â— Fixed delivering changes made via batch operations
â— Fixed issues with executing automated tasks from the
third-party applications
â— Fixed suspending packages in Android 14-r29 onwards
â— Hide Code Editor if it's disabled in settings
This app has no advertisements