PM 新的options
install-create [-lrtsfdg] [-i PACKAGE] [--user USER_ID|all|current]
[-p INHERIT_PACKAGE] [--install-location 0/1/2]
[--install-reason 0/1/2/3/4] [--originating-uri URI]
[--referrer URI] [--abi ABI_NAME] [--force-sdk]
[--preload] [--instantapp] [--full] [--dont-kill]
[--force-uuid internal|UUID] [--pkg PACKAGE] [--apex] [-S BYTES]
[--multi-package] [--staged]
Like "install", but starts an install session. Use "install-write"
to push data into the session, and "install-commit" to finish.
这回我们来看staged ,好像已经看过了。
那看multi-package,好像也看过了。
那… 一起看吧!!
命令行实验开始:
generic_x86:/sdcard $ ls -l one.apk two.apk three.apk
-rw-rw---- 1 root sdcard_rw 1856359 2020-07-01 11:44 one.apk
-rw-rw---- 1 root sdcard_rw 1856371 2020-07-01 11:32 three.apk
-rw-rw---- 1 root sdcard_rw 1856355 2020-07-01 11:30 two.apk
generic_x86:/sdcard $ pm install-create -S 5569085 --multi-package --staged
Success: created install session [322141460]
generic_x86:/sdcard $ pm install-create -S 1856359 --staged
Success: created install session [1372996048]
generic_x86:/sdcard $ cat one.apk | pm install-write -S 1856359 1372996048 -
Success: streamed 1856359 bytes
generic_x86:/sdcard $ pm install-create -S 1856355 --staged
Success: created install session [1823379367]
generic_x86:/sdcard $ cat two.apk | pm install-write -S 1856355 1823379367 -
Success: streamed 1856355 bytes
generic_x86:/sdcard $ pm install-create -S 1856371 --staged
Success: created install session [594529723]
generic_x86:/sdcard $ cat three.apk | pm install-write -S 1856371 594529723 -
Success: streamed 1856371 bytes
generic_x86:/sdcard $ pm install-add-session 322141460 1372996048 1823379367 594529723
Success
generic_x86:/sdcard $ pm install-commit 322141460
Success
generic_x86:/sdcard $ reboot
看明白了吗,staged和mulit-package一起上。
假装非常非常惊讶:还有这种操作,可以几个包一起暂存,然后下载启动的时候一起安装,然后还是原子性的。