1*2d543d20SAndroid Build Coastguard Worker#!/bin/bash 2*2d543d20SAndroid Build Coastguard Worker 3*2d543d20SAndroid Build Coastguard Workershopt -s nullglob 4*2d543d20SAndroid Build Coastguard Worker 5*2d543d20SAndroid Build Coastguard Workerfail() { 6*2d543d20SAndroid Build Coastguard Worker echo $1 7*2d543d20SAndroid Build Coastguard Worker exit 1 8*2d543d20SAndroid Build Coastguard Worker} 9*2d543d20SAndroid Build Coastguard Worker 10*2d543d20SAndroid Build Coastguard Worker[ `id -u` = 0 ] || fail "must run as root" 11*2d543d20SAndroid Build Coastguard Worker 12*2d543d20SAndroid Build Coastguard Workerfor d in /usr/share/mcstrans/examples/*; do 13*2d543d20SAndroid Build Coastguard Worker echo $d 14*2d543d20SAndroid Build Coastguard Worker 15*2d543d20SAndroid Build Coastguard Worker rm -rf /etc/selinux/mls/setrans.conf.bak /etc/selinux/mls/secolor.conf.bak /etc/selinux/mls/setrans.d.bak 16*2d543d20SAndroid Build Coastguard Worker [ $? -eq 0 ] || fail "preclean failed" 17*2d543d20SAndroid Build Coastguard Worker 18*2d543d20SAndroid Build Coastguard Worker if [ -e $d/setrans.conf ]; then 19*2d543d20SAndroid Build Coastguard Worker mv /etc/selinux/mls/setrans.conf /etc/selinux/mls/setrans.conf.bak 20*2d543d20SAndroid Build Coastguard Worker [ $? -eq 0 ] || fail "setrans.conf backup failed" 21*2d543d20SAndroid Build Coastguard Worker fi 22*2d543d20SAndroid Build Coastguard Worker 23*2d543d20SAndroid Build Coastguard Worker if [ -e /etc/selinux/mls/secolor.conf ]; then 24*2d543d20SAndroid Build Coastguard Worker mv /etc/selinux/mls/secolor.conf /etc/selinux/mls/secolor.conf.bak 25*2d543d20SAndroid Build Coastguard Worker [ $? -eq 0 ] || fail "secolor.conf backup failed" 26*2d543d20SAndroid Build Coastguard Worker fi 27*2d543d20SAndroid Build Coastguard Worker 28*2d543d20SAndroid Build Coastguard Worker mv /etc/selinux/mls/setrans.d /etc/selinux/mls/setrans.d.bak 29*2d543d20SAndroid Build Coastguard Worker [ $? -eq 0 ] || fail "setrans.d backup failed" 30*2d543d20SAndroid Build Coastguard Worker 31*2d543d20SAndroid Build Coastguard Worker if [ -e $d/setrans.conf ]; then 32*2d543d20SAndroid Build Coastguard Worker cp -L $d/setrans.conf /etc/selinux/mls/setrans.conf 33*2d543d20SAndroid Build Coastguard Worker fi 34*2d543d20SAndroid Build Coastguard Worker if [ -e $d/secolor.conf ]; then 35*2d543d20SAndroid Build Coastguard Worker cp -L $d/secolor.conf /etc/selinux/mls 36*2d543d20SAndroid Build Coastguard Worker fi 37*2d543d20SAndroid Build Coastguard Worker if [ -d $d/setrans.d ]; then 38*2d543d20SAndroid Build Coastguard Worker cp -Lr $d/setrans.d /etc/selinux/mls 39*2d543d20SAndroid Build Coastguard Worker fi 40*2d543d20SAndroid Build Coastguard Worker 41*2d543d20SAndroid Build Coastguard Worker runcon `cat /etc/selinux/mls/contexts/initrc_context` /etc/init.d/mcstrans restart 42*2d543d20SAndroid Build Coastguard Worker for t in $d/*.test; do 43*2d543d20SAndroid Build Coastguard Worker /usr/share/mcstrans/util/mlstrans-test $t 44*2d543d20SAndroid Build Coastguard Worker done 45*2d543d20SAndroid Build Coastguard Worker for c in $d/*.color; do 46*2d543d20SAndroid Build Coastguard Worker /usr/share/mcstrans/util/mlscolor-test $c 47*2d543d20SAndroid Build Coastguard Worker done 48*2d543d20SAndroid Build Coastguard Worker 49*2d543d20SAndroid Build Coastguard Worker if [ -e /etc/selinux/mls/setrans.conf.bak ]; then 50*2d543d20SAndroid Build Coastguard Worker mv /etc/selinux/mls/setrans.conf.bak /etc/selinux/mls/setrans.conf 51*2d543d20SAndroid Build Coastguard Worker fi 52*2d543d20SAndroid Build Coastguard Worker if [ -e /etc/selinux/mls/secolor.conf.bak ]; then 53*2d543d20SAndroid Build Coastguard Worker mv /etc/selinux/mls/secolor.conf.bak /etc/selinux/mls/secolor.conf 54*2d543d20SAndroid Build Coastguard Worker fi 55*2d543d20SAndroid Build Coastguard Worker rm -rf /etc/selinux/mls/setrans.d 56*2d543d20SAndroid Build Coastguard Worker mv /etc/selinux/mls/setrans.d.bak /etc/selinux/mls/setrans.d 57*2d543d20SAndroid Build Coastguard Worker 58*2d543d20SAndroid Build Coastguard Worker restorecon -rv /etc/selinux/mls/setrans.conf /etc/selinux/mls/setrans.d >/dev/null 59*2d543d20SAndroid Build Coastguard Worker runcon `cat /etc/selinux/mls/contexts/initrc_context` /etc/init.d/mcstrans restart 60*2d543d20SAndroid Build Coastguard Workerdone 61*2d543d20SAndroid Build Coastguard Workerexit 0 62*2d543d20SAndroid Build Coastguard Worker 63*2d543d20SAndroid Build Coastguard Worker 64*2d543d20SAndroid Build Coastguard Worker 65