From f30dd3d81206fcfcce0404436fa55c997d03924e Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 19 Oct 2013 19:49:20 -0700 Subject: sr: Get a proper shell environment in recovery * Secure ADB support * Toybox applets * mksh * Various other tools Change-Id: I80b0e2aa5eb7142eaa9f157709f4e029077d8dfa --- etc/init.rc | 11 ++++++---- etc/mkshrc | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 etc/mkshrc (limited to 'etc') diff --git a/etc/init.rc b/etc/init.rc index dc18659..ea7c054 100644 --- a/etc/init.rc +++ b/etc/init.rc @@ -84,17 +84,20 @@ service healthd /sbin/healthd -r service recovery /sbin/recovery seclabel u:r:recovery:s0 +service setup_adbd /sbin/setup_adbd + oneshot + seclabel u:r:recovery:s0 + disabled + service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery disabled socket adbd stream 660 system system seclabel u:r:adbd:s0 -# Always start adbd on userdebug and eng builds +# setup_adbd will start adb once it has checked the keys on property:ro.debuggable=1 - write /sys/class/android_usb/android0/enable 1 - start adbd + start setup_adbd -# Restart adbd so it can run as root on property:service.adb.root=1 write /sys/class/android_usb/android0/enable 0 restart adbd diff --git a/etc/mkshrc b/etc/mkshrc new file mode 100644 index 0000000..b2923c6 --- /dev/null +++ b/etc/mkshrc @@ -0,0 +1,70 @@ +# Copyright (c) 2010, 2012, 2013, 2014 +# Thorsten Glaser +# This file is provided under the same terms as mksh. +#- +# Minimal /system/etc/mkshrc for Android +# +# Support: https://launchpad.net/mksh + +: ${HOME:=/} +: ${HOSTNAME:=$(getprop ro.product.device)} +: ${HOSTNAME:=android} +: ${MKSH:=/sbin/sh} +: ${SHELL:=$MKSH} +: ${TERM:=linux} +: ${TMPDIR:=/tmp} +: ${USER:=$(id -un)} +export HOME HOSTNAME MKSH SHELL TERM TMPDIR USER + +if (( USER_ID )); then PS1='$'; else PS1='#'; fi +PS4='[$EPOCHREALTIME] '; PS1='${| + local e=$? + + (( e )) && REPLY+="$e|" + + return $e +}$USER@$HOSTNAME:${PWD:-?} '"$PS1 " + +function hd { + local -Uui16 -Z11 pos=0 + local -Uui16 -Z5 hv=2147483647 + local dasc line i + + cat "$@" | { set +U; if read -arN -1 line; then + typeset -i1 'line[*]' + i=0 + while (( i < ${#line[*]} )); do + hv=${line[i++]} + if (( (pos & 15) == 0 )); then + (( pos )) && print -r -- "$dasc|" + print -n "${pos#16#} " + dasc=' |' + fi + print -n "${hv#16#} " + if (( (hv < 32) || (hv > 126) )); then + dasc+=. + else + dasc+=${line[i-1]#1#} + fi + (( (pos++ & 15) == 7 )) && print -n -- '- ' + done + while (( pos & 15 )); do + print -n ' ' + (( (pos++ & 15) == 7 )) && print -n -- '- ' + done + (( hv == 2147483647 )) || print -r -- "$dasc|" + fi; } +} + +function setenv { + eval export "\"$1\""'="$2"' +} + +for p in ~/bin; do + [[ -d $p/. ]] || continue + [[ :$PATH: = *:$p:* ]] || PATH=$p:$PATH +done + +unset p + +: place customisations above this line -- cgit v1.1