#!/bin/sh -e TIZEN_SDK_INSTALL_PATH="`echo $INSTALLED_PATH`" OLD_SHMMAXSIZE=`sysctl -n kern.sysv.shmmax` SYSCTL_FILE=sysctl.conf COCOASUDO_PATH=$TIZEN_SDK_INSTALL_PATH/tools/emulator/bin TIZEN_BIN_PATH=$TIZEN_SDK_INSTALL_PATH/platforms/tizen-3.0/common/emulator/bin TIZEN_PLATFORM_ETC_PATH=$TIZEN_SDK_INSTALL_PATH/platforms/tizen-3.0/common/emulator/etc TIZEN_TOOL_ETC_PATH=$TIZEN_SDK_INSTALL_PATH/tools/emulator/etc TMP_FILE=emulator-install.sh NEW_SHMMAXSIZE=83886080 if [ -z "$TIZEN_SDK_INSTALL_PATH" ] then echo "There is no TIZEN_SDK_PATH ENV" >> /tmp/emulator.log # exit 2; fi function remove_tmp_file { if [ -e "$TMP_FILE" ] then echo "delete $TMP_FILE" rm -f "$TMP_FILE" fi } function generate_tap_kext_cmd { echo "cp -pR \"${TIZEN_PLATFORM_ETC_PATH}/emulator-ifup.sh\" /etc/" >> "$TMP_FILE" echo "mkdir -p /Library/Extensions" >> "$TMP_FILE" echo "cp -pR \"${TIZEN_TOOL_ETC_PATH}/tap.kext\" /Library/Extensions" >> "$TMP_FILE" echo "rm -rf \"${TIZEN_TOOL_ETC_PATH}/tap.kext\"" >> "$TMP_FILE" echo "chown -R root:wheel /Library/Extensions/tap.kext" >> "$TMP_FILE" echo "mkdir -p /Library/LaunchDaemons" >> "$TMP_FILE" echo "cp /Library/Extensions/tap.kext/Contents/net.sf.tuntaposx.tap.plist /Library/LaunchDaemons" >> "$TMP_FILE" echo "kextutil -nt /Library/Extensions/tap.kext" >> "$TMP_FILE" echo "/sbin/kextload /Library/Extensions/tap.kext" >> "$TMP_FILE" } function generate_sudoer_cmd { cat << 'EOF' >> $TMP_FILE FILE=/etc/sudoers BACKFILE=/etc/sudoers.bak TMPFILE=/etc/sudoers.tmp MESSAGE="# Tizen SDK generated the following script. Do not modify." LINE1="User_Alias QEMUERS=" LINE2="Cmnd_Alias QEMU=/etc/emulator-ifup.sh, /etc/emulator-ifdown.sh" LINE3="QEMUERS ALL=(ALL) NOPASSWD: QEMU" count=0 if [[ "$USER" == "" ]] then echo "user is not set. aborting..." exit 1 fi while read line do echo $line count=$((count+1)) if [[ $line == $LINE1* ]] then echo "find original script" NAMES=`echo $line | cut -d = -f2` if [[ "$NAMES"x == ""x ]] then cp $FILE $BACKFILE # in case of blank user eval sed -e "$count"c\"$line $USER\" $FILE > $TMPFILE exit 0 fi for i in $(echo $NAMES | tr "," "\n") do if [[ "$i" == "$USER" ]] then echo "already added the same user" exit 0 fi done cp $FILE $BACKFILE # new user is added with comma behind the original users. eval sed -e "$count"c\"$line, $USER\" $FILE > $TMPFILE mv $TMPFILE $FILE exit 0 fi done < $FILE cp $FILE $BACKFILE echo "do not find qemu sudoer. add it" echo "$MESSAGE" >> $FILE echo "$LINE1$USER" >> $FILE echo "$LINE2" >> $FILE echo "$LINE3" >> $FILE exit 0 EOF } function prepare { TAP_ZIP_FILE="$TIZEN_TOOL_ETC_PATH/tap.zip" TAP_KEXT="$TIZEN_TOOL_ETC_PATH/tap.kext" USER=`id -un` echo "create $TMP_FILE" echo "#!/bin/sh" > "$TMP_FILE" echo "TIZEN_SDK_INSTALL_PATH=$TIZEN_SDK_INSTALL_PATH" >> "$TMP_FILE" echo "USER=$USER" >> "$TMP_FILE" } function generate { generate_tap_kext_cmd; generate_sudoer_cmd; } function execute { /bin/chmod +x "$TMP_FILE" "$COCOASUDO_PATH/cocoasudo" --prompt="Please enter your password to install Tizen Emulator." sh -x "$TMP_FILE" } function cleanup { remove_tmp_file; } prepare; generate; execute; cleanup; CURRENT_SHMMAXSIZE=`sysctl -n kern.sysv.shmmax` if [ ! $OLD_SHMMAXSIZE -eq $CURRENT_SHMMAXSIZE ] then echo 'need reboot' exit 99 fi