# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description   "Run /system/bin/sdcard in a container"
author        "chromium-os-dev@chromium.org"

# Note: Lifecycle of this job is managed by arc-setup job.

env LOGFILE=/var/log/arc-sdcard.log
env PIDFILE=/run/arc/sdcard.pid
env ANDROID_ROOTFS_DIR=/opt/google/containers/android/rootfs/root
env ANDROID_MUTABLE_SOURCE=/opt/google/containers/android/rootfs/android-data
env SDCARD_ROOTFS_DIR=\
/opt/google/containers/arc-sdcard/mountpoints/container-root
env SDCARD_MOUNT_DIR=/run/arc/sdcard

env ROOT_UID=655360
env SDCARD_UID=656383

script
  exec > $LOGFILE 2>&1
  echo "$(date --rfc-3339=ns): Starting arc-sdcard"
  set -x

  # Note: $SDCARD_MOUNT_DIR/... and $ANDROID_MUTABLE_SOURCE/data/...
  # (including /data/media) should have been properly initialized.

  # Clean up a stale pid file if exists.
  rm -f $PIDFILE

  # Start constructing minijail0 args...
  args=""

  # Pivot root.
  args="$args -P $SDCARD_ROOTFS_DIR"

  # Enter a new network namespace.
  args="$args -e"

  # Enter a new PID namespace.
  args="$args -p"

  # Enter a new mount namespace.
  args="$args -v"

  # Enter a new IPC namespace.
  args="$args -l"

  # Disable PRIVATE marking for all mount points.
  args="$args -K"

  # Use Android alt-syscall table.
  args="$args -a android"

  # Create PID file at $PIDFILE.
  args="$args -f $PIDFILE"

  # Here after, set up mount points. First, set up private mount points.
  args="$args -k proc,/proc,proc,0xe"  # nosuid,nodev,noexec
  args="$args -b $ANDROID_ROOTFS_DIR/system/bin/sdcard,/system/bin/sdcard"

  args="$args -b $ANDROID_MUTABLE_SOURCE/data,/data,1"

  args="$args -b /home/chronos/user/Downloads,/Downloads,1"

  # Mark PRIVATE recursively under (pivot) root, in order not to expose shared
  # mount points accidentally.
  args="$args -k none,/,none,0x44000"  # rec,private

  # Mount shared mount points.
  args="$args -b $SDCARD_MOUNT_DIR,/mnt/runtime,1"
  # Remount to make it writable.
  args="$args -k none,/mnt/runtime,none,0x2e"  # remount,nosuid,nodev,noexec

  # Above mount points work confuses the binary path detection in libminijail.
  # Explicitly declare /system/bin/sdcard is a static binary.
  args="$args -T static"

  # Finally, specify the command line arguments.
  args="$args -- /system/bin/sdcard -u $SDCARD_UID -g $SDCARD_UID \
        -m -w /data/media emulated"

  exec capsh --drop=CAP_BLOCK_SUSPEND,CAP_WAKE_ALARM,CAP_SYS_BOOT \
    -- -c "minijail0 $args"
end script

post-stop script
  exec >> $LOGFILE 2>&1
  echo "$(date --rfc-3339=ns): Post-stop arc-sdcard"
end script
