Aefyr / SAI

Android split APKs installer
GNU General Public License v3.0
2.48k stars 251 forks source link

Add an allow downgrade option when using root/Shizuku mode #190

Closed JohnRTitor closed 3 years ago

JohnRTitor commented 3 years ago

According to http://adbcommand.com/adbshell/pm pm commands can use -d to allow downgrade when installing via ADB. Since Shizuku mode uses pretty much ADB, could a force downgrade option be added to SAI where we can downgrade apps without uninstalling them? I think root mode can also use this.

Aefyr commented 3 years ago

I don't think downgrading apps is a good idea, but you can set your own create session command for shell-based installers in debug settings which you can access by tapping SAI logo on about screen 3+ times and then long-clicking it. The default command is pm install-create -r --install-location <0 = auto, 1 = internal only, 2 = prefer external> -i <Installer package, SAI's package name is used>

JohnRTitor commented 3 years ago

I don't think downgrading apps is a good idea, but you can set your own create session command for shell-based installers in debug settings which you can access by tapping SAI logo on about screen 3+ times and then long-clicking it. The default command is pm install-create -r --install-location <0 = auto, 1 = internal only, 2 = prefer external> -i <Installer package, SAI's package name is used>

Woah, cool. It's working. I tried -g too, and it works as expected. And I usually "downgrade" an app to test something. You could just add a toggle for developers/advanced users. I think grant all permissions option (-g) would be especially helpful for testing apps when your app uses a lot of permissions and you don't want to grant each permission one by one. Anyway, thanks for the tip, it's your app, you choose what to do with it/what would best serve the users. I really appreciate this tool tho, and thank you for the workaround.

JohnRTitor commented 3 years ago

So I was playing with SAI. I used pm install-create -r --install-location 0 -i com.android.vending and tried to install an app, but on SAI the status is "installing" infinitely. The app got installed successfully and I saw the installer was "Google Play Store". But still on SAI, the status of the app is installing. IMG_20210205_224011

Aefyr commented 3 years ago

I used pm install-create -r --install-location 0 -i com.android.vending and tried to install an app, but on SAI the status is "installing" infinitely.

Shell-based installers rely on package installer being SAI to detect an installation being completed

Aefyr commented 3 years ago

Anyway, no downgrade as a dedicated setting

JohnRTitor commented 3 years ago

I used pm install-create -r --install-location 0 -i com.android.vending and tried to install an app, but on SAI the status is "installing" infinitely.

Shell-based installers rely on package installer being SAI to detect an installation being completed

Do you mean that android is not sending current installation session info to SAI? If yes, would android.permission.READ_INSTALL_SESSIONS be of any help?

Aefyr commented 3 years ago

Do you mean that android is not sending current installation session info to SAI? If yes, would android.permission.READ_INSTALL_SESSIONS be of any help?

Yes. Thanks for the suggestion, I've tried it but sessions returned by PackageInstaller never seem to have the app package name set

Nowaker commented 2 months ago

I don't think downgrading apps is a good idea

Any chances here on this opinion, @Aefyr? One could say, "I don't think installing manually downloaded APKs is a good idea", and it would be more even more correct, but the purpose of this application is to return the freedom of installing what we want, and allowing to downgrade an APK should be supported...