xapk_installer.sh - исходный текст
#!/system/bin/sh
XAPK_DIR=/system/oranth/xapk
WORK_DIR=/data/local/tmp/xapk
xapk_install()
{
if [ -e $WORK_DIR/Android/obb ]; then
echo "install obb data ..."
mv $WORK_DIR/Android/obb/* /data/media/0/Android/obb/
fi
filelist=`ls $WORK_DIR/*.apk`
total=0
for apk in $filelist
do
o=( $(ls -l $apk) )
let total=$total+${o[4]}
done
echo "install apk or split apks ..."
#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 $filelist
do
_ls_out=( $(ls -l $apk) )
#echo "write $apk to $sid"
cat $apk | pm install-write -S ${_ls_out[4]} $sid $(basename $apk) - > /dev/null
#pm install-write -S ${_ls_out[4]} $sid $(basename $apk) $apk > /dev/null
done
pm install-commit $sid
}
mkdir -p $WORK_DIR
for xapk in `ls $XAPK_DIR/*.xapk`
do
rm -rf $WORK_DIR/*
echo "
"
echo "unzip file: $xapk ..."
unzip -d $WORK_DIR/ $xapk > /dev/null
echo "start to install $xapk ..."
xapk_install
echo "done!"
echo "
"
done
rm -rf $WORK_DIR
echo "install xapk done!"