#!/bin/sh

if [ -d '/opt/lnxall_app/bin' ] ; then
	export PATH=/opt/lnxall_app/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin
else
	export PATH=/lib/dyiot/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin
fi

BO_GWSN="$1"
THIS_SCRIPT="$(readlink -f $0)"

check_gwsn() {
	local GWSN="$(factory get 2>/dev/null | awk -F= '/SN=/{print $2}')"
	[ -n "${GWSN}" ] && BO_GWSN="${GWSN}"
	return 0
}

check_md5sum() {
	if [ ! -f "$1" ] ; then
		echo "Error, file not found: $1"
		return 1
	fi

	local md5=$(md5sum "$1" | awk '{print $1}')
	if [ "${md5}" != "$2" ] ; then
		echo "Error, invalid MD5 for '$1'" 
		echo "Expected: $2, got ${md5}"
		return 2
	fi
	return 0
}

is_rk3568() {
	if [ "$(uname -m)" != "aarch64" ] ; then
		echo "Error, not arm64 device."
		exit 1
	fi

	if [ ! -d /home/linaro ] ; then
		echo "Error, directory not found: /home/linaro"
		exit 2
	fi
	return 0
}

electron_upgrade() {
	local sys="$(cat /etc/os-release | grep 'debian')"
	if [ -z "${sys}" ] ; then
		echo "Error, system not debian."
		exit 1
	fi

	local ver="$(uname -r | grep -e 4.19)"
	if [ -z "${ver}" ] ; then
		echo "Error, version not 4.19."
		exit 2
	fi

	check_md5sum /usr/bin/start_browser.sh '8ce40a50768833ac3a74a6f1ac2ab2a5'
	if [ $? -eq 0 ] ; then
		echo "INFO: already upgraded: ${BO_GWSN}"
		exit 0
	fi

	cd /tmp
	local line_no=$(cat -n "${THIS_SCRIPT}" | grep -a -E -e '#\s+RAW_DATA_BEGIN' | awk '{print $1}')
	if [ -z "${line_no}" ] ; then
		echo "Error, failed to get raw data line NO. => ${BO_GWSN}"
		exit 3
	fi

	line_no=$((line_no + 1))
	tail -n "+${line_no}" "${THIS_SCRIPT}" | bzip2 -d -c | tar -x -f -
	if [ $? -ne 0 ] ; then
		rm -rf addon
		echo "Error, failed to extract files."
		exit 4
	fi

	cd addon
	if [ $? -ne 0 ] ; then
		rm -rf addon
		echo "Error, failed to go to directory."
		exit 5
	fi

	if [ ! -d /home/linaro/.config/autostart ] ; then
		mkdir -p /home/linaro/.config/autostart
	fi
	mv -v -f lnxall_ems.desktop /home/linaro/.config/autostart/lnxall_ems.desktop
	mv -v -f forceroot /usr/local/forceroot
	mv -v -f startlxde /usr/bin/startlxde
	mv -v -f start_browser.sh /usr/bin/start_browser.sh
	if [ -f /etc/xdg/autostart/blueman.desktop  ] ; then
		rm -r -v /etc/xdg/autostart/blueman.desktop
	fi

	chown -R linaro:linaro /home/linaro/.config

	chown root:root /usr/local/forceroot
	chmod 755 /usr/local/forceroot ; chmod u+s /usr/local/forceroot

	chown root:root /usr/bin/startlxde /usr/bin/start_browser.sh
	chmod 755 /usr/bin/startlxde /usr/bin/start_browser.sh

	echo "Electron startup upgraded for ${BO_GWSN}"
	return 0
}

if [ ! -f "${THIS_SCRIPT}" ] ; then
	echo "Error, THIS SCRIPT not found: ${BO_GWSN}"
	exit 6
fi

check_gwsn
if is_rk3568 ; then
	electron_upgrade
	exit $?
