From baebd293c5e8cc41ebcd11464868e73c0a8044db Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Sat, 7 Jan 2017 19:18:29 +0300 Subject: First commit --- mods/mod_kernel/bin/busybox | Bin 0 -> 608480 bytes mods/mod_kernel/bin/chroot | Bin 0 -> 28 bytes mods/mod_kernel/bin/cp | Bin 0 -> 28 bytes mods/mod_kernel/bin/dd | Bin 0 -> 28 bytes mods/mod_kernel/bin/gzip | Bin 0 -> 28 bytes mods/mod_kernel/bin/ls | Bin 0 -> 28 bytes mods/mod_kernel/bin/mkdir | Bin 0 -> 28 bytes mods/mod_kernel/bin/mv | Bin 0 -> 28 bytes mods/mod_kernel/bin/poweroff | Bin 0 -> 28 bytes mods/mod_kernel/bin/rm | Bin 0 -> 28 bytes mods/mod_kernel/hakchi/init | 36 +++++++++++++ mods/mod_kernel/sbin/init | 39 ++++++++++++++ mods/mod_transfer/bin/busybox | Bin 0 -> 608480 bytes mods/mod_transfer/bin/chroot | Bin 0 -> 28 bytes mods/mod_transfer/bin/cp | Bin 0 -> 28 bytes mods/mod_transfer/bin/dd | Bin 0 -> 28 bytes mods/mod_transfer/bin/gzip | Bin 0 -> 28 bytes mods/mod_transfer/bin/ls | Bin 0 -> 28 bytes mods/mod_transfer/bin/mkdir | Bin 0 -> 28 bytes mods/mod_transfer/bin/mv | Bin 0 -> 28 bytes mods/mod_transfer/bin/poweroff | Bin 0 -> 28 bytes mods/mod_transfer/bin/rm | Bin 0 -> 28 bytes mods/mod_transfer/hakchi/init | 79 ++++++++++++++++++++++++++++ mods/mod_transfer/hakchi/rootfs/etc/inittab | 16 ++++++ mods/mod_transfer/hakchi/rootfs/etc/preinit | 8 +++ mods/mod_transfer/hakchi/rootfs/etc/profile | 35 ++++++++++++ mods/mod_transfer/sbin/init | 39 ++++++++++++++ 27 files changed, 252 insertions(+) create mode 100644 mods/mod_kernel/bin/busybox create mode 100644 mods/mod_kernel/bin/chroot create mode 100644 mods/mod_kernel/bin/cp create mode 100644 mods/mod_kernel/bin/dd create mode 100644 mods/mod_kernel/bin/gzip create mode 100644 mods/mod_kernel/bin/ls create mode 100644 mods/mod_kernel/bin/mkdir create mode 100644 mods/mod_kernel/bin/mv create mode 100644 mods/mod_kernel/bin/poweroff create mode 100644 mods/mod_kernel/bin/rm create mode 100644 mods/mod_kernel/hakchi/init create mode 100644 mods/mod_kernel/sbin/init create mode 100644 mods/mod_transfer/bin/busybox create mode 100644 mods/mod_transfer/bin/chroot create mode 100644 mods/mod_transfer/bin/cp create mode 100644 mods/mod_transfer/bin/dd create mode 100644 mods/mod_transfer/bin/gzip create mode 100644 mods/mod_transfer/bin/ls create mode 100644 mods/mod_transfer/bin/mkdir create mode 100644 mods/mod_transfer/bin/mv create mode 100644 mods/mod_transfer/bin/poweroff create mode 100644 mods/mod_transfer/bin/rm create mode 100644 mods/mod_transfer/hakchi/init create mode 100644 mods/mod_transfer/hakchi/rootfs/etc/inittab create mode 100644 mods/mod_transfer/hakchi/rootfs/etc/preinit create mode 100644 mods/mod_transfer/hakchi/rootfs/etc/profile create mode 100644 mods/mod_transfer/sbin/init (limited to 'mods') diff --git a/mods/mod_kernel/bin/busybox b/mods/mod_kernel/bin/busybox new file mode 100644 index 00000000..e71f5823 Binary files /dev/null and b/mods/mod_kernel/bin/busybox differ diff --git a/mods/mod_kernel/bin/chroot b/mods/mod_kernel/bin/chroot new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/chroot differ diff --git a/mods/mod_kernel/bin/cp b/mods/mod_kernel/bin/cp new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/cp differ diff --git a/mods/mod_kernel/bin/dd b/mods/mod_kernel/bin/dd new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/dd differ diff --git a/mods/mod_kernel/bin/gzip b/mods/mod_kernel/bin/gzip new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/gzip differ diff --git a/mods/mod_kernel/bin/ls b/mods/mod_kernel/bin/ls new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/ls differ diff --git a/mods/mod_kernel/bin/mkdir b/mods/mod_kernel/bin/mkdir new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/mkdir differ diff --git a/mods/mod_kernel/bin/mv b/mods/mod_kernel/bin/mv new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/mv differ diff --git a/mods/mod_kernel/bin/poweroff b/mods/mod_kernel/bin/poweroff new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/poweroff differ diff --git a/mods/mod_kernel/bin/rm b/mods/mod_kernel/bin/rm new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_kernel/bin/rm differ diff --git a/mods/mod_kernel/hakchi/init b/mods/mod_kernel/hakchi/init new file mode 100644 index 00000000..4389a71e --- /dev/null +++ b/mods/mod_kernel/hakchi/init @@ -0,0 +1,36 @@ +init(){ +echo +modname=hakchi +mountpoint=/newroot +installdir=$mountpoint/var/lib/$modname +rootfs=$installdir/rootfs +config=$installdir/config + +echo Starting $modname... + +mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs $mountpoint/var +mkdir $mountpoint/var/lib +mount -o defaults,nosuid,nodev,noatime /dev/nandc $mountpoint/var/lib + +if [ -f $config ]; then + echo $modname config found + . $config +else + echo $modname config not found +fi + +if [ "$hakchi_enabled" == "y" ]; then + echo Loading sandbox shell + . $rootfs/etc/preinit + preinit + return $? +else + echo Loading stock shell + umount $mountpoint/var/lib + umount $mountpoint/var + return 0 +fi + +} + +init diff --git a/mods/mod_kernel/sbin/init b/mods/mod_kernel/sbin/init new file mode 100644 index 00000000..52cc5fa1 --- /dev/null +++ b/mods/mod_kernel/sbin/init @@ -0,0 +1,39 @@ +#!/bin/sh + +/bin/mount -t proc proc /proc +/bin/mount -t sysfs sys /sys + +for i in $(cat /proc/cmdline); do + if [ "$i" = "ro" ] ; then + READONLY="y" + elif [ "${i#root=}" != "$i" ] ; then + ROOTFS="${i#root=}" + elif [ "$i" = "decrypt" ] ; then + DECRYPT="y" + fi +done + +MOUNT_OPTS="noatime" +if [ "${DECRYPT}" = "y" ]; then + if [ "${READONLY}" == "y" ]; then + READONLY="--readonly" + else + READONLY="" + fi + + /sbin/cryptsetup open ${ROOTFS} root-crypt ${READONLY} --type plain --cipher aes-xts-plain --key-file /key-file + /bin/mount -o "${MOUNT_OPTS}" /dev/mapper/root-crypt /newroot +else + if [ "${READONLY}" == "y" ]; then + MOUNT_OPTS="ro,${MOUNT_OPTS}" + fi + + /bin/mount -o "${MOUNT_OPTS}" ${ROOTFS} /newroot +fi + +. /hakchi/init + +/bin/mount --move /dev /newroot/dev +/bin/umount /proc +/bin/umount /sys +exec /sbin/switch_root /newroot /sbin/init diff --git a/mods/mod_transfer/bin/busybox b/mods/mod_transfer/bin/busybox new file mode 100644 index 00000000..e71f5823 Binary files /dev/null and b/mods/mod_transfer/bin/busybox differ diff --git a/mods/mod_transfer/bin/chroot b/mods/mod_transfer/bin/chroot new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/chroot differ diff --git a/mods/mod_transfer/bin/cp b/mods/mod_transfer/bin/cp new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/cp differ diff --git a/mods/mod_transfer/bin/dd b/mods/mod_transfer/bin/dd new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/dd differ diff --git a/mods/mod_transfer/bin/gzip b/mods/mod_transfer/bin/gzip new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/gzip differ diff --git a/mods/mod_transfer/bin/ls b/mods/mod_transfer/bin/ls new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/ls differ diff --git a/mods/mod_transfer/bin/mkdir b/mods/mod_transfer/bin/mkdir new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/mkdir differ diff --git a/mods/mod_transfer/bin/mv b/mods/mod_transfer/bin/mv new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/mv differ diff --git a/mods/mod_transfer/bin/poweroff b/mods/mod_transfer/bin/poweroff new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/poweroff differ diff --git a/mods/mod_transfer/bin/rm b/mods/mod_transfer/bin/rm new file mode 100644 index 00000000..74ec3196 Binary files /dev/null and b/mods/mod_transfer/bin/rm differ diff --git a/mods/mod_transfer/hakchi/init b/mods/mod_transfer/hakchi/init new file mode 100644 index 00000000..d725906e --- /dev/null +++ b/mods/mod_transfer/hakchi/init @@ -0,0 +1,79 @@ +init(){ +echo + +modname=hakchi +mountpoint=/newroot +installdir=$mountpoint/var/lib/$modname +rootfs=$installdir/rootfs +config=$installdir/config + +echo Starting $modname... + +mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs $mountpoint/var +mkdir $mountpoint/var/lib +mount -o defaults,nosuid,nodev,noatime /dev/nandc $mountpoint/var/lib + +if [ ! -f $installdir/installed ]; then + echo Installing $modname... + + rm -rf $installdir + mkdir -p $rootfs/usr/share/games/nes + + echo 1>$installdir/installed + cp -a $mountpoint/bin $rootfs/ + cp -a $mountpoint/etc $rootfs/ + + cp -a /$modname/rootfs/* $rootfs/ + cp -a /bin/busybox $rootfs/bin/ + cp -a /sbin/cryptsetup $rootfs/bin/ + + mkdir -p $rootfs/usr/share/games/nes/ + cp -a $mountpoint/usr/share/games/nes/kachikachi $rootfs/usr/share/games/nes/ + + chroot $rootfs /bin/busybox --install -s /bin/ +else + echo $modname already installed +fi + +if [ -f $modname/config ]; then + echo Updating config... + mkdir -p $installdir + cp -f /$modname/config $config + echo New config: + cat $config +fi +if [ -f $config ]; then + echo $modname config found + . $config +else + echo $modname config not found +fi + +if [ -d /transfer ]; then + echo Transferring data... + cp -a /transfer/* $installdir/ +fi + +if [ "$hakchi_remove_games" == "y" ]; then + echo Removing all games... + rm -rf $rootfs/usr/share/games/nes/kachikachi/CLV-* +fi + +if [ "$hakchi_original_games" == "y" ]; then + echo Transfering original games... + cp -a $mountpoint/usr/share/games/nes/kachikachi $rootfs/usr/share/games/nes/ +fi + +if [ -d /games ]; then + echo Transferring new games... + cp -a /games/* $rootfs/usr/share/games/nes/kachikachi +fi + +echo Shutting down... +umount $mountpoint/var/lib +umount $mountpoint/var +poweroff -f +return 0 +} + +init diff --git a/mods/mod_transfer/hakchi/rootfs/etc/inittab b/mods/mod_transfer/hakchi/rootfs/etc/inittab new file mode 100644 index 00000000..8bba3546 --- /dev/null +++ b/mods/mod_transfer/hakchi/rootfs/etc/inittab @@ -0,0 +1,16 @@ +null::sysinit:/bin/mount -t proc proc /proc +null::sysinit:/bin/mkdir -p /dev/pts /dev/shm +null::sysinit:/bin/mount -a +null::sysinit:/bin/mkdir -p /var/cache /var/lock /var/log /var/spool +null::sysinit:/bin/ln -s /tmp /var/tmp +null::sysinit:/bin/ln -s /run /var/run + +null::sysinit:/bin/mkdir -p /var/cache/clover/reed-libs/tmp /var/lib/clover/profiles/0/home-menu /var/lib/clover/config/reed-libs + +null::sysinit:/etc/init.d/rcS + +null::respawn:/sbin/getty 115200 ttyS0 + +null::ctrlaltdel:/sbin/reboot +null::shutdown:/etc/init.d/rcK +null::shutdown:/bin/umount -a -r diff --git a/mods/mod_transfer/hakchi/rootfs/etc/preinit b/mods/mod_transfer/hakchi/rootfs/etc/preinit new file mode 100644 index 00000000..f908ebc8 --- /dev/null +++ b/mods/mod_transfer/hakchi/rootfs/etc/preinit @@ -0,0 +1,8 @@ +preinit(){ + +mount -o bind $rootfs/bin $mountpoint/bin +mount -o bind $rootfs/etc $mountpoint/etc +mount -o bind $rootfs/usr/share/games/nes/kachikachi $mountpoint/usr/share/games/nes/kachikachi + +return 0 +} diff --git a/mods/mod_transfer/hakchi/rootfs/etc/profile b/mods/mod_transfer/hakchi/rootfs/etc/profile new file mode 100644 index 00000000..b7197933 --- /dev/null +++ b/mods/mod_transfer/hakchi/rootfs/etc/profile @@ -0,0 +1,35 @@ +# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) +# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). + +PATH="/usr/local/bin:/usr/bin:/bin" +EDITOR="vi" # needed for packages like cron, git-commit +test -z "$TERM" && TERM="vt100" # Basic terminal capab. For screen etc. + +if [ "$HOME" = "/root" ]; then + PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin +fi +if [ "$PS1" ]; then +# works for bash and ash (no other shells known to be in use here) + PS1='\u@\h:\w\$ ' +fi + +if [ -d /etc/profile.d ]; then + for i in /etc/profile.d/*.sh ; do + if [ -f $i -a -r $i ]; then + . $i + fi + done + unset i +fi + +if [ -x /usr/bin/resize ] && termpath="`tty`"; then + # Make sure we are on a serial console (i.e. the device used starts with /dev/tty), + # otherwise we confuse e.g. the eclipse launcher which tries do use ssh + case "$termpath" in + /dev/tty*) resize >/dev/null + esac +fi + +export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM + +umask 022 diff --git a/mods/mod_transfer/sbin/init b/mods/mod_transfer/sbin/init new file mode 100644 index 00000000..52cc5fa1 --- /dev/null +++ b/mods/mod_transfer/sbin/init @@ -0,0 +1,39 @@ +#!/bin/sh + +/bin/mount -t proc proc /proc +/bin/mount -t sysfs sys /sys + +for i in $(cat /proc/cmdline); do + if [ "$i" = "ro" ] ; then + READONLY="y" + elif [ "${i#root=}" != "$i" ] ; then + ROOTFS="${i#root=}" + elif [ "$i" = "decrypt" ] ; then + DECRYPT="y" + fi +done + +MOUNT_OPTS="noatime" +if [ "${DECRYPT}" = "y" ]; then + if [ "${READONLY}" == "y" ]; then + READONLY="--readonly" + else + READONLY="" + fi + + /sbin/cryptsetup open ${ROOTFS} root-crypt ${READONLY} --type plain --cipher aes-xts-plain --key-file /key-file + /bin/mount -o "${MOUNT_OPTS}" /dev/mapper/root-crypt /newroot +else + if [ "${READONLY}" == "y" ]; then + MOUNT_OPTS="ro,${MOUNT_OPTS}" + fi + + /bin/mount -o "${MOUNT_OPTS}" ${ROOTFS} /newroot +fi + +. /hakchi/init + +/bin/mount --move /dev /newroot/dev +/bin/umount /proc +/bin/umount /sys +exec /sbin/switch_root /newroot /sbin/init -- cgit v1.2.3