Android: Difference between revisions
m →Android 17 restricts how pre-installed apps are disabled (2026): Added archive link. |
|||
| (13 intermediate revisions by 3 users not shown) | |||
| Line 33: | Line 33: | ||
===Apps cannot run writable files=== | ===Apps cannot run writable files=== | ||
Apps targeting Android 10 are not allowed to execute files from their "home" folder, as this is enforced by the system.<ref>{{Cite web |author= |title=Behavior changes: apps targeting API 29+ | Apps targeting Android 10 are not allowed to execute files from their "home" folder, as this is enforced by the system.<ref>{{Cite web |author= |title=Behavior changes: apps targeting API 29+ | ||
|url=https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission |website=Android |date= |access-date=2 Mar 2026 |url-status=live |archive-url=https://web.archive.org/web/20260209004831/https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission |archive-date=9 Feb 2026}}</ref> While "targeting" any version is an opt-in choice, [[Google Play]] policy forbids apps that target old Android versions.<ref>{{Cite web |author= |title=Meet Google Play's target API level requirement |url=https://developer.android.com/google/play/requirements/target-sdk |website=Android |date= |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260318030349/https://developer.android.com/google/play/requirements/target-sdk |archive-date=18 Mar 2026}}</ref><ref>{{Cite web |author= |title=Google Play's Target API Level Policy |url=https://support.google.com/googleplay/android-developer/answer/16561298?hl=en |website=[[Google]] |date= |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260211153736/https://support.google.com/googleplay/android-developer/answer/16561298?hl=en |archive-date=11 Feb 2026}}</ref><ref>{{Cite web |author= |title=Target API level requirements for Google Play apps |url=https://support.google.com/googleplay/android-developer/answer/11926878 |website=[[Google]] |date= |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260318030448/https://support.google.com/googleplay/android-developer/answer/11926878 |archive-date=18 Mar 2026}}</ref> This negatively impacts apps such as {{Wplink|Termux}},<ref>{{Cite web |author=n0n3m4 |title=No more exec from data folder on targetAPI >= Android Q |url=https://github.com/termux/termux-app/issues/1072 |website=[[GitHub]] |date=18 Mar 2019 |access-date=2 Mar 2026 |url-status=live |archive-url=https://web.archive.org/web/20260315024821/https://github.com/termux/termux-app/issues/1072 |archive-date=15 Mar 2026}}</ref> which must be "[[Sideloading|sideloaded]]" so that the policy is not applicable, otherwise they must find a way to bypass it (risking legal issues).<ref>{{Cite web |last=Kang <!-- Display name is "iamahuman" as of 8 Apr 2026. -Sojourna --> |first=Jinoh |title=Revisit the Android W^X problem |url=https://github.com/termux/termux-app/issues/2155 |website=[[GitHub]] |date=3 Jul 2021 |access-date=2 Mar 2026 |url-status=live |archive-url=https://web.archive.org/web/20260315024819/https://github.com/termux/termux-app/issues/2155 |archive-date=15 Mar 2026}}</ref> | |url=https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission |website=Android |date= |access-date=2 Mar 2026 |url-status=live |archive-url=https://web.archive.org/web/20260209004831/https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission |archive-date=9 Feb 2026}}</ref> While "targeting" any version is an opt-in choice, [[Google Play Store]] policy forbids apps that target old Android versions.<ref>{{Cite web |author= |title=Meet Google Play's target API level requirement |url=https://developer.android.com/google/play/requirements/target-sdk |website=Android |date= |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260318030349/https://developer.android.com/google/play/requirements/target-sdk |archive-date=18 Mar 2026}}</ref><ref>{{Cite web |author= |title=Google Play's Target API Level Policy |url=https://support.google.com/googleplay/android-developer/answer/16561298?hl=en |website=[[Google]] |date= |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260211153736/https://support.google.com/googleplay/android-developer/answer/16561298?hl=en |archive-date=11 Feb 2026}}</ref><ref>{{Cite web |author= |title=Target API level requirements for Google Play apps |url=https://support.google.com/googleplay/android-developer/answer/11926878 |website=[[Google]] |date= |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260318030448/https://support.google.com/googleplay/android-developer/answer/11926878 |archive-date=18 Mar 2026}}</ref> This negatively impacts apps such as {{Wplink|Termux}},<ref>{{Cite web |author=n0n3m4 |title=No more exec from data folder on targetAPI >= Android Q |url=https://github.com/termux/termux-app/issues/1072 |website=[[GitHub]] |date=18 Mar 2019 |access-date=2 Mar 2026 |url-status=live |archive-url=https://web.archive.org/web/20260315024821/https://github.com/termux/termux-app/issues/1072 |archive-date=15 Mar 2026}}</ref> which must be "[[Sideloading|sideloaded]]" so that the policy is not applicable, otherwise they must find a way to bypass it (risking legal issues).<ref>{{Cite web |last=Kang <!-- Display name is "iamahuman" as of 8 Apr 2026. -Sojourna --> |first=Jinoh |title=Revisit the Android W^X problem |url=https://github.com/termux/termux-app/issues/2155 |website=[[GitHub]] |date=3 Jul 2021 |access-date=2 Mar 2026 |url-status=live |archive-url=https://web.archive.org/web/20260315024819/https://github.com/termux/termux-app/issues/2155 |archive-date=15 Mar 2026}}</ref> | ||
===Blocking sideloading of unverified Android apps (''2026—2027'')=== | ===Blocking sideloading of unverified Android apps (''2026—2027'')=== | ||
{{Main|Google Android restrict app sideloading}} | {{Main|Google Android restrict app sideloading}} | ||
Google announced in August 2025 that starting September 2026, unmodified Android devices in Brazil, Indonesia, Singapore and Thailand will no longer be allowed to install applications outside of the [[Google Play]] | Google announced in August 2025 that starting September 2026, unmodified Android devices in Brazil, Indonesia, Singapore and Thailand will no longer be allowed to install applications outside of the [[Google Play Store]] unless the developer has verified their identity with Google. The policy is aimed to be enforced world-wide in 2027.<ref>{{Cite web |last=Whitwam |first=Ryan |title=Google will block sideloading of unverified Android apps starting next year |url=https://arstechnica.com/gadgets/2025/08/google-will-block-sideloading-of-unverified-android-apps-starting-next-year/ |website=ArsTechnica |date=26 Aug 2025 |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20250826032858/https://arstechnica.com/gadgets/2025/08/google-will-block-sideloading-of-unverified-android-apps-starting-next-year/ |archive-date=26 Aug 2025}}</ref><ref>{{Cite web |author=DoorStepSamm |title=Google's plan to end sideloading on Android | ||
|url=https://xdaforums.com/t/googles-plan-to-end-sideloading-on-android.4756353/ |website=XDA |date=26 Aug 2025 |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260409033222/https://xdaforums.com/t/ongoing-september-2026-googles-plan-to-end-sideloading-on-android.4756353/ |archive-date=9 Apr 2026}}</ref> Devices without Google Mobile | |url=https://xdaforums.com/t/googles-plan-to-end-sideloading-on-android.4756353/ |website=XDA |date=26 Aug 2025 |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20260409033222/https://xdaforums.com/t/ongoing-september-2026-googles-plan-to-end-sideloading-on-android.4756353/ |archive-date=9 Apr 2026}}</ref> Devices without [[Google Mobile Services]] (GMS) or running a third-party {{Wplink|Read-only memory|ROM}} will be unaffected. However it's hard for users to bypass or spoof [[Google Play Integrity API|Google Play Integrity]] to hide their ROM or [[Jailbreak|root]] status to use utility apps such as most of banking apps.<ref>{{Cite web |author=HippoMan |title=[Discussion] The root-and-mod-hiding/fingerprint-spoofing/keybox-stealing cat-and-mouse game |url=https://xdaforums.com/t/discussion-the-root-and-mod-hiding-fingerprint-spoofing-keybox-stealing-cat-and-mouse-game.4425939/ |website=XDA |date=3 Apr 2022 |access-date=8 Apr 2026 |url-status=live |archive-url=https://web.archive.org/web/20250823095950/https://xdaforums.com/t/discussion-the-root-and-mod-hiding-fingerprint-spoofing-keybox-stealing-cat-and-mouse-game.4425939/ |archive-date=23 Aug 2025}}</ref> | ||
===Data collection=== | ===Data collection=== | ||
| Line 55: | Line 55: | ||
In North America, many Android devices like phones or tablets will not allow consumers to unlock and do what they want to modify the software. Therefore, it has been incredibly difficult and nearly impossible to root and install custom ROMs on the device unless an exploit has been found. Some OEMs like [[Samsung]] are now completely blocking [[bootloader unlocking]] on their phones regardless of region. | In North America, many Android devices like phones or tablets will not allow consumers to unlock and do what they want to modify the software. Therefore, it has been incredibly difficult and nearly impossible to root and install custom ROMs on the device unless an exploit has been found. Some OEMs like [[Samsung]] are now completely blocking [[bootloader unlocking]] on their phones regardless of region. | ||
===ADB restrictions=== | |||
Google has been adding more restrictions to what <code>[[wikipedia:Android_Debug_Bridge|adb]]</code> can access.{{Citation needed|reason=''When?''|date=18 May 2026}} For instance, if an app is not [https://developer.android.com/privacy-and-security/risks/android-debuggable debuggable], the user [[Data lock-in|cannot read any files in the app's data folder]]. Aside from transparency concerns, this makes full backups impossible, unless the app provides a way to export data. Google and many OEMs provide their own (proprietary) full-backup mechanisms, but those typically [[Forced account|require accounts]] and [[Forced cloud|cloud connections]]. Even if the app has <code>[https://developer.android.com/guide/topics/manifest/application-element#allowbackup allowBackup]</code> enabled, Android 12 forbids backup-restore via ADB unless it's a device-to-device transfer.<ref>{{Cite web |author= |title=Behavior changes: Apps targeting Android 12 |url=https://developer.android.com/about/versions/12/behavior-changes-12#backup-restore |website=Android |date= |access-date=6 Jul 2026 |url-status=live |archive-url=https://web.archive.org/web/20260521051408/https://developer.android.com/about/versions/12/behavior-changes-12#backup-restore |archive-date=21 May 2026}}</ref> However, there is a workaround.<ref>{{Cite web |author=mrrfv |title=Open Android Backup |url=https://github.com/mrrfv/open-android-backup |website=[[GitHub]] |date=26 Dec 2021 |access-date=6 Jul 2026 |url-status=live |archive-url=https://web.archive.org/web/20260704113646/https://github.com/mrrfv/open-android-backup |archive-date=4 Jul 2026}}</ref> | |||
Many other restrictions break standard {{Wplink|POSIX}} and {{Wplink|Linux}} APIs, such as [[wikipedia:Sysfs|reading device temperature from special files]]. The Android API provides some "official" alternatives to those interfaces, such as the <code>BATTERY_CHANGED</code> broadcast which any app can use to get info about the current state of the battery.{{Citation needed|date=6 July 2026}} | |||
===Android Cast restricted to Google-signed receivers=== | ===Android Cast restricted to Google-signed receivers=== | ||
| Line 67: | Line 72: | ||
Google is releasing Android 16 QPR1 update for Pixel devices on September 3, 2025, normally AOSP will get QPR1 update in 24-48 hours after Pixel devices. But until now, there still no QPR1 update for AOSP. Google later told Android Authority said they will release the source code "in the coming weeks." But they doesn't explain why they delaying QPR1 update for AOSP 16<ref>{{Cite web |last=Mishaal |first=Rahman |title=Android 16 QPR1’s source code is nowhere to be found, but Google swears it’s coming |url=https://www.androidauthority.com/android-16-qpr1-source-code-delay-3596650/ |website=Android Authority |date=10 Sep 2025 |access-date=18 Oct 2025 |url-status=live |archive-url=https://web.archive.org/web/20250911142548/https://www.androidauthority.com/android-16-qpr1-source-code-delay-3596650/ |archive-date=11 Sep 2025}}</ref> | Google is releasing Android 16 QPR1 update for Pixel devices on September 3, 2025, normally AOSP will get QPR1 update in 24-48 hours after Pixel devices. But until now, there still no QPR1 update for AOSP. Google later told Android Authority said they will release the source code "in the coming weeks." But they doesn't explain why they delaying QPR1 update for AOSP 16<ref>{{Cite web |last=Mishaal |first=Rahman |title=Android 16 QPR1’s source code is nowhere to be found, but Google swears it’s coming |url=https://www.androidauthority.com/android-16-qpr1-source-code-delay-3596650/ |website=Android Authority |date=10 Sep 2025 |access-date=18 Oct 2025 |url-status=live |archive-url=https://web.archive.org/web/20250911142548/https://www.androidauthority.com/android-16-qpr1-source-code-delay-3596650/ |archive-date=11 Sep 2025}}</ref> | ||
Update : Google is now releasing QPR1 update for AOSP 16 after 2 months delay<ref>{{Cite web |last=Mishaal |first=Rahman |title=The wait is over: Android 16 QPR1's source code is now available on AOSP |url=https://www.androidauthority.com/android-16-qpr1-source-code-available-3614853/ |website=Android Authority |date=12 Nov 2025 |access-date=12 Nov 2025 |url-status=live |archive-url=https://web.archive.org/web/20251112032612/https://www.androidauthority.com/android-16-qpr1-source-code-available-3614853/ |archive-date=12 Nov 2025}}</ref> | Update: Google is now releasing QPR1 update for AOSP 16 after 2 months delay<ref>{{Cite web |last=Mishaal |first=Rahman |title=The wait is over: Android 16 QPR1's source code is now available on AOSP |url=https://www.androidauthority.com/android-16-qpr1-source-code-available-3614853/ |website=Android Authority |date=12 Nov 2025 |access-date=12 Nov 2025 |url-status=live |archive-url=https://web.archive.org/web/20251112032612/https://www.androidauthority.com/android-16-qpr1-source-code-available-3614853/ |archive-date=12 Nov 2025}}</ref> | ||
===Android 17 restricts how pre-installed apps are disabled (''2026'')=== | |||
{{OngoingEvent}} | |||
Since Android 17, the command <code>adb shell pm uninstall --user 0</code> fails to disable ''any'' pre-installed package, regardless of how much the system depends on it (for instance, not even the Google Calculator can be disabled).<ref>{{Cite web |author= |title=PackageManagerShellCommand.java |url=https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java;l=2283-2293;drc=b2b726fd471b63c7e1804866f1edefb995ddbc1c |website=Android Code Search |date= |access-date=6 Jul 2026 |url-status=live |archive-url=https://megalodon.jp/2026-0707-1245-00/https://cs.android.com:443/android/platform/superproject/+/android-latest-release:frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java;l=2283-2293;drc=b2b726fd471b63c7e1804866f1edefb995ddbc1c |archive-date=7 Jul 2026}}</ref> <code>adb shell pm disable-user --user 0</code> is still allowed, for now. | |||
This is a problem because it limits how users can neutralize [[bloatware]]. | |||
==References== | ==References== | ||
{{Reflist}} | {{Reflist}} | ||
[[Category:{{PAGENAME}} | [[Category:{{PAGENAME}}|Category:<nowiki>{{PAGENAME}}</nowiki>]] | ||