diff --git a/app/build.gradle b/app/build.gradle index a22fc9291523adb827f9dd9eff0ae1eab55921f6..27e822fe62bc60fb06b2ce3bdd839e1b63b50c69 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId 'io.github.muntashirakon.AppManager' minSdk min_sdk targetSdk target_sdk - versionCode 436 - versionName "4.0.0-beta01" + versionCode 437 + versionName "4.0.0-beta02" javaCompileOptions { annotationProcessorOptions { arguments += [ diff --git a/app/src/main/res/raw/changelog.xml b/app/src/main/res/raw/changelog.xml index 24ba1c36087fcde0c9a621b4c8ff972bdea4a50b..5845123cd8408f35267fd19d96d2260010e737ed 100644 --- a/app/src/main/res/raw/changelog.xml +++ b/app/src/main/res/raw/changelog.xml @@ -1,5 +1,219 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?><!DOCTYPE changelog SYSTEM "https://raw.githubusercontent.com/MuntashirAkon/AppManager/master/schema/changlelog.dtd"> <changelog> + <release + type="beta release" + version="v4.0.0-beta02" + code="437" + date="13 November 2024"> + <note subtext="true"> + Private messages should be emailed to am4android@riseup.net. Emails sent to any other + email addresses shall be discarded. + </note> + <new>Added full support for Android 14-r29 and later</new> + + <title>App Details page</title> + <new title="App Info">Added a new tag: Sensors disabled</new> + <note subtext="true"> + 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. + </note> + <new title="App Info">Added option to enable/disable sensors</new> + <improve title="App Info">Display detailed installer info</improve> + <note subtext="true"> + 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. + </note> + <fix title="App Info">Use the configured naming format when sharing an APK(S)</fix> + <improve>Display blocking method in the components tabs</improve> + <note subtext="true"> + IFW+Dis = The component is blocked using both IFW and disable[br /] + IFW = The component is blocked using IFW[br /] + Dis = The component is disabled. + </note> + <improve>Hide “Data usage” for apps without the internet permission</improve> + <fix>Disabled “IFW” and “IFW+Disable” in the providers tab</fix> + <note subtext="true"> + 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. + </note> + <fix>Fixed applying IFW method in the components tabs</fix> + <note subtext="true"> + Fixed applying IFW rules if the previous rules were “IFW+Disable” or “Disable”. + </note> + + <title>App Usage page</title> + <improve>Improve the usage time calculation method</improve> + <note subtext="true"> + The usage events returned by the [tt]UsageStatsManager[/tt] 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. + </note> + <fix>Fixed the “times opened” value</fix> + <note subtext="true"> + 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:[br /] + 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.[br /] + 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.[br /] + These events are considered extraordinary and can be negligible in a real-life setting. + </note> + + <title>Backup/restore</title> + <improve>Improved handling custom users in backups</improve> + <note subtext="true"> + - 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.[br /] + - 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.[br /][br /] + These behaviours are applied throughout the app to reduce complexity and remove + any ambiguous behaviour. + </note> + <fix>Fixed creating custom backups</fix> + <note subtext="true"> + 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. + </note> + <fix>Fixed the “cache” “no cache” confusion in the backup flags selection dialog</fix> + <note subtext="true"> + 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. + </note> + + <title>DexOpt</title> + <improve>Set default compiler filter from the [tt]pm.dexopt.install[/tt] property</improve> + <fix>Fixed applying force dexopt in Android 14</fix> + <note subtext="true"> + 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. + </note> + + <title>File Manager</title> + <fix>Fixed remembering scroll position during navigation</fix> + + <title>Installer</title> + <improve>Accelerate the installation process in Android 12 onwards when possible</improve> + <note subtext="true"> + 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. + </note> + <improve> + Properly handle the originating URI extra supplied by third-party apps via + [tt]Intent.EXTRA_ORIGINATING_URI[/tt] + </improve> + <improve>Set originating package in Android 7 onwards</improve> + <note subtext="true"> + 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. + </note> + <improve> + Set package source to [tt]PACKAGE_SOURCE_OTHER[/tt] by default in Android 13 onwards + </improve> + <note subtext="true"> + This is done to prevent the system from applying various accessibility restrictions to + the app. However, [tt]PACKAGE_SOURCE_STORE[/tt] 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 [tt]startActivityForResult[/tt] whenever + possible. + </note> + + <title>Interceptor</title> + <improve>Intercept SAF, dialer, gallery, search, music player, and WhatsApp URLs</improve> + + <title>Main page</title> + <new title="Batch Ops">Added option to export app list as CSV and JSON</new> + <improve>Display restore dialog for uninstalled apps with backups</improve> + <note subtext="true"> + 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. + </note> + <fix> + Fixed retrieving applications when there are too many applications installed on the + device + </fix> + + <title>Profiles page</title> + <improve>Display app op names instead of number in the profiles page</improve> + + <title>Settings page</title> + <new>Added support for pure black theme</new> + <improve>Added a fallback server runner command from DE storage</improve> + <note subtext="true"> + 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. + </note> + <fix>Fixed displaying custom commands in the mode of ops page</fix> + <fix>Fixed the title for the Mode of Ops settings page</fix> + + <title>UI Tracker</title> + <improve>Display current activity name when possible</improve> + <note subtext="true"> + 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. + </note> + <fix>Fixed freezing issues in certain devices (e.g., Samsung)</fix> + + <title>Others</title> + <improve>Allow opening an application in Android TV as well as for other users</improve> + <note subtext="true"> + This feature does not work in the installation completion dialog or notification. + </note> + <improve>Allow the remote server to run under any privileged UID</improve> + <improve>Made notification permission optional</improve> + <note subtext="true"> + 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. + </note> + <improve>Updated documentation to reflect latest changes</improve> + <note subtext="true">In addition, Oxygen OS specific ADB instructions were added.</note> + + <fix>Fixed changing permissions in Android 14-r50 and later</fix> + <fix>Fixed deleting the cached application after the installation attempt fails</fix> + <fix>Fixed delivering changes made via batch operations</fix> + <fix>Fixed issues with executing automated tasks from the third-party applications</fix> + <fix>Fixed suspending packages in Android 14-r29 onwards</fix> + <fix>Hide Code Editor if it's disabled in settings</fix> + + <note> + [br /][b]Full list of changes:[/b] [a + href="https://github.com/MuntashirAkon/AppManager/compare/v4.0.0-beta01...v4.0.0-beta02"]v4.0.0-beta01...v4.0.0-beta02[/a] + </note> + </release> <release type="beta release" version="v4.0.0-beta01" diff --git a/fastlane/metadata/android/en-US/changelogs/437.txt b/fastlane/metadata/android/en-US/changelogs/437.txt new file mode 100644 index 0000000000000000000000000000000000000000..0916e52ed4f236b9c2c0347c2c1e4e3a65e5f843 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/437.txt @@ -0,0 +1,15 @@ +Private messages should be emailed to am4android@riseup.net. Emails sent to any other email addresses shall be discarded. +- Added full support for Android 14-r29 and later +- [App Info] New tag: Sensors disabled +- [App Info] Added option to enable/disable sensors +- [App Info] Display detailed installer info +- Display blocking method in the components tabs +- Fixed applying IFW method in the components tabs +- Improved the usage time calculation method +- Improved handling custom users in backups +- Fixed creating custom backups +- [Batch Ops] Added option to export app list as CSV and JSON +- Added support for pure black theme +- Added a fallback server runner command from DE storage +- [UI Tracker] Display current activity name when possible +- Updated documentation to reflect latest changes, so on. \ No newline at end of file