#!/sbin/sh
# Copyright 2013 Koushik Dutta, 2014 Ron Rieve
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# arg 1 is recovery api version, generally 3.
# arg 2 is the pipe fd, to the recovery binary.
# communicate with it using the recovery api.
# arg 3 is the zip file

echo -n -e 'ui_print Installing F-DroidPrivilegedExtension...\n' > /proc/self/fd/$2

FPE_NAME=F-DroidPrivilegedExtension
FPE=${FPE_NAME}.apk
FDROID_NAME=F-Droid
FDROID=${FDROID_NAME}.apk
PERM_DIR="etc/permissions"
PERM=permissions_org.fdroid.fdroid.privileged.xml
ADDOND=80-fdroid.sh
SYSTEM="/system"

mount_system() {
  mount /system

  # Modern devices use /system as root ("/")
  system_as_root=`getprop ro.build.system_root_image`
  if [ "$system_as_root" == "true" ]; then
    SYSTEM="/system/system"
  fi
}

cd /tmp
mkdir fdroid
cd fdroid
unzip -o "$3"

mount_system

rm -rf "${SYSTEM}/app/FDroid"*
rm -rf "${SYSTEM}/priv-app/FDroid"*
rm -rf "${SYSTEM}/app/F-Droid"*
rm -rf "${SYSTEM}/priv-app/F-Droid"*

BUILD_VERSION_SDK="$(grep -F ro.build.version.sdk ${SYSTEM}/build.prop)"
BUILD_VERSION_SDK_INT="${BUILD_VERSION_SDK#*=}"
if [ "${BUILD_VERSION_SDK_INT}" -ge 21 ]
then
  FPE_DIR="${SYSTEM}/priv-app/${FPE_NAME}"
  mkdir ${FPE_DIR}
  chmod 755 ${FPE_DIR}
  FDROIDDIR="${SYSTEM}/app/${FDROID_NAME}"
  mkdir ${FDROIDDIR}
  chmod 755 ${FDROIDDIR}
elif [ "${BUILD_VERSION_SDK_INT}" -ge 19 ]
then
  FPE_DIR="${SYSTEM}/priv-app"
  FDROIDDIR="${SYSTEM}/app"
else
  FPE_DIR="${SYSTEM}/app"
  FDROIDDIR="${SYSTEM}/app"
fi

if [ "${BUILD_VERSION_SDK_INT}" -ge 26 ]
then
	mkdir ${SYSTEM}/${PERM_DIR}
	chmod 755 ${SYSTEM}/${PERM_DIR}
	cp ${PERM} ${SYSTEM}/${PERM_DIR}
	chmod 644 ${SYSTEM}/${PERM_DIR}/${PERM}
fi

cp ${FPE} ${FPE_DIR}
chmod 644 ${FPE_DIR}/${FPE}
echo -n -e 'ui_print done\n' > /proc/self/fd/$2
echo -n -e 'ui_print\n' > /proc/self/fd/$2

echo -n -e 'ui_print Installing F-Droid...\n' > /proc/self/fd/$2
cp ${FDROID} ${FDROIDDIR}
chmod 644 ${FDROIDDIR}/${FDROID}

cp ${ADDOND} ${SYSTEM}/addon.d/

umount /system

echo -n -e 'ui_print done\n' > /proc/self/fd/$2
echo -n -e 'ui_print\n' > /proc/self/fd/$2
