From 4be05c7bd808ef0707456837d0146160246bfef6 Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Thu, 23 Jun 2016 12:28:29 +0200 Subject: [PATCH] Add missing scripts for rootfs creation --- scripts/anbox-init.sh | 59 +++++++++++++++++++++++++++++++++++++++ scripts/create-package.sh | 26 +++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 scripts/anbox-init.sh create mode 100755 scripts/create-package.sh diff --git a/scripts/anbox-init.sh b/scripts/anbox-init.sh new file mode 100644 index 0000000..0ec8138 --- /dev/null +++ b/scripts/anbox-init.sh @@ -0,0 +1,59 @@ +#!/system/bin/sh +# Copyright (C) 2016 Simon Fels +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 3, as published +# by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranties of +# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . + +function prepare_filesystem() { + # These dev files need to be adjusted everytime as they are + # bind mounted into the temporary rootfs + for f in qemu_pipe qemu_trace goldfish_pipe input/* ; do + [ ! -e /dev/$f ] && continue + chown system:system /dev/$f + chmod 0666 /dev/$f + done + + if [ ! -e /.anbox_setup_done ] ; then + echo "Fixing up all permissions ..." + + # Fixup permissions of the android binaries in /system + while read line + do + file=`echo $line | cut -d' ' -f 1` + user=`echo $line | cut -d' ' -f 2` + group=`echo $line | cut -d' ' -f 3` + mode=`echo $line | cut -d' ' -f 4` + # Avoid changing symlinks + if [ ! -h /$file ] ; then + chmod $mode /$file + chown -h $user:$group /$file + fi + done < "/filesystem_config.txt" + + # Additional ones not listed in the config generated from the build + for f in qemu_pipe qemu_trace goldfish_pipe ; do + [ ! -e /dev/$f ] && continue + chown system:system /dev/$f + chmod 0666 /dev/$f + done + + echo "Setup done!" + echo $VERSION > /.anbox_setup_done + fi +} + +prepare_filesystem & +echo "Waiting for filesystem being prepared ..." +wait $! + +echo "Starting real init now ..." +/init diff --git a/scripts/create-package.sh b/scripts/create-package.sh new file mode 100755 index 0000000..4b41db5 --- /dev/null +++ b/scripts/create-package.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +TOPDIR=`pwd` +PRODUCT_NAME=generic_arm64 +OUTDIR=out/target/product/$PRODUCT_NAME + +if [ -d rootfs ] ; then + rm -rf rootfs +fi + +mkdir rootfs +cp -r $OUTDIR/root/* rootfs/ +cp -r $OUTDIR/system/* rootfs/system/ + +mkdir rootfs/cache + +cp filesystem_config.txt rootfs/ +cp anbox-init.sh rootfs/ +chmod +x rootfs/anbox-init.sh + +chmod 755 rootfs/init.* +chmod 755 rootfs/default.prop +chmod 755 rootfs/system/build.prop +chmod +x rootfs/anbox-init.sh + +tar cf rootfs.tar rootfs