diff --git a/halium-install b/halium-install index 6dd67cb..80669ce 100755 --- a/halium-install +++ b/halium-install @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # Copyright (c) 2014 Canonical # @@ -38,6 +38,33 @@ do_shell() adb shell "$@" } +do_chroot() +{ + do_shell "chroot /cache/system $@" +} + +check_busybox() +{ + export device_architecture=$(do_shell "uname -m") + export busybox_exists=$(do_shell "if [ -f /sbin/busybox ]; then echo true; else echo false; fi") + + if [ $busybox_exists = true ]; then + echo 'Using already installed busybox' + else + if [ $device_architecture = x86_64 ]; then + wget https://github.com/meefik/busybox/raw/master/app/src/main/assets/intel/static/bin/busybox + elif [ $device_architecture = "armv7l" ] || [ $device_architecture = "aarch64" ] || [ $device_architecture = "armv8l" ]; then + wget https://github.com/meefik/busybox/raw/master/app/src/main/assets/arm/static/bin/busybox + fi + + adb push busybox /sbin/busybox + do_shell "chmod +x /sbin/busybox" + do_shell "/sbin/busybox --install /sbin/" + + rm busybox + fi +} + convert_android_img() { if file $SYSIMG | grep -v ": Linux rev 1.0 ext4" >/dev/null; then @@ -165,6 +192,7 @@ if ! adb devices | grep -q recovery; then exit 1 fi +check_busybox check_mounts WORKDIR=$(mktemp -d /tmp/halium-install.XXXXX) @@ -190,6 +218,13 @@ do_shell "cd /cache/system && zcat /recovery/$TARBALL | tar xf -" do_shell "[ -e /cache/system/SWAP.swap ] && mv /cache/system/SWAP.swap /data/SWAP.img" echo "[done]" +echo "Generating SSH host keys on the device" +do_chroot "rm /etc/dropbear/dropbear_rsa_host_key" +do_chroot "dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key" + +echo "Changing password needed for root ssh login" +do_chroot passwd root + echo -n "adding android system image to installation ... " convert_android_img ANDROID_DIR="/data"