installApk

本文介绍了一个用于Android系统的shell脚本,该脚本能根据不同条件安装各类应用(APK、BIN、JAR文件)。它详细解释了如何针对特定目录和不同类型的文件进行安装,并提供了特殊应用如LauncherYH_Theme、Phone和SystemUI的具体安装流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!bin/sh	

clear

ANDROID_APPDIR=packages/apps
ANDROID_PROVIDERDIR=packages/providers
YH_APPDIR=vendor/mrvl-mg/generic/apps
MARVELL_APPDIR=vendor/mrvl-mg/generic
INSTALLD_DIR=frameworks/base/cmds/installd
FRAMEWORK_DIR=frameworks

if [ $# -ne 4 ]
then
echo "installApk.sh Mms dir(packages,yh,mrvl,frameworks) outType(apk,bin,jar) g(or f)"
#  $1--apk name
#  $2--src dir
#  $3--out type 
#  $4--platform
else
if [ "$2" =  "packages" ]
then
		FIND_DIR=$ANDROID_APPDIR
elif [ "$2" = "yh" ]
then
		FIND_DIR=$YH_APPDIR
elif [ "$2" = "mrvl" ]
then
		FIND_DIR=$MARVELL_APPDIR
elif [ "$2" = "frameworks" ]
then 
		FIND_DIR=$FRAMEWORK_DIR
elif [ "$2" = "fpackages" ]
then
		FIND_DIR=$FRAMEWORK_DIR/base/packages
elif [ "$2" = "providers" ]
then
		FIND_DIR=$ANDROID_PROVIDERDIR
fi

if [ "$4" = "f" ]
then 
OUT_DIR=out_fineline_im/target/product/fineline/system
else
OUT_DIR=out_gemstone_gxt/target/product/gemstone/system
fi



ls $FIND_DIR | while read line
do

if [ "$line" = "$1" ]
then
		if  [ "$3" = "apk" ]
		then

#packages
				if [ "$1" = "LauncherYH_Theme"  ]
				then
						mmm $FIND_DIR/$1
						adb install -r $OUT_DIR/app/Launcher_theme.apk

				elif [ "$1" = "Phone"  ]
				then	
						OUT_DIR=$OUT_DIR/app
						mmm $FIND_DIR/$1
						ash mount -o remount -rw /dev/block/mtdblock7 /system
						ash rm -r /data/data/com.android.phone
						ash rm -r /data/dalvik-cache/system@app@$1.apk@classes.dex
						ash rm system/app/$1.apk
						ash rm system/app/$1.odex
						adb push $OUT_DIR/$1.apk /system/app/
						ash pm install -r system/app/$1.apk

				elif [ "$1" = "Stk"  ]
				then	
						OUT_DIR=$OUT_DIR/app
						mmm $FIND_DIR/$1
						ash mount -o remount -rw /dev/block/mtdblock7 /system
						ash rm -r /data/data/com.android.phone
						ash rm -r /data/dalvik-cache/system@app@$1.apk@classes.dex
						ash rm system/app/$1.apk
						ash rm system/app/$1.odex
						adb push $OUT_DIR/$1.apk /system/app/


#frameworks/base/packages
				elif [ "$1" = "SystemUI"  ]
				then
						mmm $FIND_DIR/$1
						ash mount -o remount -rw /dev/block/mtdblock7 /system
						ash rm system/app/$1.apk
						ash rm system/app/$1.odex
						ash rm -r /data/dalvik-cache/system@app@$1.apk@classes.dex
						ash rm -r /data/data/com.android.systemui
						adb push $OUT_DIR/app/$1.apk /system/app/

				else
						OUT_DIR=$OUT_DIR/app
						mmm $FIND_DIR/$1
						adb install -r $OUT_DIR/$1.apk
fi
break

elif [ "$3" = "bin" ]
then
	OUTDIR=$OUT_DIR/bin
	mmm $FIND_DIR/$1
	ash mount -o remount -rw /dev/block/mtdblock7 /system
	ash rm system/bin/$1
	adb push $OUTDIR/$1 /system/bin/
#ash reboot
	break

elif [ "$3" = "jar" ]
then
	OUTDIR=$OUT_DIR/framework
	mmm $FIND_DIR/frameworks/base
	adb remount
	if [ "$1" = "frameworks" ]
	then
	ash rm system/framework/framework.jar
	adb push $OUTDIR/framework.jar /system/framework/
	ash reboot
	fi
	break

fi
fi

done	

if [ "$1" = "Phone" -o "$1" = "Stk" -o "$1" = "SystemUI" ]
then
	read -p "Do you want to restart devices after install apk? (y)" restart
	echo "restart $restart"
	
	if [ "$restart" = "y" -o "$restart" = "" ]
	then
		adb reboot
	fi
fi

fi

while true
do 
 sendevent /dev/input/event6 4 4 16
 sendevent /dev/input/event6 1 231 1
 sendevent /dev/input/event6 0 0 0
 sendevent /dev/input/event6 4 4 16
 sendevent /dev/input/event6 1 231 0
 sendevent /dev/input/event6 0 0 0
sleep 15             
 sendevent /dev/input/event6 4 4 18
 sendevent /dev/input/event6 1 102 1
 sendevent /dev/input/event6 0 0 0
 sendevent /dev/input/event6 4 4 18
 sendevent /dev/input/event6 1 102 0
 sendevent /dev/input/event6 0 0 0
sleep 10
done


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值