blob: 8b06bde2c285b83b29c24d6869e750c402e0c6ed [file] [view] [edit]
# Chrome OS arc-setup.
## `/usr/sbin/arc-setup`
`arc-setup` handles setup/teardown of ARC container or upgrading container.
For example, mount point creation, directory creation, setting permissions uids
and gids, selinux label setting, config file creation.
Often, script language is used for such stuff in general, but ARC uses native
executable just for performance and better testability.
## `/usr/share/arc-setup/config.json`
`config.json` is the configuration file for `arc-setup`. Currently, the
following configurations are in the file:
### `ANDROID_DEBUGGABLE`
Setting this value to `true` will make Android boot with `ro.debuggable`. This
should make Android behave *mostly* like an -userdebug image.
A non-comprehensive list of caveats:
* Anything that detects the build type at compile-time will be unaffected, in
particular SELinux rules that are relaxed, or the conditional compilation of
some system tools.
* `adb root` will still be unavailable.
* `su` will be missing.
* `strace` won't work.
* The build type will still be -user.
### `WRITABLE_MOUNT`
Setting this value to `true` will make the Android root, and images for sdcard
etc. filesystems read-write. Note that the images themselves need to be in a
format that supports being mounted this way (e.g. ext4), which is not true of
the default format (squashfs).
## `config.json` and build/debug scripts
Several scripts modify the variables in `config.json`:
* `board_specific_setup.sh` rewrites `ANDROID_DEBUGGABLE` at image build time.
* `setup_writable_android_mount.sh` which is a debug script in Android
repository rewrites `WRITABLE_MOUNT`.
Be careful when adding, removing, or renaming the entries.