123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #!/sbin/sh
- ZIP=$3
- set_con() {
- $UTILS chcon -h u:object_r:"$1":s0 $2
- $UTILS chcon u:object_r:"$1":s0 $2
- }
- set_perm() {
- $UTILS chmod $1 $2
- }
- set_owner() {
- $UTILS chown $1:$2 $3
- }
- ui_print "*****************"
- ui_print "MindTheGapps installer"
- ui_print "*****************"
- ui_print "Mounting /system"
- if mount /system; then
- ui_print "/system mounted"
- else
- # Try to get the block from /etc/recovery.fstab
- block=`cat /etc/recovery.fstab | cut -d '#' -f 1 | grep /system | grep -o '/dev/[^ ]*' | head -1`
- if [ -n "$block" ] && mount $block /system; then
- ui_print "Could not mount /system! Aborting..."
- exit 1
- else
- ui_print "/system mounted"
- fi
- fi
- if [ -f /system/bin/toybox ]; then
- UTILS=/system/bin/toybox
- else
- ui_print "Could not find /system/bin/toybox! Aborting..."
- exit 1
- fi
- ui_print "Extracting files"
- cd /tmp
- mkdir system
- cd system
- unzip -o "$ZIP"
- DIRS="addon.d app priv-app framework etc lib"
- if [ -d /system/lib64 ]; then
- DIRS="$DIRS lib64"
- fi
- for dirs in $DIRS; do
- set_perm 0755 $dir
- for d in `$UTILS find ./$dir -type d`; do
- set_perm 0755 $d
- set_owner system system $d
- done
- for f in `$UTILS find ./$dir -type f`; do
- type=$(echo "$f" | sed 's/.*\.//')
- if [ "$type" == "sh" ] || [ "$type" == "$f" ]; then
- set_perm 0755 $f
- else
- set_perm 0644 $f
- fi
- set_owner system system $f
- set_con system_file $f
- done
- done
- ui_print "Copying files"
- $UTILS cp --preserve=a -r ./* /system/
- ui_print "Cleaning up files"
- cd ../
- $UTILS rm -rf system/
- ui_print "Unmounting /system"
- umount /system
- ui_print "Done!"
- exit 0
|