如何在Android上通过pm命令安装拆分包

  1. 首先需要先调用pm install-create -S [size]创建一个install session 其中[size]是指所有拆分文件的总字节数,不过不加-S [size]貌似也是可以的,命令执行完会返回一个session id 这个session会在下面用到。
    1
    2
    pm install-create -S 28658294
    Success: created install session [1691973442]
  2. 写入拆分包pm install-write -S [size] [session-id] [file-name] [file-path] 如果有多个拆分包需要写入多次
  • [size]单个拆分包文件的字节数
  • [session-id] 调用pm install-create -S [size]所得到的session id
  • [file-name] 拆分包文件名称保持原样就可以了
  • [file-path] 需要写入拆分包文件路径
    1
    2
    3
    pm install-write -S 23728613 1691973442 base.apk /data/local/tmp/com.makemytrip/base.apk
    pm install-write -S 2587864 1691973442 split_config.arm64_v8a.apk /data/local/tmp/com.makemytrip/split_config.arm64_v8a.apk
    pm install-write -S 2341817 1691973442 split_config.hdpi.apk /data/local/tmp/com.makemytrip/split_config.hdpi.apk
  1. 提交安装pm install-commit [session-id]

    1
    pm install-commit 1691973442
  2. 取消安装pm install-abandon [session-id]

    1
    pm install-abandon 1691973442

或者可以使用下面的脚本自动安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/system/bin/sh

# get the total size in byte
total=0
for apk in *.apk
do
o=( $(ls -l $apk) )
let total=$total+${o[3]}
done

echo "pm install-create total size $total"

create=$(pm install-create -S $total)
sid=$(echo $create |grep -E -o '[0-9]+')

echo "pm install-create session id $sid"

for apk in *.apk
do
_ls_out=( $(ls -l $apk) )
echo "write $apk to $sid"
cat $apk | pm install-write -S ${_ls_out[3]} $sid $apk -
done

pm install-commit $sid
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2015-2024 Kaisar
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信