How To Guide Installing apps with an outdated SDK on Android 14

Search This thread

logopek

Member
Jun 14, 2023
10
16

APK PROVIDED​

In Android 14, you can`t install apps where TARGET_SDK <= 22.
1.Enable USB Debigging​
2.Download platform-tools
3.adb install --bypass-low-target-sdk-block apk_name.apk
Update:
Also you can install via pm.
PUT YOUR APK IN /data/local/tmp
su -c pm install --bypass-low-target-sdk-block /data/local/tmp/filename.APK

I've made a simple app(my coding skills is bad, sorry)
How to use:
Install app
Go to settings and give permission "Install from unkown sources"
Put path to apk
If you downloaded it (ex. from Chrome) path should be: "/storage/emulated/0/Download/{your apk name}.apk"
Click "Install" and give root permission
Profit!
 

Attachments

  • app-debug.apk
    11.1 MB · Views: 17,647
Last edited:

ZG089

Senior Member
Nice guide 👍
Thank you 😊

--ZG089
 
  • Like
Reactions: tarapwahcantt
Hey @logopek

Thanks for the tutorial, for some reason this info is hard to come by. It also seems like they're actually targeting higher SDK versions than 23 but I can't confirm. I just know that I had quite a few app installs blocked when I upgraded to the Pixel 8 Pro last month and they were all recent apps. If it were 1 or 2, ok but this was like 1 in 10 (of 600+).

Anyway, this policy aggravates me (especially if they're overreaching and blocking sideloading for apps newer than A6) but what has me at my wit's end is the fact that these supposed workarounds are not working around ****.

I already knew the ADB install command but you introduced me to the pm install command option. Sadly, both fail.

The former returns a "Performing Streamed Install" message, but it does so after stating "cannot stat [apk_name].apk: no such file or folder." I tried with the apk file in my downloads folder, in /storage/emulated/0 (internal storage) and both with and without the absolute path for each and I still got the same "no such file or folder" message, preceding, "Performing Streamed Install"

The pm install option that your introduced me to with this thread fails in a different way (I renamed the APK file to simply "gd.apk" to minimize the chance of fat finger syndrome being the cause of my woes, i.e., user error):

[root@machine_name]# adb shell pm install --bypass-low-target-sdk-block /storage/emulated/0/gd.apk avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0System server has no access to read file context u:object_r:fuse:s0 (from path /storage/emulated/0/gd.apk, context u:r:system_server:s0) Error: Unable to open file: /storage/emulated/0/gd.apk Consider using a file under /data/local/tmp/ Error: Can't open file: /storage/emulated/0/gd.apk Exception occurred while executing 'install': java.lang.IllegalArgumentException: Error: Can't open file: /storage/emulated/0/gd.apk at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:688) at com.android.server.pm.PackageManagerShellCommand.doRunInstall(PackageManagerShellCommand.java:1557) at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1523) at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:236) at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97) at android.os.ShellCommand.exec(ShellCommand.java:38) at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6350) at android.os.Binder.shellCommand(Binder.java:1068) at android.os.Binder.onTransact(Binder.java:888) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352) at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6334) at android.os.Binder.execTransactInternal(Binder.java:1344) at android.os.Binder.execTransact( Binder.java:1275)

You don't see the -c argument because it wasn't recognized... I'm using a Linux machine, not sure if you were possibly using a Windows PC or perhaps even running the commands in your phone with LADB but without it, it seemed good but just refused to read the file. As before, I tried with and without the absolute file path in addition to in my Download folder where it resides by default and also moving it to /storage/emulated/0 - still no joy.

I doubt it is of any consequence but the pm install option returned 2 different errors, which may have been because I tried it with both sudo and su but in addition to the error output above, it returned the same error but without the beginning bit:

avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0System server has no access to read file context u:object_r:fuse:s0 (from path /storage/emulated/0/gd.apk, context u:r:system_server:s0)

also, in case it's relevant; I tried both commands (in all possible ways) using LADB (so using the target Device without a PC, which works flawlessly for every other ADB command), using wireless debugging (conventional approach, via PC) and the old fashioned way (wired usb→PC, access ADB via terminal). The only other thing to note is, as mentioned above, instances where a PC was used were done on a Linux machine, not Windows or Mac


Anyway, sorry for the novel-length post but I've been dealing with this for months now or for however long I've been on Android 14 and it's driving me NUTS. This is the most upset I've been with Android, maybe ever, and it's mostly because there is a given workaround that just doesn't work for me at all. Also because there's next to nobody talking about this on the internet and I can't wrap my head around that. We can't be the only ones that sideload apps. I can't speak for you but I have hundreds of sideloaded apps, mostly due to this type of bull**** that has me fed up with anything Google to the extent that I avoid using any of their services unless absolutely necessary, e.g., if an app has a GitHub page or it's hosted on F-Droid, I'll much sooner download the app from those sources than Google Play. Sure, this introduces a number of headaches, namely around updates, but so does Google ¯\_(ツ)_/¯
 
Last edited:

logopek

Member
Jun 14, 2023
10
16
When you install it via pm, you need to put APK in /data/local/tmp
 
give me the APK you want to install
adb: failed to install D:\downloads\com.gameloft.android.ANMP.GloftASHMmod_1.2.8d-APKs_Awards-Mod.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
 

Attachments

  • com.gameloft.android.ANMP.GloftASHMmod_1.2.8d-APKs_Awards-Mod.apk
    29.9 MB · Views: 415

NinetyRalph

Member
Jul 16, 2019
33
8
Legend
 
  • Like
Reactions: DARK7BEAST

SirKosichka

Senior Member
Mar 29, 2021
187
77
Thank you so much. finally i installed photoshop on android 14
 

seawildflower

Senior Member
May 12, 2024
70
26
OR, you just do it the easy way, (if you're experienced in using APKTool), just edit the AndroidManifest.xml of whichever app you wish to install, and modify the minimum SDK version...
But how do you recreate certificates after you edit the androidmanifest.xml with APKTool? I am getting Installation error: INSTALL_PARSE_FAILED_NO_CERTIFICATES
 

hemokan

Member
May 29, 2024
6
0
24
Hiya your app for doing this is outdated! Does anyone know how i can charge targetSDK so i can play old apps on my phone like robocop? I also want to play a conduit remaster hd, but it says its not compatible with my device!

Please help asap!
If i use shizuku can i use the commands above throguh termux?

If no is there a way to use android studio directly on android?
Im using shizuku app for root.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 12

    APK PROVIDED​

    In Android 14, you can`t install apps where TARGET_SDK <= 22.
    1.Enable USB Debigging​
    2.Download platform-tools
    3.adb install --bypass-low-target-sdk-block apk_name.apk
    Update:
    Also you can install via pm.
    PUT YOUR APK IN /data/local/tmp
    su -c pm install --bypass-low-target-sdk-block /data/local/tmp/filename.APK

    I've made a simple app(my coding skills is bad, sorry)
    How to use:
    Install app
    Go to settings and give permission "Install from unkown sources"
    Put path to apk
    If you downloaded it (ex. from Chrome) path should be: "/storage/emulated/0/Download/{your apk name}.apk"
    Click "Install" and give root permission
    Profit!
    3
    It says...

    "Performing Streamed Install
    adb: failed to install dead-space-1.2.1-mod.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]"

    i cant find any solutions, do you have one please?
    2
    Maybe you lost you ABI's. Try to find ARM8 version of app, or redownload it
    2
    OR, you just do it the easy way, (if you're experienced in using APKTool), just edit the AndroidManifest.xml of whichever app you wish to install, and modify the minimum SDK version...
    1
    Nice guide 👍
    Thank you 😊

    --ZG089