# Copyright 2018 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     "Modem firmware updater daemon"
author          "ejcaruso@chromium.org"

start on starting system-services
stop on stopping system-services

# Same oom score level as e.g. shill
oom score -100

# Set to true to turn on debug mode on startup.
env DEBUG_MODE="false"
import DEBUG_MODE

script
  # Override logging level if sticky flag exists.
  if [ -f /var/cache/modem-utilities/log_modemfwd_debug ]; then
    DEBUG_MODE="true"
  fi
  # Default helper directory is /opt/google/modemfwd-helpers and if the
  # firmware directory isn't specified we load from the cellular component.
  # -u Run as modem user.
  # -g Run as modem group.
  # -G Inherit supplementary groups from new uid.
  # -v Enter new mount namespace, allows to change mounts inside jail.
  # -n prevents the executable from gaining new privileges.
  # -b /var/lib/metrics Mount with write permissions for uma metrics.
  # -k /run/imageloader with MS_BIND|MS_REC to pick up any new DLC package
  exec minijail0 -u modem -g modem -G -v -n \
      -b /var/lib/metrics,,1 \
      -k '/run/imageloader,/run/imageloader,none,MS_BIND|MS_REC' \
      /usr/bin/modemfwd \
      --firmware_directory=/opt/google/modemfwd-firmware \
      --debug_mode="${DEBUG_MODE}"

end script
