/usr/sbin/oem-config-firstboot is in oem-config 2.10.16.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136  | #! /bin/bash
# Run oem-config on the first boot after shipping to the end user.
set -e
DEBUG=
AUTOMATIC=
for option;do
	case $option in
		--debug)
			DEBUG=--debug
			;;
		--automatic)
			AUTOMATIC=--automatic
			;;
	esac
done
# KDM stores the default user here, and apparently gets upset that we've
# just removed its previous default user.
rm -f /var/lib/kdm/kdmsts
# Revert to creating a user at uid 1000.
echo RESET passwd/user-uid | debconf-communicate >/dev/null
if [ -z "$AUTOMATIC" ]; then
	# These two templates have been preseeded, which does nasty things
	# to their templates.  It's probably a bug in cdebconf's
	# debconf-copydb that they end up still registered to
	# debian-installer/dummy at this point, but let's just work around
	# it for now so that we get sensible translated descriptions.
	for q in passwd/user-fullname passwd/username; do
		echo REGISTER "$q" "$q"
		echo RESET "$q"
	done | debconf-communicate oem-config >/dev/null
fi
# Remove the oem-config-prepare menu item.
rm -f /usr/share/applications/oem-config-prepare-gtk.desktop \
      /usr/share/applications/kde4/oem-config-prepare-kde.desktop
# Adjust fontconfig configuration, if possible.
if type fontconfig-voodoo >/dev/null 2>&1; then
	RET="$(echo GET debian-installer/locale | debconf-communicate)"
	if [ "${RET%% *}" = 0 ]; then
		LC_ALL="${RET#* }" fontconfig-voodoo --auto --force --quiet \
			|| true
	fi
fi
# Run a command just before starting oem-config.
RET="$(echo GET oem-config/early_command | debconf-communicate)" || true
if [ "${RET%% *}" = 0 ]; then
	command="${RET#* }"
	log-output sh -c "$command" || true
fi
# TODO: will this work for X-based frontends when X isn't up yet?
if [ -z "$FRONTEND" ]; then
	FRONTEND="$(/usr/sbin/oem-config -q)"
fi
if [ ! -e '/var/log/installer' ]; then
	mkdir -p /var/log/installer
fi
if [ "$DEBUG" ]; then
	TRY=1
else
	TRY=5
fi
for try in $(seq 1 $TRY); do
	CODE=0
	if [ "$FRONTEND" = debconf_ui ]; then
		plymouth quit || true
		LANG=en_US.UTF-8 FRONTEND="$FRONTEND" \
		/usr/sbin/oem-config-wrapper $DEBUG $AUTOMATIC --only \
			2>>/var/log/oem-config.log \
			|| CODE=$?
	else
		FRONTEND="$FRONTEND" \
		/usr/bin/ubiquity-dm vt7 :0 oem \
			/usr/sbin/oem-config-wrapper $DEBUG $AUTOMATIC --only || CODE=$?
	fi
	if [ "$CODE" -eq 0 ]; then
		exit 0
	elif [ "$CODE" -eq 10 ]; then
		cat <<EOF
Your system is not yet configured. Press 'a' to try again, 's' for a
recovery shell, or 'r' to reboot.
EOF
		while :; do
			read -p '[asr] ' -n 1 REPLY
			echo
			case $REPLY in
				A|a)	continue 2 ;;
				S|s)
					cat <<EOF
After you type 'exit', your system will reboot.
EOF
					bash
					reboot
					sleep 3600
					exit 1
					;;
				R|r)	reboot; sleep 3600; exit 1 ;;
			esac
		done
		exit 1
	fi
done
if [ -z "$DEBUG" ]; then
	# Panic. At this point, probably the best thing we can do is drop to
	# a shell so that the user has some hope of fixing things up.
	cat <<EOF
ERROR: The OEM installer failed. Your system may not be usable yet. Please
report this as a bug to your vendor.
To create a user so that you can use your new system normally, type:
    adduser USERNAME
... replacing USERNAME with the username you would like to use (your first
name in lower case is normally a reasonable choice), and follow the prompts.
If this succeeds, type 'exit' to reboot the system.
EOF
	bash
	# Don't run again.
	rm -f /var/lib/oem-config/run
	RET="$(echo GET oem-config/remove | debconf-communicate)"
	if [ "${RET#* }" = true ]; then
		apt-get -y purge ubiquity >>/var/log/oem-config.log 2>&1
	fi
	reboot
fi
exit 0
 |