xref: /aosp_15_r20/external/selinux/sandbox/sandboxX.sh (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker#!/bin/bash
2*2d543d20SAndroid Build Coastguard Workertrap "" TERM
3*2d543d20SAndroid Build Coastguard Workercontext=`id -Z | secon -t -l -P`
4*2d543d20SAndroid Build Coastguard Workerexport TITLE="Sandbox $context -- `grep ^#TITLE: ~/.sandboxrc | /usr/bin/cut -b8-80`"
5*2d543d20SAndroid Build Coastguard Worker[ -z $1 ] && export WAYLAND_NATIVE="no" || export WAYLAND_NATIVE="$1"
6*2d543d20SAndroid Build Coastguard Worker[ -z $2 ] && export SCREENSIZE="1000x700" || export SCREENSIZE="$2"
7*2d543d20SAndroid Build Coastguard Worker[ -z $3 ] && export DPI="96" || export DPI="$3"
8*2d543d20SAndroid Build Coastguard Workertrap "exit 0" HUP
9*2d543d20SAndroid Build Coastguard Worker
10*2d543d20SAndroid Build Coastguard Workermkdir -p ~/.config/openbox
11*2d543d20SAndroid Build Coastguard Workercat > ~/.config/openbox/rc.xml << EOF
12*2d543d20SAndroid Build Coastguard Worker<openbox_config xmlns="http://openbox.org/3.4/rc"
13*2d543d20SAndroid Build Coastguard Worker		xmlns:xi="http://www.w3.org/2001/XInclude">
14*2d543d20SAndroid Build Coastguard Worker<applications>
15*2d543d20SAndroid Build Coastguard Worker  <application class="*">
16*2d543d20SAndroid Build Coastguard Worker    <decor>no</decor>
17*2d543d20SAndroid Build Coastguard Worker    <desktop>all</desktop>
18*2d543d20SAndroid Build Coastguard Worker    <maximized>yes</maximized>
19*2d543d20SAndroid Build Coastguard Worker  </application>
20*2d543d20SAndroid Build Coastguard Worker</applications>
21*2d543d20SAndroid Build Coastguard Worker</openbox_config>
22*2d543d20SAndroid Build Coastguard WorkerEOF
23*2d543d20SAndroid Build Coastguard Worker
24*2d543d20SAndroid Build Coastguard Workerif [ "$WAYLAND_NATIVE" == "no" ]; then
25*2d543d20SAndroid Build Coastguard Worker    if [ -z "$WAYLAND_DISPLAY" ]; then
26*2d543d20SAndroid Build Coastguard Worker        DISPLAY_COMMAND='/usr/bin/Xephyr -resizeable -title "$TITLE" -terminate -screen $SCREENSIZE -dpi $DPI -nolisten tcp -displayfd 5 5>&1 2>/dev/null'
27*2d543d20SAndroid Build Coastguard Worker    else
28*2d543d20SAndroid Build Coastguard Worker        DISPLAY_COMMAND='/usr/bin/Xwayland -terminate -dpi $DPI -retro -geometry $SCREENSIZE -decorate -displayfd 5 5>&1 2>/dev/null'
29*2d543d20SAndroid Build Coastguard Worker    fi
30*2d543d20SAndroid Build Coastguard Worker    eval $DISPLAY_COMMAND | while read D; do
31*2d543d20SAndroid Build Coastguard Worker        export DISPLAY=:$D
32*2d543d20SAndroid Build Coastguard Worker        cat > ~/seremote << __EOF
33*2d543d20SAndroid Build Coastguard Worker#!/bin/bash -x
34*2d543d20SAndroid Build Coastguard Workerexport DISPLAY=$DISPLAY
35*2d543d20SAndroid Build Coastguard Workerexport WAYLAND_DISPLAY=$WAYLAND_DISPLAY
36*2d543d20SAndroid Build Coastguard Worker"\$@"
37*2d543d20SAndroid Build Coastguard Worker__EOF
38*2d543d20SAndroid Build Coastguard Worker        chmod +x ~/seremote
39*2d543d20SAndroid Build Coastguard Worker        /usr/share/sandbox/start $HOME/.sandboxrc
40*2d543d20SAndroid Build Coastguard Worker        export EXITCODE=$?
41*2d543d20SAndroid Build Coastguard Worker        kill -TERM 0
42*2d543d20SAndroid Build Coastguard Worker        break
43*2d543d20SAndroid Build Coastguard Worker    done
44*2d543d20SAndroid Build Coastguard Workerelse
45*2d543d20SAndroid Build Coastguard Worker    /usr/share/sandbox/start $HOME/.sandboxrc
46*2d543d20SAndroid Build Coastguard Workerfi
47*2d543d20SAndroid Build Coastguard Workerexit 0
48