- FIRESTARTER APK 2.7.2 NON ROOT LAUNCHER APK
- FIRESTARTER APK 2.7.2 NON ROOT LAUNCHER INSTALL
- FIRESTARTER APK 2.7.2 NON ROOT LAUNCHER FOR ANDROID
The entire command is deployed with a " " in the middle to launchCommand run after installCommand String launchCommand = "(sleep 8 am start -n co.getpresso.Presso/.activities.LaunchActivity " + launchCommandIntentArguments + ")&" Start a background thread to wait for 8 seconds before reopening the app's LaunchActivity, and pass necessary arguments String launchCommandIntentArguments = "-es OTA true -es messageId " + () In LaunchActivity onCreate(), you can get this data by running -> if (getIntent().getStringExtra("OTA").equals("true")) Data to send to the LaunchActivity to the app knows it got updated and performs necessary functions to notify backend
FIRESTARTER APK 2.7.2 NON ROOT LAUNCHER INSTALL
String installCommand = "cat " + file.getAbsolutePath() + "| pm install -d -t -S " + file.length() Perform silent installation command, all flags are necessary for some reason, only this works reliably post Android 10 Here is a medium article with the magic is running this command with root access: process = Runtime.getRuntime().exec("su") ĭataOutputStream dataOutputStream = new DataOutputStream(out) ĭataOutputStream.writeBytes("chmod 777 " + file.getPath() + "\n") It 100% works on Samsung Galaxy Tab 10.1 running Android 10.
FIRESTARTER APK 2.7.2 NON ROOT LAUNCHER FOR ANDROID
Thanks for the answers! I looked everywhere else as well to get a whole setup for OTA to work for Android 10 and so on. Why does it need the file size as a parameter ? - No idea, but if I remove it, it won't work.This is needed only from Android P, right? - so far seems so.
FIRESTARTER APK 2.7.2 NON ROOT LAUNCHER APK
Will this support any APK file, even large ones? - seems it succeeds in doing it for an APK that takes 433MB, so I think it's safe to use for all sizes.Does this workaround avoid the moving/copying of the APK into storage, and without affecting the original file ? - seems it does.Thing is, now I have some other questions about it : All I needed to change in the code of installing an APK file is as such: val length = File(fullPathToApkFile ).length()Ĭommands.add("cat $fullPathToApkFile | pm install -S $length") While I think this is incorrect that they don't support installing of APK files from random paths (always worked before), the workaround does seem to work. They either need to be installed directly from the host using 'adb install' or you have to stream the contents to install - $ cat foo.apk | pm install -S APK_SIZE We don't support installation of APKs from random directories on the device. It's still a bit dangerous, but better than copying files.ĮDIT: Google has shown me a nice workaround for this ( here) : Recently, not sure from which Android version (issue exists on Android P beta, at least), the above method fails, showing me this message: avc: denied $fullPathToApkFile") So far, I was able to install APK files using root (within the app), via this code: pm install -t -f fullPathToApkFileĪnd if I want to (try to) install to sd-card : pm install -t -s fullPathToApkFile