fi
exit 0
#  RAW_DATA_BEGIN #####################
BZh91AY&SYޒC 
nqG}Yo_zݫ{-^[:v9nۺ]LuʼӛMSj1L)OD6	Li4&ѣA# 4ƍFFM=F@4ihS! i2iOhOQfSOS@=@4  Phh P        	6ST=ڞBzz4򞧨zG  C@   h    =@4"DFzSi?JyA 4m@4I@4   h h      h  d4@@h2 4h  44 d  4"F#LLmF@z@@ 4 h@    4    44Rne!6d$Ya
EXD=@zb	dM*;.$gla#Iyгu@ ]Yy,381G(l\vQJ	ڳ5Ov2EJ[1AU1ZKQ}WjE~?Fb*	쾹]lY[Pe1$8NWG}?	v&AgQ=6rel)3)V(@78YMD}ϝLrefK2)t(D%Nn FOG`(`
&m6HlB/7ܮ&#NB"?B,yufUvl4@!!z$rAPCqA1
`1cql3/+t(@S.IeFs꺸IL״(mQJM؊2t]x6E'@ XkT:rPΕRv,#A ́Dq9WmPiDa-^FV^ٛ\%f nּ@/{jˇ&0٫;ʄ6,ja&p6[8U)M#/,b4#vfɆ?IŲ@0J"#!2KFfb6:5eF%"CmK0AzىDVTB2JJl%LW+NT%uP;6aB=D)B/Hy+.i6,ෲtUٝ3#bp{$I1VLY?<HSJh`-go7&\s#Z1?'hEhʩ١D\Eti$?fĢI̲X98BiO*oșLp_Ͷ)6Bڼ#b8 Hh 4D]mmTs<?RPᗱyY,ĮA).e%x3-^{iT>LvAst'W7(<GO81X!e:VF³kmc4^,^L&uUW #Iи:wtwh" F})qyj.	c~eecRRKU'[MQ$^yAӚ#ZJņ;1{WB%52Ƀn<D+%9|&ܑob	8P![yoY((@1-`,OUt{sw[lF@h&Ȼ`F[nK5|%6mre1W1jGL-<[J!!,DiEjv@^Й@3ۍ5h+Z iXIԷu$ + 8CZ_y'os^F<lBSUB-\7BC8ghprs#(/f;4=ԩI, / j#>iYc}m=ƨ^_Yۘ/DmO}k84+S]0Epd&cЃ&b#L [M֬=,!ESm(u;n[9U0x c{ cs@|lǧw,0GMFzQų56-NB@ BLA@ J%O'/
X˅SZ8Yx5[t/z~ir` FX"r70J$V$6t@퉮vEhަ^D(t¢
PM X1$mo"EdqKT4&ݳoٞ&ʹddX ~0ƕxq%.L%	+iUfc{ Wp s06K705m@ک]Bcyp	C?Ljzj3puP2v$a6
WhhVY88a:䖂{d4:Ʉ	SxT:͍0n&QO0ۯ̃7* GoȬ.-3e%$Vg-kLEZ3'|1=4IA=D:̲62xBGOhQ1z%Ax&B	/%*F!}GX+ HzYx[Q 8lX ddu1I`5 `!Zϊl"Rq H#@8XZrVQ$M\2MӴ	hbI`f`YQ\)X9ETWe	֡GBJYwfj8sLPȊ.P1Y@9n*EW F2`XBU#5NS@F#X&$.dpކp9jZ$l =)_isJD
/X(2+ -,PM6DVc\~Yp.{`oS(t#H4y	5Ү1l &<"iEف'&{prc+l29;%* 00hȥ4YP*f#NWv7/
heFLXR4]NOY4Y$[xWO3Di̕r*HJN3ej3Qَ@j
2A]6iEmFcni22*T_TrdVHWju3TXk5+^DL\R4"isB y!}	X0TIM^ÜDA!$j-h曻 TNZW.p~wH%`!Q5+X!HUnW@<Mtnoq@h312H܉wuXZA|}Ϫ=YDK; p<E(`i^=GPuZ> 6B(ksf֋Y幻t6k$.bW:"hcD=xJIê[6ٸDU)܅j{_dzTYwSB8>]Q[G
`"Ƕ0l@
M"H#C'>AnQm\pO1w=[d[تv$̿ETAL
Ó4LB[lgx{`Xcj	U7#jއh@UxjKuhB&;K`>7w$S	$?P