Snap for 6500447 from d33fbf127bc0b03fe3bb7f14137136c15fe2d1a6 to rvc-release

Change-Id: I454f596004fdc6ef50935efe5719c0b1a9be18ba
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..463da40
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,9 @@
+.*
+*
+**/*
+**/.*
+!rebuild-internal.sh
+!policy-inliner.sh
+!x86_64-linux-gnu/manifest.xml
+!aarch64-linux-gnu/manifest.xml
+!custom.xml
diff --git a/Android.bp b/Android.bp
index 56ab8dc..4f92df7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,3 +1,4 @@
+// Autogenerated via gen_android_bp.sh
 //
 // Copyright (C) 2019 The Android Open Source Project
 //
@@ -19,8 +20,7 @@
   srcs: ["scripts/crosvm"],
   defaults: ["cuttlefish_host_only"],
 }
-
-// Everyting below here is generated with gen_android_bp.sh
+// NOTE: Using cc_prebuilt_binary because cc_prebuilt_library can't handle stem on pie
 
 cc_prebuilt_binary {
   name: "aarch64_linux_gnu_crosvm",
@@ -29,16 +29,6 @@
   relative_install_path: "aarch64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-cc_prebuilt_binary {
-  name: "x86_64_linux_gnu_crosvm",
-  srcs: ["x86_64-linux-gnu/bin/crosvm"],
-  stem: "crosvm",
-  relative_install_path: "x86_64-linux-gnu",
-  defaults: ["cuttlefish_host_only"],
-}
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
 cc_prebuilt_binary {
   name: "aarch64_linux_gnu_libepoxy.so.0_for_crosvm",
   srcs: ["aarch64-linux-gnu/bin/libepoxy.so.0"],
@@ -46,8 +36,6 @@
   relative_install_path: "aarch64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
 cc_prebuilt_binary {
   name: "aarch64_linux_gnu_libgbm.so.1_for_crosvm",
   srcs: ["aarch64-linux-gnu/bin/libgbm.so.1"],
@@ -55,8 +43,6 @@
   relative_install_path: "aarch64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
 cc_prebuilt_binary {
   name: "aarch64_linux_gnu_libminijail.so_for_crosvm",
   srcs: ["aarch64-linux-gnu/bin/libminijail.so"],
@@ -64,8 +50,13 @@
   relative_install_path: "aarch64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
+cc_prebuilt_binary {
+  name: "aarch64_linux_gnu_libvirglrenderer.so.0_for_crosvm",
+  srcs: ["aarch64-linux-gnu/bin/libvirglrenderer.so.0"],
+  stem: "libvirglrenderer.so.0",
+  relative_install_path: "aarch64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
 cc_prebuilt_binary {
   name: "aarch64_linux_gnu_libvirglrenderer.so.1_for_crosvm",
   srcs: ["aarch64-linux-gnu/bin/libvirglrenderer.so.1"],
@@ -73,8 +64,34 @@
   relative_install_path: "aarch64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
+cc_prebuilt_binary {
+  name: "x86_64_linux_gnu_crosvm",
+  srcs: ["x86_64-linux-gnu/bin/crosvm"],
+  stem: "crosvm",
+  relative_install_path: "x86_64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
+cc_prebuilt_binary {
+  name: "x86_64_linux_gnu_libandroid_emu_shared.so_for_crosvm",
+  srcs: ["x86_64-linux-gnu/bin/libandroid-emu-shared.so"],
+  stem: "libandroid-emu-shared.so",
+  relative_install_path: "x86_64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
+cc_prebuilt_binary {
+  name: "x86_64_linux_gnu_libc++.so.1_for_crosvm",
+  srcs: ["x86_64-linux-gnu/bin/libc++.so.1"],
+  stem: "libc++.so.1",
+  relative_install_path: "x86_64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
+cc_prebuilt_binary {
+  name: "x86_64_linux_gnu_libemugl_common.so_for_crosvm",
+  srcs: ["x86_64-linux-gnu/bin/libemugl_common.so"],
+  stem: "libemugl_common.so",
+  relative_install_path: "x86_64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
 cc_prebuilt_binary {
   name: "x86_64_linux_gnu_libepoxy.so.0_for_crosvm",
   srcs: ["x86_64-linux-gnu/bin/libepoxy.so.0"],
@@ -82,8 +99,6 @@
   relative_install_path: "x86_64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
 cc_prebuilt_binary {
   name: "x86_64_linux_gnu_libgbm.so.1_for_crosvm",
   srcs: ["x86_64-linux-gnu/bin/libgbm.so.1"],
@@ -91,8 +106,13 @@
   relative_install_path: "x86_64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
+cc_prebuilt_binary {
+  name: "x86_64_linux_gnu_libgfxstream_backend.so_for_crosvm",
+  srcs: ["x86_64-linux-gnu/bin/libgfxstream_backend.so"],
+  stem: "libgfxstream_backend.so",
+  relative_install_path: "x86_64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
 cc_prebuilt_binary {
   name: "x86_64_linux_gnu_libminijail.so_for_crosvm",
   srcs: ["x86_64-linux-gnu/bin/libminijail.so"],
@@ -100,8 +120,13 @@
   relative_install_path: "x86_64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
+cc_prebuilt_binary {
+  name: "x86_64_linux_gnu_libOpenglRender.so_for_crosvm",
+  srcs: ["x86_64-linux-gnu/bin/libOpenglRender.so"],
+  stem: "libOpenglRender.so",
+  relative_install_path: "x86_64-linux-gnu",
+  defaults: ["cuttlefish_host_only"],
+}
 cc_prebuilt_binary {
   name: "x86_64_linux_gnu_libvirglrenderer.so.1_for_crosvm",
   srcs: ["x86_64-linux-gnu/bin/libvirglrenderer.so.1"],
@@ -109,4 +134,3 @@
   relative_install_path: "x86_64-linux-gnu",
   defaults: ["cuttlefish_host_only"],
 }
-
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..1e5dd04
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,89 @@
+FROM debian:buster-slim AS docker_vmm
+
+ENV container docker
+ENV LC_ALL C.UTF-8
+ENV DEBIAN_FRONTEND noninteractive
+
+SHELL [ "/bin/bash", "-c" ]
+
+# Set up the user to be the same as the user creating the container.  Not
+# strictly necessary, but this way all the permissions of the generated files
+# will match.
+
+ARG USER
+ARG UID
+
+ENV USER $USER
+ENV HOME /home/$USER
+ENV CUSTOM_MANIFEST ""
+
+RUN apt update \
+    && apt install -y sudo
+
+RUN useradd -m -s /bin/bash $USER -u $UID -d $HOME \
+    && passwd -d $USER \
+    && echo "$USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
+
+RUN mkdir /source && chown -R $USER /source
+RUN mkdir /output && chown -R $USER /output
+RUN mkdir /working && chown -R $USER /working
+RUN mkdir /static && chown -R $USER /static
+
+USER $USER
+WORKDIR $HOME
+
+COPY --chown=$USER x86_64-linux-gnu/manifest.xml /static/x86_64-linux-gnu/manifest.xml
+COPY --chown=$USER aarch64-linux-gnu/manifest.xml /static/aarch64-linux-gnu/manifest.xml
+COPY --chown=$USER custom.xml /static/custom.xml
+COPY --chown=$USER policy-inliner.sh /static/policy-inliner.sh
+COPY --chown=$USER rebuild-internal.sh /static/rebuild-internal.sh
+
+RUN TOOLS_DIR=/static/tools /static/rebuild-internal.sh install_custom_scripts install_packages
+
+VOLUME /source
+VOLUME /working
+VOLUME /output
+
+FROM docker_vmm AS docker_vmm_persistent
+
+ENV container docker
+ENV LC_ALL C.UTF-8
+ENV DEBIAN_FRONTEND noninteractive
+
+SHELL [ "/bin/bash", "-c" ]
+
+USER root
+
+# Containers built from this image are meant to persist, once started.  A user
+# account is created on them where the work of building crosvm is carried out,
+# persistently.
+
+RUN apt-get update \
+    && apt-get install -y systemd \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
+    && rm -f /var/run/nologin
+
+RUN rm -f /lib/systemd/system/multi-user.target.wants/* \
+    /etc/systemd/system/*.wants/* \
+    /lib/systemd/system/local-fs.target.wants/* \
+    /lib/systemd/system/sockets.target.wants/*udev* \
+    /lib/systemd/system/sockets.target.wants/*initctl* \
+    /lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup* \
+    /lib/systemd/system/systemd-update-utmp*
+
+VOLUME [ "/sys/fs/cgroup" ]
+
+CMD ["/lib/systemd/systemd"]
+
+RUN apt update \
+    && apt install -y apt-utils sudo dpkg-dev coreutils \
+       openssh-server openssh-client psmisc iptables iproute2 dnsmasq \
+       net-tools rsyslog equivs
+
+RUN apt install -y dialog
+
+RUN sed -i -r -e 's/^#{0,1}\s*PasswordAuthentication\s+(yes|no)/PasswordAuthentication yes/g' /etc/ssh/sshd_config \
+    && sed -i -r -e 's/^#{0,1}\s*PermitEmptyPasswords\s+(yes|no)/PermitEmptyPasswords yes/g' /etc/ssh/sshd_config \
+    && sed -i -r -e 's/^#{0,1}\s*ChallengeResponseAuthentication\s+(yes|no)/ChallengeResponseAuthentication no/g' /etc/ssh/sshd_config \
+    && sed -i -r -e 's/^#{0,1}\s*UsePAM\s+(yes|no)/UsePAM no/g' /etc/ssh/sshd_config
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,3 @@
+third_party {
+  license_type: NOTICE
+}
diff --git a/aarch64-linux-gnu/Android.bp b/aarch64-linux-gnu/Android.bp
new file mode 100644
index 0000000..68e6fc0
--- /dev/null
+++ b/aarch64-linux-gnu/Android.bp
@@ -0,0 +1,124 @@
+// Autogenerated via gen_android_bp.sh
+//
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+prebuilt_usr_share_host {
+  name: "9p_device.policy_at_aarch64",
+  src: "etc/seccomp/9p_device.policy",
+  filename: "9p_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "balloon_device.policy_at_aarch64",
+  src: "etc/seccomp/balloon_device.policy",
+  filename: "balloon_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "block_device.policy_at_aarch64",
+  src: "etc/seccomp/block_device.policy",
+  filename: "block_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "common_device.policy_at_aarch64",
+  src: "etc/seccomp/common_device.policy",
+  filename: "common_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "cras_audio_device.policy_at_aarch64",
+  src: "etc/seccomp/cras_audio_device.policy",
+  filename: "cras_audio_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "fs_device.policy_at_aarch64",
+  src: "etc/seccomp/fs_device.policy",
+  filename: "fs_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "gpu_device.policy_at_aarch64",
+  src: "etc/seccomp/gpu_device.policy",
+  filename: "gpu_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "input_device.policy_at_aarch64",
+  src: "etc/seccomp/input_device.policy",
+  filename: "input_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "net_device.policy_at_aarch64",
+  src: "etc/seccomp/net_device.policy",
+  filename: "net_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "null_audio_device.policy_at_aarch64",
+  src: "etc/seccomp/null_audio_device.policy",
+  filename: "null_audio_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "pmem_device.policy_at_aarch64",
+  src: "etc/seccomp/pmem_device.policy",
+  filename: "pmem_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "rng_device.policy_at_aarch64",
+  src: "etc/seccomp/rng_device.policy",
+  filename: "rng_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "serial.policy_at_aarch64",
+  src: "etc/seccomp/serial.policy",
+  filename: "serial.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "tpm_device.policy_at_aarch64",
+  src: "etc/seccomp/tpm_device.policy",
+  filename: "tpm_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "vhost_net_device.policy_at_aarch64",
+  src: "etc/seccomp/vhost_net_device.policy",
+  filename: "vhost_net_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "vhost_vsock_device.policy_at_aarch64",
+  src: "etc/seccomp/vhost_vsock_device.policy",
+  filename: "vhost_vsock_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "wl_device.policy_at_aarch64",
+  src: "etc/seccomp/wl_device.policy",
+  filename: "wl_device.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "xhci.policy_at_aarch64",
+  src: "etc/seccomp/xhci.policy",
+  filename: "xhci.policy",
+  sub_dir: "cuttlefish/aarch64-linux-gnu/seccomp",
+}
diff --git a/aarch64-linux-gnu/Cargo.lock b/aarch64-linux-gnu/Cargo.lock
index 81abd93..32f3266 100644
--- a/aarch64-linux-gnu/Cargo.lock
+++ b/aarch64-linux-gnu/Cargo.lock
@@ -4,32 +4,41 @@
 name = "aarch64"
 version = "0.1.0"
 dependencies = [
- "arch 0.1.0",
- "data_model 0.1.0",
- "devices 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "arch",
+ "data_model",
+ "devices",
+ "io_jail",
+ "kernel_cmdline",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "vm_control",
+]
+
+[[package]]
+name = "acpi_tables"
+version = "0.1.0"
+dependencies = [
+ "data_model",
 ]
 
 [[package]]
 name = "arch"
 version = "0.1.0"
 dependencies = [
- "devices 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kvm 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "devices",
+ "io_jail",
+ "kernel_cmdline",
+ "kvm",
+ "libc",
+ "resources",
+ "sync",
+ "sys_util",
+ "vm_control",
 ]
 
 [[package]]
@@ -39,403 +48,651 @@
 [[package]]
 name = "audio_streams"
 version = "0.1.0"
+dependencies = [
+ "sync",
+ "sys_util",
+]
 
 [[package]]
 name = "bit_field"
 version = "0.1.0"
 dependencies = [
- "bit_field_derive 0.1.0",
+ "bit_field_derive",
 ]
 
 [[package]]
 name = "bit_field_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "bitflags"
-version = "1.1.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
 name = "cc"
 version = "1.0.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
 
 [[package]]
 name = "cfg-if"
-version = "0.1.5"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 
 [[package]]
 name = "cras-sys"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
+ "audio_streams",
+ "data_model",
+]
+
+[[package]]
+name = "cros_async"
+version = "0.1.0"
+dependencies = [
+ "futures",
+ "libc",
+ "paste",
+ "sys_util",
+ "syscall_defines",
 ]
 
 [[package]]
 name = "crosvm"
 version = "0.1.0"
 dependencies = [
- "aarch64 0.1.0",
- "arch 0.1.0",
- "assertions 0.1.0",
- "audio_streams 0.1.0",
- "bit_field 0.1.0",
- "crosvm_plugin 0.17.0",
- "data_model 0.1.0",
- "devices 0.1.0",
- "disk 0.1.0",
- "enumn 0.1.0",
- "gpu_buffer 0.1.0",
- "gpu_renderer 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kernel_loader 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "libcras 0.1.0",
- "msg_socket 0.1.0",
- "net_util 0.1.0",
- "p9 0.1.0",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protos 0.1.0",
- "rand_ish 0.1.0",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
- "vhost 0.1.0",
- "vm_control 0.1.0",
- "x86_64 0.1.0",
+ "aarch64",
+ "acpi_tables",
+ "arch",
+ "assertions",
+ "audio_streams",
+ "bit_field",
+ "crosvm_plugin",
+ "data_model",
+ "devices",
+ "disk",
+ "enumn",
+ "gpu_buffer",
+ "gpu_renderer",
+ "io_jail",
+ "kernel_cmdline",
+ "kernel_loader",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "libcras",
+ "minijail-sys",
+ "msg_socket",
+ "net_util",
+ "p9",
+ "protobuf",
+ "protos",
+ "rand_ish",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "vhost",
+ "vm_control",
+ "x86_64",
 ]
 
 [[package]]
 name = "crosvm_plugin"
 version = "0.17.0"
 dependencies = [
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protos 0.1.0",
- "sys_util 0.1.0",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "protobuf",
+ "protos",
+ "sys_util",
 ]
 
 [[package]]
 name = "data_model"
 version = "0.1.0"
 dependencies = [
- "assertions 0.1.0",
+ "assertions",
 ]
 
 [[package]]
 name = "devices"
 version = "0.1.0"
 dependencies = [
- "audio_streams 0.1.0",
- "bit_field 0.1.0",
- "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "data_model 0.1.0",
- "disk 0.1.0",
- "enumn 0.1.0",
- "gpu_buffer 0.1.0",
- "gpu_display 0.1.0",
- "gpu_renderer 0.1.0",
- "io_jail 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "linux_input_sys 0.1.0",
- "msg_on_socket_derive 0.1.0",
- "msg_socket 0.1.0",
- "net_sys 0.1.0",
- "net_util 0.1.0",
- "p9 0.1.0",
- "protos 0.1.0",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
- "syscall_defines 0.1.0",
+ "audio_streams",
+ "bit_field",
+ "bitflags",
+ "data_model",
+ "disk",
+ "enumn",
+ "gpu_buffer",
+ "gpu_display",
+ "gpu_renderer",
+ "io_jail",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "libcras",
+ "linux_input_sys",
+ "msg_on_socket_derive",
+ "msg_socket",
+ "net_sys",
+ "net_util",
+ "p9",
+ "protos",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "syscall_defines",
  "tempfile 3.0.7",
- "tpm2 0.1.0",
- "usb_util 0.1.0",
- "vfio_sys 0.1.0",
- "vhost 0.1.0",
- "virtio_sys 0.1.0",
- "vm_control 0.1.0",
+ "tpm2",
+ "usb_util",
+ "vfio_sys",
+ "vhost",
+ "virtio_sys",
+ "vm_control",
 ]
 
 [[package]]
 name = "disk"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protos 0.1.0",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "protobuf",
+ "protos",
+ "remain",
+ "sys_util",
 ]
 
 [[package]]
 name = "enumn"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6"
+
+[[package]]
+name = "futures-task"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27"
+
+[[package]]
+name = "futures-util"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
 ]
 
 [[package]]
 name = "getopts"
-version = "0.2.18"
+version = "0.2.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
 dependencies = [
- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
 ]
 
 [[package]]
 name = "gpu_buffer"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "sys_util",
 ]
 
 [[package]]
 name = "gpu_display"
 version = "0.1.0"
 dependencies = [
- "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "linux_input_sys 0.1.0",
- "sys_util 0.1.0",
+ "cc",
+ "data_model",
+ "libc",
+ "linux_input_sys",
+ "sys_util",
 ]
 
 [[package]]
 name = "gpu_renderer"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "sys_util",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
 name = "io_jail"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "net_sys 0.1.0",
+ "libc",
+ "minijail-sys",
 ]
 
 [[package]]
 name = "kernel_cmdline"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
 ]
 
 [[package]]
 name = "kernel_loader"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "kvm"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg_socket 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "kvm_sys",
+ "libc",
+ "msg_socket",
+ "sys_util",
 ]
 
 [[package]]
 name = "kvm_sys"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.44"
+version = "0.2.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
 
 [[package]]
 name = "libcras"
 version = "0.1.0"
 dependencies = [
- "audio_streams 0.1.0",
- "cras-sys 0.1.0",
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "audio_streams",
+ "cras-sys",
+ "data_model",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "linux_input_sys"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.5"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
 dependencies = [
- "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+
+[[package]]
+name = "minijail-sys"
+version = "0.0.11"
+dependencies = [
+ "libc",
+ "pkg-config",
 ]
 
 [[package]]
 name = "msg_on_socket_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "msg_socket"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "msg_on_socket_derive 0.1.0",
- "sys_util 0.1.0",
+ "cros_async",
+ "data_model",
+ "futures",
+ "libc",
+ "msg_on_socket_derive",
+ "sys_util",
 ]
 
 [[package]]
 name = "net_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "net_util"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "net_sys 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "net_sys",
+ "sys_util",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.9.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hermit-abi",
+ "libc",
 ]
 
 [[package]]
 name = "p9"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "wire_format_derive 0.1.0",
+ "libc",
+ "wire_format_derive",
 ]
 
 [[package]]
-name = "pkg-config"
-version = "0.3.11"
+name = "paste"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a229b1c58c692edcaa5b9b0948084f130f55d2dcc15b02fcc5340b2b4521476"
+dependencies = [
+ "paste-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "paste-impl"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e0bf239e447e67ff6d16a8bb5e4d4bd2343acf5066061c0e8e06ac5ba8ca68c"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
 
 [[package]]
 name = "poll_token_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "0.4.21"
+name = "ppv-lite86"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
 dependencies = [
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid",
 ]
 
 [[package]]
 name = "protobuf"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
 
 [[package]]
 name = "protobuf-codegen"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c"
 dependencies = [
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf",
 ]
 
 [[package]]
 name = "protoc"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d80967ee438cd03ccd236d548d4dcd5f2d9349acda206bef1490a826165d3"
 dependencies = [
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log",
 ]
 
 [[package]]
 name = "protoc-rust"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58f2fb1de3a1355b1eb91108bf59d6221c1f565eee9983605be53846019fdf38"
 dependencies = [
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protoc 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 3.0.7",
+ "protobuf",
+ "protobuf-codegen",
+ "protoc",
+ "tempfile 3.1.0",
 ]
 
 [[package]]
 name = "protos"
 version = "0.1.0"
 dependencies = [
- "kvm_sys 0.1.0",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protoc-rust 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kvm_sys",
+ "protobuf",
+ "protoc-rust",
 ]
 
 [[package]]
 name = "qcow_utils"
 version = "0.1.0"
 dependencies = [
- "disk 0.1.0",
- "getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "disk",
+ "getopts",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "quote"
-version = "0.6.10"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
 ]
 
 [[package]]
@@ -443,33 +700,56 @@
 version = "0.1.0"
 
 [[package]]
-name = "remain"
-version = "0.1.2"
+name = "redox_syscall"
+version = "0.1.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+
+[[package]]
+name = "remain"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99c861227fc40c8da6fdaa3d58144ac84c0537080a43eb1d7d45c28f88dcb888"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+dependencies = [
+ "winapi",
 ]
 
 [[package]]
 name = "resources"
 version = "0.1.0"
 dependencies = [
- "gpu_buffer 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg_socket 0.1.0",
- "sys_util 0.1.0",
+ "gpu_buffer",
+ "libc",
+ "msg_socket",
+ "sys_util",
 ]
 
 [[package]]
-name = "syn"
-version = "0.15.26"
+name = "slab"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+[[package]]
+name = "syn"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
 ]
 
 [[package]]
@@ -480,11 +760,11 @@
 name = "sys_util"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "poll_token_derive 0.1.0",
- "sync 0.1.0",
- "syscall_defines 0.1.0",
+ "data_model",
+ "libc",
+ "poll_token_derive",
+ "sync",
+ "syscall_defines",
  "tempfile 3.0.7",
 ]
 
@@ -496,136 +776,162 @@
 name = "tempfile"
 version = "3.0.7"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
 ]
 
 [[package]]
 name = "tpm2"
 version = "0.1.0"
 dependencies = [
- "tpm2-sys 0.1.0",
+ "tpm2-sys",
 ]
 
 [[package]]
 name = "tpm2-sys"
 version = "0.1.0"
 dependencies = [
- "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_cpus",
+ "pkg-config",
 ]
 
 [[package]]
 name = "unicode-width"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
 
 [[package]]
 name = "unicode-xid"
-version = "0.1.0"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
 
 [[package]]
 name = "usb_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "usb_util"
 version = "0.1.0"
 dependencies = [
- "assertions 0.1.0",
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
- "usb_sys 0.1.0",
+ "assertions",
+ "data_model",
+ "libc",
+ "remain",
+ "sys_util",
+ "usb_sys",
 ]
 
 [[package]]
 name = "vfio_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "vhost"
 version = "0.1.0"
 dependencies = [
- "assertions 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "net_util 0.1.0",
- "sys_util 0.1.0",
- "virtio_sys 0.1.0",
+ "assertions",
+ "libc",
+ "net_util",
+ "sys_util",
+ "virtio_sys",
 ]
 
 [[package]]
 name = "virtio_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "vm_control"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "kvm 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg_socket 0.1.0",
- "resources 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "kvm",
+ "libc",
+ "msg_socket",
+ "resources",
+ "sync",
+ "sys_util",
 ]
 
 [[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
 name = "wire_format_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "x86_64"
 version = "0.1.0"
 dependencies = [
- "arch 0.1.0",
- "assertions 0.1.0",
- "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
- "data_model 0.1.0",
- "devices 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kernel_loader 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "acpi_tables",
+ "arch",
+ "assertions",
+ "data_model",
+ "devices",
+ "io_jail",
+ "kernel_cmdline",
+ "kernel_loader",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "vm_control",
 ]
-
-[metadata]
-"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
-"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
-"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3"
-"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
-"checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
-"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f"
-"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
-"checksum pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "110d5ee3593dbb73f56294327fe5668bcc997897097cbc76b51e7aed3f52452f"
-"checksum proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)" = "ab2fc21ba78ac73e4ff6b3818ece00be4e175ffbef4d0a717d978b48b24150c4"
-"checksum protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40361836defdd5871ff7e84096c6f6444af7fc157f8ef1789f54f147687caa20"
-"checksum protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12c6abd78435445fc86898ebbd0521a68438063d4a73e23527b7134e6bf58b4a"
-"checksum protoc 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3998c4bc0af8ccbd3cc68245ee9f72663c5ae2fb78bc48ff7719aef11562edea"
-"checksum protoc-rust 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "234c97039c32bb58a883d0deafa57db37e59428ce536f3bdfe1c46cffec04113"
-"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
-"checksum remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3bec2543b50be4539fdc27fde082e218cf4c3895358ca77f5c52fe930589e209"
-"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9"
-"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
diff --git a/aarch64-linux-gnu/bin/crosvm b/aarch64-linux-gnu/bin/crosvm
index f5e7660..f0b3f4e 100755
--- a/aarch64-linux-gnu/bin/crosvm
+++ b/aarch64-linux-gnu/bin/crosvm
Binary files differ
diff --git a/aarch64-linux-gnu/bin/libepoxy.so.0 b/aarch64-linux-gnu/bin/libepoxy.so.0
index 6aab254..88bd3b2 100755
--- a/aarch64-linux-gnu/bin/libepoxy.so.0
+++ b/aarch64-linux-gnu/bin/libepoxy.so.0
Binary files differ
diff --git a/aarch64-linux-gnu/bin/libgbm.so.1 b/aarch64-linux-gnu/bin/libgbm.so.1
index 7399f4a..46aa4ea 100755
--- a/aarch64-linux-gnu/bin/libgbm.so.1
+++ b/aarch64-linux-gnu/bin/libgbm.so.1
Binary files differ
diff --git a/aarch64-linux-gnu/bin/libminijail.so b/aarch64-linux-gnu/bin/libminijail.so
index 5f843d7..ed15c76 100755
--- a/aarch64-linux-gnu/bin/libminijail.so
+++ b/aarch64-linux-gnu/bin/libminijail.so
Binary files differ
diff --git a/aarch64-linux-gnu/bin/libvirglrenderer.so b/aarch64-linux-gnu/bin/libvirglrenderer.so
index e99438b..a764d77 120000
--- a/aarch64-linux-gnu/bin/libvirglrenderer.so
+++ b/aarch64-linux-gnu/bin/libvirglrenderer.so
@@ -1 +1 @@
-libvirglrenderer.so.0
\ No newline at end of file
+libvirglrenderer.so.1
\ No newline at end of file
diff --git a/aarch64-linux-gnu/bin/libvirglrenderer.so.1 b/aarch64-linux-gnu/bin/libvirglrenderer.so.1
index dd6a697..cc89094 100755
--- a/aarch64-linux-gnu/bin/libvirglrenderer.so.1
+++ b/aarch64-linux-gnu/bin/libvirglrenderer.so.1
Binary files differ
diff --git a/aarch64-linux-gnu/builder-packages.txt b/aarch64-linux-gnu/builder-packages.txt
index 992b69a..b6e1416 100644
--- a/aarch64-linux-gnu/builder-packages.txt
+++ b/aarch64-linux-gnu/builder-packages.txt
@@ -1,101 +1,70 @@
 adduser	3.118
-alsa-utils	1.1.8-2
 apt	1.8.2
-apt-file	3.2.2
-apt-transport-https	1.8.2
 apt-utils	1.8.2
-aptitude	0.8.11-7
-aptitude-common	0.8.11-7
-armbian-config	20.02.0-rc0
-armbian-firmware	20.02.0-rc0
 autoconf	2.69-11
 automake	1:1.16.1-4
+autopoint	0.19.8.1-9
 autotools-dev	20180224.1
-avahi-autoipd	0.7-4+b1
-base-files	10.3+deb10u2
+base-files	10.3+deb10u3
 base-passwd	3.5.46
 bash	5.0-4
-bash-completion	1:2.8-6
-bc	1.07.1-2+b1
-bind9-host	1:9.11.5.P4+dfsg-5.1
-binfmt-support	2.2.0-2
 binutils	2.31.1-16
 binutils-aarch64-linux-gnu	2.31.1-16
 binutils-common:arm64	2.31.1-16
-bison	2:3.3.2.dfsg-1
-bluetooth	5.50-1
-bluez	5.50-1
-bluez-tools	2.0~20170911.0.7cb788c-2
-bridge-utils	1.6-2
+bsd-mailx	8.1.2-0.20180807cvs-1
 bsdmainutils	11.1.2+b1
 bsdutils	1:2.33.1-0.1
-btrfs-progs	4.20.1-2
 build-essential	12.6
 bzip2	1.0.6-9.2~deb10u1
 ca-certificates	20190110
-chrony	3.4-4
 cmake	3.13.4-1
 cmake-data	3.13.4-1
-command-not-found	18.04.5-1
-console-setup	1.193~deb10u1
-console-setup-linux	1.193~deb10u1
-containerd.io	1.2.10-3
 coreutils	8.30-3
-cpio	2.12+dfsg-9
 cpp	4:8.3.0-1
 cpp-8	8.3.0-6
-cpu-checker	0.7-1.1
-cpufrequtils	008-1.1
-crda	3.18-1
 cron	3.0pl1-134+deb10u1
-curl	7.64.0-4
+curl	7.64.0-4+deb10u1
 dash	0.5.10.2-5
 dbus	1.12.16-1
 debconf	1.5.71
-debconf-utils	1.5.71
+debhelper	12.1.1
 debian-archive-keyring	2019.1
 debianutils	4.8.6.1
-device-tree-compiler	1.4.7-3
+dh-autoreconf	19
+dh-python	3.20190308
+dh-strip-nondeterminism	1.1.2-1
 dialog	1.3-20190211-1
 diffutils	1:3.7-3
 dirmngr	2.2.12-1+deb10u1
-distro-info-data	0.41+deb10u1
 dmsetup	2:1.02.155-3
-dnsutils	1:9.11.5.P4+dfsg-5.1
-docker-ce	5:19.03.5~3-0~debian-buster
-docker-ce-cli	5:19.03.5~3-0~debian-buster
-dosfstools	4.1-2
+dns-root-data	2019031302
+dnsmasq	2.80-1
+dnsmasq-base	2.80-1
 dpkg	1.19.7
 dpkg-dev	1.19.7
-e2fsprogs	1.44.5-1+deb10u2
-ethtool	1:4.19-1
-evtest	1:1.33-2
-expect	5.45.4-2
-f2fs-tools	1.11.0-1.1
-f3	7.1-1
-fake-hwclock	0.11
-fbset	2.1-30
+dwz	0.12-3
+e2fsprogs	1.44.5-1+deb10u3
+equivs	2.2.0
+exim4-base	4.92-8+deb10u3
+exim4-config	4.92-8+deb10u3
+exim4-daemon-light	4.92-8+deb10u3
+fakeroot	1.23-1
 fdisk	2.33.1-0.1
-figlet	2.2.5-3
 file	1:5.35-4+deb10u1
 findutils	4.6.0+git+20190209-2
-flex	2.6.4-6.2
-fping	4.2-1
-fuse	2.9.9-1
 g++	4:8.3.0-1
 g++-8	8.3.0-6
 gcc	4:8.3.0-1
 gcc-8	8.3.0-6
-gcc-8-base:amd64	8.3.0-6
 gcc-8-base:arm64	8.3.0-6
+gettext	0.19.8.1-9
+gettext-base	0.19.8.1-9
 gir1.2-glib-2.0:arm64	1.58.3-2
-gir1.2-packagekitglib-1.0	1.1.12-5
-git	1:2.20.1-2+deb10u1
-git-man	1:2.20.1-2+deb10u1
+git	1:2.20.1-2+deb10u3
+git-man	1:2.20.1-2+deb10u3
 gnupg	2.2.12-1+deb10u1
 gnupg-l10n	2.2.12-1+deb10u1
 gnupg-utils	2.2.12-1+deb10u1
-gnupg2	2.2.12-1+deb10u1
 gpg	2.2.12-1+deb10u1
 gpg-agent	2.2.12-1+deb10u1
 gpg-wks-client	2.2.12-1+deb10u1
@@ -106,83 +75,53 @@
 grep	3.3-1
 groff-base	1.22.4-3
 gzip	1.9-3
-haveged	1.9.1-7
-hdparm	9.58+ds-1
-hostapd	3:2.7-99~armbian5.86+1
 hostname	3.21
-html2text	1.3.2a-24
-htop	2.2.0-3~armbian5.92+1
-ifenslave	2.9
-ifupdown	0.8.35
-init	1.56+nmu1
 init-system-helpers	1.56+nmu1
-initramfs-tools	0.133+deb10u1
-initramfs-tools-core	0.133+deb10u1
-iotop	0.6-24-g733f3f8-1
-iozone3	429-3+b1
-iperf3	3.6-2
+intltool-debian	0.35.0+20060710.5
 iproute2	4.20.0-2
 iptables	1.8.2-4
-iputils-arping	3:20180629-2
-iputils-ping	3:20180629-2
-isc-dhcp-client	4.4.1-2
-iso-codes	4.2-1
-iw	5.0.1-1
-kbd	2.0.4-4
-keyboard-configuration	1.193~deb10u1
-klibc-utils	2.0.6-1
-kmod	26-1
+krb5-locales	1.17-3
 less	487-0.1+b1
 libacl1:arm64	2.2.53-4
+libalgorithm-diff-perl	1.19.03-2
+libalgorithm-diff-xs-perl	0.04-5+b1
+libalgorithm-merge-perl	0.08-3
 libapparmor1:arm64	2.13.2-10
 libapt-inst2.0:arm64	1.8.2
-libapt-pkg-perl	0.1.34+b1
 libapt-pkg5.0:arm64	1.8.2
+libarchive-cpio-perl	0.10-1
+libarchive-zip-perl	1.64-1
 libarchive13:arm64	3.3.3-4+deb10u1
 libargon2-1:arm64	0~20171227-0.2
 libasan5:arm64	8.3.0-6
-libasound2:arm64	1.1.8-1
-libasound2-data	1.1.8-1
 libassuan0:arm64	2.5.2-1
+libatm1:arm64	1:2.5.1-2
 libatomic1:arm64	8.3.0-6
 libattr1:arm64	1:2.4.48-4
 libaudit-common	1:2.8.4-3
 libaudit1:arm64	1:2.8.4-3
-libbind9-161:arm64	1:9.11.5.P4+dfsg-5.1
 libbinutils:arm64	2.31.1-16
-libbison-dev:arm64	2:3.3.2.dfsg-1
 libblkid1:arm64	2.33.1-0.1
-libbluetooth3:arm64	5.50-1
-libboost-iostreams1.67.0:arm64	1.67.0-13
-libboost-system1.67.0:arm64	1.67.0-13
 libbsd0:arm64	0.9.1-2
 libbz2-1.0:arm64	1.0.6-9.2~deb10u1
 libc-bin	2.28-10
 libc-dev-bin	2.28-10
-libc-l10n	2.28-10
-libc6:amd64	2.28-10
 libc6:arm64	2.28-10
 libc6-dev:arm64	2.28-10
-libcaca0:arm64	0.99.beta19-2.1
 libcap-dev:arm64	1:2.25-2
 libcap-ng0:arm64	0.7.9-2
 libcap2:arm64	1:2.25-2
 libcap2-bin	1:2.25-2
 libcc1-0:arm64	8.3.0-6
-libcom-err2:arm64	1.44.5-1+deb10u2
-libcpufreq0	008-1.1
+libcom-err2:arm64	1.44.5-1+deb10u3
+libcroco3:arm64	0.6.12-3
 libcryptsetup12:arm64	2:2.1.0-5+deb10u2
-libcurl3-gnutls:arm64	7.64.0-4
-libcurl4:arm64	7.64.0-4
-libcwidget3v5:arm64	0.5.17-11
-libdaemon0:arm64	0.14-7
+libcurl3-gnutls:arm64	7.64.0-4+deb10u1
+libcurl4:arm64	7.64.0-4+deb10u1
 libdb5.3:arm64	5.3.28+dfsg1-0.5
 libdbus-1-3:arm64	1.12.16-1
 libdebconfclient0:arm64	0.249
 libdevmapper1.02.1:arm64	2:1.02.155-3
-libdigest-sha-perl	6.02-1+b1
-libdns-export1104	1:9.11.5.P4+dfsg-5.1
-libdns1104:arm64	1:9.11.5.P4+dfsg-5.1
 libdpkg-perl	1.19.7
 libdrm-amdgpu1:arm64	2.4.97-1
 libdrm-common	2.4.97-1
@@ -193,97 +132,86 @@
 libdrm-radeon1:arm64	2.4.97-1
 libdrm-tegra0:arm64	2.4.97-1
 libdrm2:arm64	2.4.97-1
-libdw1:arm64	0.176-1.1
 libedit2:arm64	3.1-20181209-1
-libegl-mesa0:arm64	18.3.6-2
+libegl-mesa0:arm64	18.3.6-2+deb10u1
 libegl1:arm64	1.1.0-1
-libegl1-mesa-dev:arm64	18.3.6-2
+libegl1-mesa-dev:arm64	18.3.6-2+deb10u1
 libelf1:arm64	0.176-1.1
 liberror-perl	0.17027-2
 libestr0:arm64	0.1.10-2.1
+libevent-2.1-6:arm64	2.1.8-stable-4
 libexpat1:arm64	2.2.6-2+deb10u1
-libexporter-tiny-perl	1.002001-1
-libext2fs2:arm64	1.44.5-1+deb10u2
-libf2fs-format4:arm64	1.11.0-1.1
-libf2fs5:arm64	1.11.0-1.1
+libexpat1-dev:arm64	2.2.6-2+deb10u1
+libext2fs2:arm64	1.44.5-1+deb10u3
+libfakeroot:arm64	1.23-1
 libfastjson4:arm64	0.99.8-2
 libfdisk1:arm64	2.33.1-0.1
 libfdt-dev	1.4.7-3
 libfdt1:arm64	1.4.7-3
 libffi6:arm64	3.2.1-9
-libfftw3-single3:arm64	3.3.8-2
-libfstrm0:arm64	0.4.0-1
-libfuse2:arm64	2.9.9-1
-libgbm1:arm64	18.3.6-2
+libfile-fcntllock-perl	0.22-3+b5
+libfile-stripnondeterminism-perl	1.1.2-1
+libgbm1:arm64	18.3.6-2+deb10u1
 libgcc-8-dev:arm64	8.3.0-6
-libgcc1:amd64	1:8.3.0-6
 libgcc1:arm64	1:8.3.0-6
 libgcrypt20:arm64	1.8.4-5
 libgdbm-compat4:arm64	1.18.1-4
 libgdbm6:arm64	1.18.1-4
-libgeoip1:arm64	1.6.12-1
 libgirepository-1.0-1:arm64	1.58.3-2
 libgl1:arm64	1.1.0-1
-libgl1-mesa-dev:arm64	18.3.6-2
-libgl1-mesa-dri:arm64	18.3.6-2
-libglapi-mesa:arm64	18.3.6-2
+libgl1-mesa-dev:arm64	18.3.6-2+deb10u1
+libgl1-mesa-dri:arm64	18.3.6-2+deb10u1
+libglapi-mesa:arm64	18.3.6-2+deb10u1
 libgles1:arm64	1.1.0-1
 libgles2:arm64	1.1.0-1
-libgles2-mesa-dev:arm64	18.3.6-2
+libgles2-mesa-dev:arm64	18.3.6-2+deb10u1
 libglib2.0-0:arm64	2.58.3-2+deb10u2
+libglib2.0-data	2.58.3-2+deb10u2
 libglvnd-core-dev:arm64	1.1.0-1
 libglvnd-dev:arm64	1.1.0-1
 libglvnd0:arm64	1.1.0-1
-libglx-mesa0:arm64	18.3.6-2
+libglx-mesa0:arm64	18.3.6-2+deb10u1
 libglx0:arm64	1.1.0-1
 libgmp10:arm64	2:6.1.2+dfsg-4
-libgnutls30:arm64	3.6.7-4
+libgnutls-dane0:arm64	3.6.7-4+deb10u3
+libgnutls30:arm64	3.6.7-4+deb10u3
 libgomp1:arm64	8.3.0-6
 libgpg-error0:arm64	1.35-1
 libgpm2:arm64	1.20.7-5
 libgssapi-krb5-2:arm64	1.17-3
-libhavege1:arm64	1.9.1-7
 libhogweed4:arm64	3.4.1-1
-libicu63:arm64	63.1-6
+libicu63:arm64	63.1-6+deb10u1
 libidn11:arm64	1.33-2.2
-libidn2-0:arm64	2.0.5-1
+libidn2-0:arm64	2.0.5-1+deb10u1
 libip4tc0:arm64	1.8.2-4
 libip6tc0:arm64	1.8.2-4
-libiperf0:arm64	3.6-2
 libiptc0:arm64	1.8.2-4
-libirs161:arm64	1:9.11.5.P4+dfsg-5.1
-libisc-export1100:arm64	1:9.11.5.P4+dfsg-5.1
-libisc1100:arm64	1:9.11.5.P4+dfsg-5.1
-libisccc161:arm64	1:9.11.5.P4+dfsg-5.1
-libisccfg163:arm64	1:9.11.5.P4+dfsg-5.1
 libisl19:arm64	0.20-2
 libitm1:arm64	8.3.0-6
-libiw30:arm64	30~pre9-13
 libjansson4:arm64	2.12-1
 libjson-c3:arm64	0.12.1+ds-2
 libjsoncpp1:arm64	1.7.4-3
 libk5crypto3:arm64	1.17-3
 libkeyutils1:arm64	1.6-6
-libklibc:arm64	2.0.6-1
 libkmod2:arm64	26-1
 libkrb5-3:arm64	1.17-3
 libkrb5support0:arm64	1.17-3
 libksba8:arm64	1.3.5-2
-libldap-2.4-2:arm64	2.4.47+dfsg-3+deb10u1
-libldap-common	2.4.47+dfsg-3+deb10u1
-liblist-moreutils-perl	0.416-1+b4
+libldap-2.4-2:arm64	2.4.47+dfsg-3+deb10u2
+libldap-common	2.4.47+dfsg-3+deb10u2
 libllvm7:arm64	1:7.0.1-8
-liblmdb0:arm64	0.9.22-1
 liblocale-gettext-perl	1.07-3+b4
+liblockfile-bin	1.14-1.1
+liblockfile1:arm64	1.14-1.1
 liblognorm5:arm64	2.0.5-1
 liblsan0:arm64	8.3.0-6
-liblwres161:arm64	1:9.11.5.P4+dfsg-5.1
+libltdl-dev:arm64	2.4.6-9
+libltdl7:arm64	2.4.6-9
 liblz4-1:arm64	1.8.3-1
 liblzma5:arm64	5.2.4-1
-liblzo2-2:arm64	2.10-0.1
 libmagic-mgc	1:5.35-4+deb10u1
 libmagic1:arm64	1:5.35-4+deb10u1
-libmm-glib0:arm64	1.10.0-1
+libmail-sendmail-perl	0.80-1
 libmnl0:arm64	1.0.4-2
 libmount1:arm64	2.33.1-0.1
 libmpc3:arm64	1.1.0-1
@@ -291,45 +219,30 @@
 libmpfr6:arm64	4.0.2-1
 libncurses6:arm64	6.1+20181013-2+deb10u2
 libncursesw6:arm64	6.1+20181013-2+deb10u2
-libndp0:arm64	1.6-1+b1
 libnetfilter-conntrack3:arm64	1.0.7-1
 libnettle6:arm64	3.4.1-1
-libnewt0.52:arm64	0.52.20-8
 libnfnetlink0:arm64	1.0.1-3+b1
+libnftables0:arm64	0.9.0-2
 libnftnl11:arm64	1.1.2-2
 libnghttp2-14:arm64	1.36.0-2+deb10u1
-libnl-3-200:arm64	3.4.0-1
-libnl-3-dev:arm64	3.4.0-1
-libnl-genl-3-200:arm64	3.4.0-1
-libnl-genl-3-dev:arm64	3.4.0-1
-libnl-route-3-200:arm64	3.4.0-1
-libnm0:arm64	1.14.6-2+deb10u1
 libnpth0:arm64	1.6-1
-libnss-myhostname:arm64	241-7~deb10u2
-libntfs-3g883	1:2017.3.23AR.3-3
+libnss-systemd:arm64	241-7~deb10u3
 libopengl0:arm64	1.1.0-1
 libp11-kit0:arm64	0.23.15-2
-libpackagekit-glib2-18:arm64	1.1.12-5
+libpam-cap:arm64	1:2.25-2
 libpam-modules:arm64	1.3.1-5
 libpam-modules-bin	1.3.1-5
 libpam-runtime	1.3.1-5
-libpam-systemd:arm64	241-7~deb10u2
+libpam-systemd:arm64	241-7~deb10u3
 libpam0g:arm64	1.3.1-5
-libparted2:arm64	3.2-25
-libpci3:arm64	1:3.5.2-1
 libpcre2-8-0:arm64	10.32-5
 libpcre3:arm64	2:8.39-12
-libpcsclite1:arm64	1.8.24-1
 libperl5.28:arm64	5.28.1-6
 libpipeline1:arm64	1.5.1-2
-libpng16-16:arm64	1.6.36-6
-libpolkit-agent-1-0:arm64	0.105-25
-libpolkit-backend-1-0:arm64	0.105-25
-libpolkit-gobject-1-0:arm64	0.105-25
 libpopt0:arm64	1.16-12
-libproc-processtable-perl	0.56-1
 libprocps7:arm64	2:3.3.15-2
-libprotobuf-c1:arm64	1.3.1-1+b1
+libprotobuf-dev:arm64	3.6.1.3-2
+libprotobuf-lite17:arm64	3.6.1.3-2
 libprotobuf17:arm64	3.6.1.3-2
 libprotoc17:arm64	3.6.1.3-2
 libpsl5:arm64	0.20.2-2
@@ -338,18 +251,18 @@
 libpython2-stdlib:arm64	2.7.16-1
 libpython2.7-minimal:arm64	2.7.16-2+deb10u1
 libpython2.7-stdlib:arm64	2.7.16-2+deb10u1
+libpython3-dev:arm64	3.7.3-1
 libpython3-stdlib:arm64	3.7.3-1
-libpython3.7-minimal:arm64	3.7.3-2
-libpython3.7-stdlib:arm64	3.7.3-2
-libqrencode4:arm64	4.0.2-1
+libpython3.7:arm64	3.7.3-2+deb10u1
+libpython3.7-dev:arm64	3.7.3-2+deb10u1
+libpython3.7-minimal:arm64	3.7.3-2+deb10u1
+libpython3.7-stdlib:arm64	3.7.3-2+deb10u1
 libreadline7:arm64	7.0-5
-libregexp-assemble-perl	0.36-1
 librhash0:arm64	1.3.8-1
 librtmp1:arm64	2.4+20151223.gitfa8646d.1-2
-libsamplerate0:arm64	0.1.9-2
 libsasl2-2:arm64	2.1.27+dfsg-1+deb10u1
+libsasl2-modules:arm64	2.1.27+dfsg-1+deb10u1
 libsasl2-modules-db:arm64	2.1.27+dfsg-1+deb10u1
-libsctp1:arm64	1.0.18+dfsg-1
 libseccomp2:arm64	2.3.3-4
 libselinux1:arm64	2.8-1+b1
 libsemanage-common	2.8-2
@@ -357,32 +270,29 @@
 libsensors-config	1:3.5.0-3
 libsensors5:arm64	1:3.5.0-3
 libsepol1:arm64	2.8-1
-libsigc++-2.0-0v5:arm64	2.10.1-2
 libsigsegv2:arm64	2.12-2
-libslang2:arm64	2.3.2-2
 libsmartcols1:arm64	2.33.1-0.1
 libsqlite3-0:arm64	3.27.2-3
-libss2:arm64	1.44.5-1+deb10u2
+libss2:arm64	1.44.5-1+deb10u3
 libssh2-1:arm64	1.8.0-2.1
-libssl-dev:arm64	1.1.1d-0+deb10u2
-libssl1.1:arm64	1.1.1d-0+deb10u2
+libssl-dev:arm64	1.1.1d-0+deb10u3
+libssl1.1:arm64	1.1.1d-0+deb10u3
 libstdc++-8-dev:arm64	8.3.0-6
 libstdc++6:arm64	8.3.0-6
-libsysfs2:arm64	2.1.0+repack-5
-libsystemd0:arm64	241-7~deb10u2
+libsys-hostname-long-perl	1.5-1
+libsystemd0:arm64	241-7~deb10u3
 libtasn1-6:arm64	4.13-3
-libtcl8.6:arm64	8.6.9+dfsg-2
-libteamdctl0:arm64	1.28-1
 libtinfo6:arm64	6.1+20181013-2+deb10u2
 libtool	2.4.6-9
 libtsan0:arm64	8.3.0-6
 libubsan1:arm64	8.3.0-6
 libuchardet0:arm64	0.0.6-3
-libudev1:arm64	241-7~deb10u2
+libudev1:arm64	241-7~deb10u3
+libunbound8:arm64	1.9.0-2+deb10u1
 libunistring2:arm64	0.9.10-1
 libusb-1.0-0:arm64	2:1.0.22-2
 libusb-1.0-0-dev:arm64	2:1.0.22-2
-libutempter0:arm64	1.1.6-3
+libusb-1.0-doc	2:1.0.22-2
 libuuid1:arm64	2.33.1-0.1
 libuv1:arm64	1.24.1-1
 libwayland-bin	1.16.0-1
@@ -392,13 +302,11 @@
 libwayland-egl1:arm64	1.16.0-1
 libwayland-server0:arm64	1.16.0-1
 libwrap0:arm64	7.6.q-28
-libwrap0-dev:arm64	7.6.q-28
 libx11-6:arm64	2:1.6.7-1
 libx11-data	2:1.6.7-1
 libx11-dev:arm64	2:1.6.7-1
 libx11-xcb-dev:arm64	2:1.6.7-1
 libx11-xcb1:arm64	2:1.6.7-1
-libxapian30:arm64	1.4.11-1
 libxau-dev:arm64	1:1.0.8-1+b2
 libxau6:arm64	1:1.0.8-1+b2
 libxcb-dri2-0:arm64	1.13.1-2
@@ -430,65 +338,51 @@
 libxfixes-dev:arm64	1:5.0.3-1
 libxfixes3:arm64	1:5.0.3-1
 libxml2:arm64	2.9.4+dfsg1-7+b3
+libxmuu1:arm64	2:1.1.2-2+b3
 libxshmfence-dev:arm64	1.3-1
 libxshmfence1:arm64	1.3-1
 libxtables12:arm64	1.8.2-4
 libxxf86vm-dev:arm64	1:1.1.4-1+b2
 libxxf86vm1:arm64	1:1.1.4-1+b2
 libzstd1:arm64	1.3.8+dfsg-3
-linux-base	4.6
-linux-buster-root-current-rockpi-4b	20.02.0-rc0
-linux-dtb-current-rockchip64	20.02.0-rc0
-linux-image-current-rockchip64	19.11.9
-linux-libc-dev:arm64	4.19.67-2+deb10u2
-linux-u-boot-rockpi-4b-current	20.02.0-rc0
-locales	2.28-10
+linux-libc-dev:arm64	4.19.98-1+deb10u1
 login	1:4.5-1.1
 logrotate	3.14.0-4
 lsb-base	10.2019051400
-lsb-release	10.2019051400
-lsof	4.91+dfsg-1
 m4	1.4.18-2
 make	4.2.1-1.2
 man-db	2.8.5-2
+manpages	4.16-2
+manpages-dev	4.16-2
 mawk	1.3.3-17+b3
-mesa-common-dev:arm64	18.3.6-2
+mesa-common-dev:arm64	18.3.6-2+deb10u1
 mime-support	3.62
-mmc-utils	0+git20180327.b4fe0c8c-1
 mount	2.33.1-0.1
-nano	3.2-3
 nasm	2.14-1
 ncurses-base	6.1+20181013-2+deb10u2
 ncurses-bin	6.1+20181013-2+deb10u2
 ncurses-term	6.1+20181013-2+deb10u2
 net-tools	1.60+git20180626.aebd88e-1
 netbase	5.6
-netcat-openbsd	1.195-2
-network-manager	1.14.6-2+deb10u1
-networkd-dispatcher	2.0-2
+nftables	0.9.0-2
 ninja-build	1.8.2-1
-nocache	1.1-1
-ntfs-3g	1:2017.3.23AR.3-3
-openssh-client	1:7.9p1-10+deb10u1
-openssh-server	1:7.9p1-10+deb10u1
-openssh-sftp-server	1:7.9p1-10+deb10u1
-openssl	1.1.1d-0+deb10u2
-parted	3.2-25
+openssh-client	1:7.9p1-10+deb10u2
+openssh-server	1:7.9p1-10+deb10u2
+openssh-sftp-server	1:7.9p1-10+deb10u2
+openssl	1.1.1d-0+deb10u3
 passwd	1:4.5-1.1
 patch	2.7.6-3+deb10u1
-pciutils	1:3.5.2-1
 perl	5.28.1-6
 perl-base	5.28.1-6
 perl-modules-5.28	5.28.1-6
 pinentry-curses	1.1.0-2
 pkg-config	0.29-6
-policykit-1	0.105-25
+po-debconf	1.0.21
 procps	2:3.3.15-2
 protobuf-compiler	3.6.1.3-2
 psmisc	23.2-1
-pv	1.6.6-1
+publicsuffix	20190415.1030-1
 python	2.7.16-1
-python-apt-common	1.8.4
 python-minimal	2.7.16-1
 python-pip-whl	18.1-5
 python2	2.7.16-1
@@ -496,73 +390,53 @@
 python2.7	2.7.16-2+deb10u1
 python2.7-minimal	2.7.16-2+deb10u1
 python3	3.7.3-1
-python3-apt	1.8.4
+python3-asn1crypto	0.24.0-1
+python3-cffi-backend	1.12.2-1
+python3-crypto	2.6.1-9+b1
+python3-cryptography	2.6.1-3+deb10u2
 python3-dbus	1.2.8-3
-python3-distro-info	0.21
+python3-dev	3.7.3-1
 python3-distutils	3.7.3-1
+python3-entrypoints	0.3-1
 python3-gi	3.30.4-1
+python3-keyring	17.1.1-1
+python3-keyrings.alt	3.1.1-1
 python3-lib2to3	3.7.3-1
 python3-minimal	3.7.3-1
 python3-pip	18.1-5
-python3-pycurl	7.43.0.2-0.1
-python3-software-properties	0.96.20.2-2
-python3.7	3.7.3-2
-python3.7-minimal	3.7.3-2
-qemu-user-static	1:3.1+dfsg-8+deb10u3
-qrencode	4.0.2-1
+python3-pkg-resources	40.8.0-1
+python3-secretstorage	2.3.1-2
+python3-setuptools	40.8.0-1
+python3-six	1.12.0-1
+python3-wheel	0.32.3-2
+python3-xdg	0.25-5
+python3.7	3.7.3-2+deb10u1
+python3.7-dev	3.7.3-2+deb10u1
+python3.7-minimal	3.7.3-2+deb10u1
 readline-common	7.0-5
-resolvconf	1.79
-rfkill	2.33.1-0.1
-rng-tools	2-unofficial-mt.14-1+b2
-rsync	3.1.3-6
 rsyslog	8.1901.0-1
-screen	4.6.2-3
 sed	4.7-1
 sensible-utils	0.0.12
-software-properties-common	0.96.20.2-2
-stress	1.0.4-4
-sudo	1.8.27-1+deb10u1
-sunxi-tools	1.4.2+git20181114.6d598a-3
-sysfsutils	2.1.0+repack-5
-sysstat	12.0.3-2
-systemd	241-7~deb10u2
-systemd-sysv	241-7~deb10u2
+shared-mime-info	1.10-1
+sudo	1.8.27-1+deb10u2
+systemd	241-7~deb10u3
+systemd-sysv	241-7~deb10u3
 sysvinit-utils	2.93-8
 tar	1.30+dfsg-6
-tcl-expect:arm64	5.45.4-2
-tcl8.6	8.6.9+dfsg-2
-toilet	0.3-1.2
-toilet-fonts	0.3-1.2
 tzdata	2019c-0+deb10u1
-u-boot-tools	2019.01+dfsg-7
 ucf	3.0038+nmu1
-udev	241-7~deb10u2
-unattended-upgrades	1.11.2
-unicode-data	12.1.0~pre1-2
-unzip	6.0-23+deb10u1
-usb.ids	2019.07.27-0+deb10u1
-usbutils	1:010-3
 util-linux	2.33.1-0.1
-vim	2:8.1.0875-5
-vim-common	2:8.1.0875-5
-vim-runtime	2:8.1.0875-5
-vlan	2.0.5
-wget	1.20.1-1.1
-whiptail	0.52.20-8
-wireguard-tools	0.0.20191219-1
-wireless-regdb	2016.06.10-1
-wireless-tools	30~pre9-13
-wpasupplicant	2:2.7+git20190128+0c1e29f-6+deb10u1
 x11proto-core-dev	2018.4-4
 x11proto-damage-dev	1:2018.4-4
 x11proto-dev	2018.4-4
 x11proto-fixes-dev	1:2018.4-4
 x11proto-xext-dev	2018.4-4
 x11proto-xf86vidmode-dev	2018.4-4
-xkb-data	2.26-2
+xauth	1:1.0.10-1
+xdg-user-dirs	0.17-2
 xorg-sgml-doctools	1:1.11-1
 xtrans-dev	1.3.5-1
 xutils-dev	1:7.7+5+b1
-xxd	2:8.1.0875-5
 xz-utils	5.2.4-1
 zlib1g:arm64	1:1.2.11.dfsg-1
+zlib1g-dev:arm64	1:1.2.11.dfsg-1
diff --git a/aarch64-linux-gnu/cargo_version.txt b/aarch64-linux-gnu/cargo_version.txt
index 462d11c..7b6756a 100644
--- a/aarch64-linux-gnu/cargo_version.txt
+++ b/aarch64-linux-gnu/cargo_version.txt
@@ -1,4 +1,4 @@
-cargo 1.41.0 (626f0f40e 2019-12-03)
-release: 1.41.0
-commit-hash: 626f0f40efd32e6b3dbade50cd53fdfaa08446ba
-commit-date: 2019-12-03
+cargo 1.43.0 (3532cf738 2020-03-17)
+release: 1.43.0
+commit-hash: 3532cf738db005a56d1fe81ade514f380d411360
+commit-date: 2020-03-17
diff --git a/aarch64-linux-gnu/etc/seccomp/9p_device.policy b/aarch64-linux-gnu/etc/seccomp/9p_device.policy
new file mode 100644
index 0000000..4ad268f
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/9p_device.policy
@@ -0,0 +1,64 @@
+# Copyright 2019 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.
+
+openat: 1
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+pread64: 1
+pwrite64: 1
+statx: 1
+fstat: 1
+ioctl: arg1 == FIOCLEX
+getdents64: 1
+fdatasync: 1
+fsync: 1
+mkdirat: 1
+renameat: 1
+linkat: 1
+unlinkat: 1
+socket: arg0 == AF_UNIX
+utimensat: 1
+ftruncate: 1
+fchown: arg1 == 0xffffffff && arg2 == 0xffffffff
+statfs: 1
+newfstatat: 1
diff --git a/aarch64-linux-gnu/etc/seccomp/balloon_device.policy b/aarch64-linux-gnu/etc/seccomp/balloon_device.policy
new file mode 100644
index 0000000..450b96a
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/balloon_device.policy
@@ -0,0 +1,45 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/block_device.policy b/aarch64-linux-gnu/etc/seccomp/block_device.policy
new file mode 100644
index 0000000..22fb1e2
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/block_device.policy
@@ -0,0 +1,57 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+fallocate: 1
+fdatasync: 1
+fstat: 1
+fsync: 1
+ftruncate: 1
+lseek: 1
+openat: return ENOENT
+preadv: 1
+pwritev: 1
+statx: 1
+timerfd_create: 1
+timerfd_gettime: 1
+timerfd_settime: 1
diff --git a/aarch64-linux-gnu/etc/seccomp/common_device.policy b/aarch64-linux-gnu/etc/seccomp/common_device.policy
new file mode 100644
index 0000000..93b01f1
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/common_device.policy
@@ -0,0 +1,43 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
diff --git a/aarch64-linux-gnu/etc/seccomp/cras_audio_device.policy b/aarch64-linux-gnu/etc/seccomp/cras_audio_device.policy
new file mode 100644
index 0000000..577e7c4
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/cras_audio_device.policy
@@ -0,0 +1,51 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+madvise: 1
+prlimit64: 1
+setrlimit: 1
+sched_setscheduler: 1
+socketpair: arg0 == AF_UNIX
+clock_gettime: 1
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/fs_device.policy b/aarch64-linux-gnu/etc/seccomp/fs_device.policy
new file mode 100644
index 0000000..70f06f4
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/fs_device.policy
@@ -0,0 +1,75 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+copy_file_range: 1
+fallocate: 1
+fchmodat: 1
+fchownat: 1
+fdatasync: 1
+lgetxattr: 1
+lsetxattr: 1
+llistxattr: 1
+lremovexattr: 1
+fsync: 1
+newfstatat: 1
+fstatfs: 1
+ftruncate: 1
+getdents64: 1
+getegid: 1
+geteuid: 1
+linkat: 1
+lseek: 1
+mkdirat: 1
+mknodat: 1
+openat: 1
+preadv: 1
+pwritev: 1
+readlinkat: 1
+renameat2: 1
+setresgid: 1
+setresuid: 1
+symlinkat: 1
+umask: 1
+unlinkat: 1
+utimensat: 1
diff --git a/aarch64-linux-gnu/etc/seccomp/gpu_device.policy b/aarch64-linux-gnu/etc/seccomp/gpu_device.policy
new file mode 100644
index 0000000..3eaae05
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/gpu_device.policy
@@ -0,0 +1,72 @@
+# Copyright 2019 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.
+
+# Rules from common_device.policy with some rules removed because they block certain flags needed
+# for gpu.
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+## Rules specific to gpu
+connect: 1
+getrandom: 1
+socket: arg0 == 1 && arg1 == 0x80001 && arg2 == 0
+lseek: 1
+ftruncate: 1
+statx: 1
+fstat: 1
+newfstatat: 1
+getdents64: 1
+sysinfo: 1
+
+# 0x6400 == DRM_IOCTL_BASE, 0x8000 = KBASE_IOCTL_TYPE (mali)
+ioctl: arg1 & 0x6400 || arg1 & 0x8000
+
+## mmap/mprotect differ from the common_device.policy
+mmap: arg2 == PROT_READ|PROT_WRITE || arg2 == PROT_NONE || arg2 == PROT_READ|PROT_EXEC || arg2 == PROT_WRITE || arg2 == PROT_READ
+mprotect: arg2 == PROT_READ|PROT_WRITE || arg2 == PROT_NONE || arg2 == PROT_READ
+openat: 1
+
+## Rules specific to pvr
+geteuid: 1
+getuid: 1
+readlinkat: 1
+gettid: 1
+fcntl: 1
+tgkill: 1
+clock_gettime: 1
diff --git a/aarch64-linux-gnu/etc/seccomp/input_device.policy b/aarch64-linux-gnu/etc/seccomp/input_device.policy
new file mode 100644
index 0000000..bf02662
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/input_device.policy
@@ -0,0 +1,48 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+ioctl: 1
+fcntl: 1
+getsockname: 1
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/net_device.policy b/aarch64-linux-gnu/etc/seccomp/net_device.policy
new file mode 100644
index 0000000..a7c4309
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/net_device.policy
@@ -0,0 +1,47 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# TUNSETOFFLOAD
+ioctl: arg1 == 0x400454d0
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/null_audio_device.policy b/aarch64-linux-gnu/etc/seccomp/null_audio_device.policy
new file mode 100644
index 0000000..8472de7
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/null_audio_device.policy
@@ -0,0 +1,49 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+madvise: 1
+prlimit64: 1
+setrlimit: 1
+clock_gettime: 1
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/pmem_device.policy b/aarch64-linux-gnu/etc/seccomp/pmem_device.policy
new file mode 100644
index 0000000..bb9511c
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/pmem_device.policy
@@ -0,0 +1,47 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+fdatasync: 1
+fsync: 1
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/rng_device.policy b/aarch64-linux-gnu/etc/seccomp/rng_device.policy
new file mode 100644
index 0000000..450b96a
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/rng_device.policy
@@ -0,0 +1,45 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/serial.policy b/aarch64-linux-gnu/etc/seccomp/serial.policy
new file mode 100644
index 0000000..450b96a
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/serial.policy
@@ -0,0 +1,45 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/tpm_device.policy b/aarch64-linux-gnu/etc/seccomp/tpm_device.policy
new file mode 100644
index 0000000..b9bad2e
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/tpm_device.policy
@@ -0,0 +1,53 @@
+# Copyright 2019 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.
+
+# common policy
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+
+# tpm-specific policy
+chdir: 1
+fstat: 1
+fsync: 1
+ftruncate: 1
+getuid: 1
+lseek: 1
+mkdirat: 1
+openat: 1
+socket: return EACCES
+statx: 1
diff --git a/aarch64-linux-gnu/etc/seccomp/vhost_net_device.policy b/aarch64-linux-gnu/etc/seccomp/vhost_net_device.policy
new file mode 100644
index 0000000..7b84b44
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/vhost_net_device.policy
@@ -0,0 +1,62 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Whitelist vhost_net ioctls only.
+# arg1 == VHOST_GET_FEATURES ||
+# arg1 == VHOST_SET_FEATURES ||
+# arg1 == VHOST_SET_OWNER ||
+# arg1 == VHOST_RESET_OWNER ||
+# arg1 == VHOST_SET_MEM_TABLE ||
+# arg1 == VHOST_SET_LOG_BASE ||
+# arg1 == VHOST_SET_LOG_FD ||
+# arg1 == VHOST_SET_VRING_NUM ||
+# arg1 == VHOST_SET_VRING_ADDR ||
+# arg1 == VHOST_SET_VRING_BASE ||
+# arg1 == VHOST_GET_VRING_BASE ||
+# arg1 == VHOST_SET_VRING_KICK ||
+# arg1 == VHOST_SET_VRING_CALL ||
+# arg1 == VHOST_SET_VRING_ERR ||
+# arg1 == VHOST_NET_SET_BACKEND
+ioctl: arg1 == 0x8008af00 || arg1 == 0x4008af00 || arg1 == 0x0000af01 || arg1 == 0x0000af02 || arg1 == 0x4008af03 || arg1 == 0x4008af04 || arg1 == 0x4004af07 || arg1 == 0x4008af10 || arg1 == 0x4028af11 || arg1 == 0x4008af12 || arg1 == 0xc008af12 || arg1 == 0x4008af20 || arg1 == 0x4008af21 || arg1 == 0x4008af22 || arg1 == 0x4008af30
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/vhost_vsock_device.policy b/aarch64-linux-gnu/etc/seccomp/vhost_vsock_device.policy
new file mode 100644
index 0000000..49be763
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/vhost_vsock_device.policy
@@ -0,0 +1,63 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Whitelist vhost_vsock ioctls only.
+# arg1 == VHOST_GET_FEATURES ||
+# arg1 == VHOST_SET_FEATURES ||
+# arg1 == VHOST_SET_OWNER ||
+# arg1 == VHOST_RESET_OWNER ||
+# arg1 == VHOST_SET_MEM_TABLE ||
+# arg1 == VHOST_SET_LOG_BASE ||
+# arg1 == VHOST_SET_LOG_FD ||
+# arg1 == VHOST_SET_VRING_NUM ||
+# arg1 == VHOST_SET_VRING_ADDR ||
+# arg1 == VHOST_SET_VRING_BASE ||
+# arg1 == VHOST_GET_VRING_BASE ||
+# arg1 == VHOST_SET_VRING_KICK ||
+# arg1 == VHOST_SET_VRING_CALL ||
+# arg1 == VHOST_SET_VRING_ERR ||
+# arg1 == VHOST_VSOCK_SET_GUEST_CID ||
+# arg1 == VHOST_VSOCK_SET_RUNNING
+ioctl: arg1 == 0x8008af00 || arg1 == 0x4008af00 || arg1 == 0x0000af01 || arg1 == 0x0000af02 || arg1 == 0x4008af03 || arg1 == 0x4008af04 || arg1 == 0x4004af07 || arg1 == 0x4008af10 || arg1 == 0x4028af11 || arg1 == 0x4008af12 || arg1 == 0xc008af12 || arg1 == 0x4008af20 || arg1 == 0x4008af21 || arg1 == 0x4008af22 || arg1 == 0x4008af60 || arg1 == 0x4004af61
+openat: return ENOENT
diff --git a/aarch64-linux-gnu/etc/seccomp/wl_device.policy b/aarch64-linux-gnu/etc/seccomp/wl_device.policy
new file mode 100644
index 0000000..46ef117
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/wl_device.policy
@@ -0,0 +1,58 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Used to connect to wayland. arg0 == AF_UNIX && arg1 == SOCK_STREAM|SOCK_CLOEXEC
+socket: arg0 == 1 && arg1 == 0x80001 && arg2 == 0
+# arg1 == FIONBIO || arg1 == DMA_BUF_IOCTL_SYNC
+ioctl: arg1 == 0x5421 || arg1 == 0x40086200
+connect: 1
+openat: return ENOENT
+# Used for sharing memory with wayland. arg1 == MFD_CLOEXEC|MFD_ALLOW_SEALING
+memfd_create: arg1 == 3
+# Used to set of size new memfd
+ftruncate: 1
+# Used to determine shm size after recvmsg with fd
+lseek: 1
+# Allow F_GETFL only
+fcntl: arg1 == 3
diff --git a/aarch64-linux-gnu/etc/seccomp/xhci.policy b/aarch64-linux-gnu/etc/seccomp/xhci.policy
new file mode 100644
index 0000000..a2b9d6c
--- /dev/null
+++ b/aarch64-linux-gnu/etc/seccomp/xhci.policy
@@ -0,0 +1,76 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup3: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_pwait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+statx: 1
+readlinkat: 1
+getdents64: 1
+name_to_handle_at: 1
+faccessat: 1
+gettid: 1
+clock_gettime: 1
+timerfd_create: 1
+getsockname: 1
+openat: 1
+setsockopt: 1
+bind: 1
+fcntl: 1
+socket: arg0 == AF_NETLINK
+uname: 1
+# The following ioctls are:
+# 0x4004550d == USBDEVFS_REAPURBNDELAY32
+# 0x550b == USBDEVFS_DISCARDURB
+# 0x8004550f == USBDEVFS_CLAIMINTERFACE
+# 0x80045510 == USBDEVFS_RELEASEINTERFACE
+# 0x8004551a == USBDEVFS_GET_CAPABILITIES
+# 0x802c550a == USBDEVFS_SUBMITURB
+# 0xc0105500 == USBDEVFS_CONTROL
+# 0x5514 == USBDEVFS_RESET
+# 0x80045505 == USBDEVFS_SETCONFIGURATION
+# 0x8108551b == USBDEVFS_DISCONNECT_CLAIM
+# 0x40085511 == USBDEVFS_CONNECTINFO
+# 0x80185520 == USBDEVFS_CONNINFO_EX
+ioctl: arg1 == 0xc0105500 || arg1 == 0x802c550a || arg1 == 0x8004551a || arg1 == 0x4004550d || arg1 == 0x8004550f || arg1 == 0x80045510 || arg1 == 0x550b || arg1 == 0x5514 || arg1 == 0x80045505 || arg1 == 0x8108551b || arg1 == 0x40085511 || arg1 == 0x80185520
+fstat: 1
+getrandom: 1
+lseek: 1
diff --git a/aarch64-linux-gnu/manifest.xml b/aarch64-linux-gnu/manifest.xml
index 0827c8c..f3da2ef 100644
--- a/aarch64-linux-gnu/manifest.xml
+++ b/aarch64-linux-gnu/manifest.xml
@@ -2,15 +2,15 @@
 <manifest>
   <remote fetch=".." name="aosp" review="https://android-review.googlesource.com/"/>
   
-  <default remote="aosp" revision="crosvm-master" sync-j="4"/>
+  <default remote="aosp" revision="master" sync-j="4"/>
   
   <manifest-server url="http://android-smartsync.corp.google.com/android.googlesource.com/manifestserver"/>
   
-  <project groups="pdk" name="platform/external/adhd" path="third_party/adhd" revision="e65070b653154252b7c66ec983c8df842f932f77" upstream="crosvm-master"/>
-  <project groups="pdk" name="platform/external/crosvm" path="platform/crosvm" revision="827f1192f97f815b3ba5666834b7b5bf6f94dcc6" upstream="crosvm-master"/>
+  <project groups="pdk" name="platform/external/adhd" path="external/adhd" revision="2e5b55c9a2bf11058945639ff8ddd513871c9a97" upstream="master"/>
+  <project groups="pdk" name="platform/external/crosvm" path="platform/crosvm" revision="f43fc1b31001569d43b3c4e5cd6c54b70a490add" upstream="master"/>
   <project groups="pdk" name="platform/external/libepoxy" path="third_party/libepoxy" revision="199985a9b74aa5610a2ce75be2997e7a272dd9fe" upstream="crosvm-master"/>
   <project groups="pdk" name="platform/external/minigbm" path="third_party/minigbm" revision="82e37a6c196d089140bf71a83dc0f6042d22ffd2" upstream="crosvm-master"/>
-  <project groups="pdk" name="platform/external/minijail" path="third_party/minijail" revision="52f6adabb6f44761cc23a226cc396bd5c664641c" upstream="crosvm-master"/>
+  <project groups="pdk" name="platform/external/minijail" path="external/minijail" revision="2f2c20780cf7bbfe92657829cdae5a76cc4cb0c0" upstream="master"/>
   <project groups="pdk" name="platform/external/virglrenderer" path="third_party/virglrenderer" revision="be6ae27bc7901566619edb05ab1fb34a76ebf44f" upstream="crosvm-master"/>
   <project groups="adt-infra,cts,developers,motodev,pdk,tools,tradefed" name="platform/tools/repohooks" path="tools/repohooks" revision="8eb7cd76622697f630a52cfcaf14a4971be21e38" upstream="crosvm-master"/>
   
diff --git a/aarch64-linux-gnu/rustup_show.txt b/aarch64-linux-gnu/rustup_show.txt
index 7e4cce1..730d487 100644
--- a/aarch64-linux-gnu/rustup_show.txt
+++ b/aarch64-linux-gnu/rustup_show.txt
@@ -1,4 +1,4 @@
 Default host: aarch64-unknown-linux-gnu
 
-stable-aarch64-unknown-linux-gnu (overridden by '/home/cf/source/platform/crosvm/rust-toolchain')
-rustc 1.41.0 (5e1a79984 2020-01-27)
+stable-aarch64-unknown-linux-gnu (overridden by '/source/platform/crosvm/rust-toolchain')
+rustc 1.43.0 (4fb7144ed 2020-04-20)
diff --git a/gen_android_bp.sh b/gen_android_bp.sh
index 931a731..af5b274 100755
--- a/gen_android_bp.sh
+++ b/gen_android_bp.sh
@@ -1,45 +1,193 @@
 #!/bin/bash
+#
+# This script must be run in the location of the script!
+#
+# This script generates Android.bp files for this and all subdirs of this
+#
+DIR="${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm"
+
+function remove_trailing_slash {
+  if [[ $1 == "/" ]]; then
+    echo $i
+  else
+    echo ${1%/}
+  fi
+}
+
+set -o errexit
+
+function check_location() {
+  local my_loc="$(realpath ${DIR})"
+  my_loc=$(remove_trailing_slash ${my_loc})
+
+  local my_pwd="$(realpath $PWD)"
+  my_pwd="$(remove_trailing_slash ${my_pwd})"
+  if [[ "${my_loc}" != "${my_pwd}" ]]; then
+    echo ${my_loc}
+    echo ${my_pwd}
+    >&2 echo "the script location must be run where the script is located"
+    exit 10
+  fi
+}
+
+my_name=`basename $0`
+seccomp_archs=("x86_64" "aarch64")
+# under get_arch_dir() in cuttlefish_vmm, where is seccomp?
+subdir="etc/seccomp"
+
+# define arch dir pattern: e.g. ${ARCH}-linux-gnu
+function get_arch_dir() {
+  local suffix="-linux-gnu"
+  local arch=$1
+  echo ${arch}${suffix}
+}
+
+# take arch, return the path of the output Android.bp file
+function get_output_file() {
+  local blueprint_dir=$1
+  blueprint_dir="$(remove_trailing_slash ${blueprint_dir})"
+  echo "${blueprint_dir}/Android.bp"
+}
+
+# utility function to enumerate policy files
+#
+# 1: seccomp dir to scan
+function scan_policy_name() {
+  local seccomp_dir=$1
+  (
+    # pushd but no output to stdout/stderr
+    # the output is taken and used by the caller
+    pushd $seccomp_dir > /dev/null 2>&1
+    ls -1
+    popd > /dev/null 2>&1
+  )
+}
+
+# starting from old Android.bp
+function gen_license() {
+  local year=${1:-"2019"}
+cat <<EOF
+// Autogenerated via ${my_name}
+//
+// Copyright (C) ${year} The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+EOF
+}
+
+#
+# first two args are module type (e.g. prebuilt_usr_share_host)
+# and the whitespaces for indentation
+#
+# the rest must be in this form:
+#  --name=value
+#
+# then, it simply generates this line repeatedly:
+# <indent>name: value,
+#
+# e.g. --name="\"foo\"" will generate
+#   name: "foo",
+#
+function gen_module() {
+  local mod_name=$1  # e.g. prebuilt_usr_share_host
+  local indent="$2"
+  shift 2
+  local long_options=()
+  local long_opt=""
+  local OPTIND=1
+  while getopts ":-:" op; do
+    # a long opt like --srcs="some" is actually:
+    # - + - + "srcs=some"
+    # that's a short option '-' just like h, and
+    # the OPTARGS of the option '-' is srcs=some 
+    if [[ "$op" != "-" ]]; then
+      >&2 echo "gen_module does take long options with = only"
+      exit 8
+    fi
+    long_op="${OPTARG%%=*}"
+    OPTARG="${OPTARG#$long_op}"
+    OPTARG="${OPTARG#=}"
+    long_options+=( "$long_op" )
+    declare local ${long_op}="${OPTARG}"
+  done
+
+  echo "$mod_name {"
+  for field in "${long_options[@]}"; do
+    eval local value=\$$field
+    echo "${indent}${field}: ${value},"
+  done
+  echo "}"
+}
+
+function gen_android_bp4seccomp() {
+  local arch="$1"
+  local arch_dir="$(get_arch_dir ${arch})"
+  local seccomp_dir="${arch_dir}/${subdir}"
+  local where_in_etc_on_user_machine="cuttlefish/${arch_dir}/seccomp"
+  gen_license 2019
+  for i in $(scan_policy_name $seccomp_dir); do
+    # first two are: e.g. prebuilt_usr_share_host and whitespace for intentation
+    local base_name="$(basename $i)"
+    gen_module "prebuilt_usr_share_host" '  ' \
+      --name="\"${base_name}_at_${arch}\"" \
+      --src="\"${subdir}/${base_name}\"" \
+      --filename="\"${base_name}\"" \
+      --sub_dir="\"${where_in_etc_on_user_machine}\""
+  done
+}
+
+function gen_main_android_bp() {
+  gen_license 2019
+
+  gen_module "cc_prebuilt_binary" '  ' \
+    --name="\"common_crosvm\"" \
+    --stem="\"crosvm"\" \
+    --srcs="[\"scripts/crosvm\"]" \
+    --defaults="[\"cuttlefish_host_only\"]"
+
+  cat <<EOF
+// NOTE: Using cc_prebuilt_binary because cc_prebuilt_library can't handle stem on pie
+
+EOF
 
 for i in */bin/*; do
-  if [[ ! -L "$i" ]]
-  then
+  if [[ ! -L "$i" ]]; then
     name="${i//\//_}"
     name="${name//-/_}"
     name="${name/_bin_/_}"
     path="$(dirname $(dirname "$i"))"
     stem="$(basename "$i")"
-    cat <<EOF
-cc_prebuilt_binary {
-  name: "${name}",
-  srcs: ["${i}"],
-  stem: "${stem}",
-  relative_install_path: "${path}",
-  defaults: ["cuttlefish_host_only"],
-}
 
-EOF
+    if [[ "crosvm" != "${stem}" ]]; then
+      name="${name}_for_crosvm"
+    fi
+
+    gen_module "cc_prebuilt_binary" '  ' \
+    --name="\"${name}\"" \
+    --srcs="[\"$i\"]" \
+    --stem="\"$stem"\" \
+    --relative_install_path="\"${path}\"" \
+    --defaults="[\"cuttlefish_host_only\"]"
   fi
 done
-
-for i in */lib/*; do
-  if [[ ! -L "$i" ]]
-  then
-    name="${i//\//_}"
-    name="${name//-/_}"
-    name="${name/_lib_/_}"
-    name="${name}_for_crosvm"
-    path="$(dirname $(dirname "$i"))"
-    stem="$(basename "$i")"
-    cat <<EOF
-// Using cc_prebuilt_binary because cc_prebuild_library can't handle stem on pie
-cc_prebuilt_binary {
-  name: "${name}",
-  srcs: ["${i}"],
-  stem: "${stem}",
-  relative_install_path: "${path}",
-  defaults: ["cuttlefish_host_only"],
 }
 
-EOF
-  fi
+# main
+check_location
+gen_main_android_bp > $(get_output_file ${DIR})
+for arch in ${seccomp_archs[@]}; do
+  arch_dir=$(get_arch_dir ${arch})
+  outfile="$(get_output_file ${arch_dir})"
+  gen_android_bp4seccomp $arch > $outfile
 done
diff --git a/generate-gfxstream-manifest.sh b/generate-gfxstream-manifest.sh
new file mode 100755
index 0000000..5d1da95
--- /dev/null
+++ b/generate-gfxstream-manifest.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# Copyright 2020 - The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the',  help='License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an',  help='AS IS' BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Modifies an input manifest.xml (such as x86_64-linux-gnu/manifest.xml)
+# to point to a particular Android build id of gfxstream
+
+BUILD_ID=$1
+INPUT_MANIFEST=$2
+
+/google/data/ro/projects/android/fetch_artifact \
+    --bid ${BUILD_ID} \
+    --target gfxstream_sdk_tools_linux "manifest_${BUILD_ID}.xml"
+
+# Check the output and use it to replace the INPUT_MANIFEST
+python update-manifest-gfxstream.py \
+    manifest_${BUILD_ID}.xml \
+    ${INPUT_MANIFEST}
diff --git a/policy-inliner.sh b/policy-inliner.sh
new file mode 100755
index 0000000..9c57a9c
--- /dev/null
+++ b/policy-inliner.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+
+function is_policy_file() {
+  [[ "${1##*.}" == "policy" ]] && return 0
+  return 1
+}
+
+function inline() {
+  #
+  # assumptions are:
+  #  1. policy files may include "/usr/share/policy/crosvm/common_device.policy"
+  #  2. we replace the line with the contents of the file
+  #
+  # this aspect of crosvm may change
+  #
+  input="$1"
+  output="$2"
+  contents="$3"
+
+  if ! [[ -f $contents ]]; then
+    echo "the contents file in $0 is not a file or does not exist."
+    exit 14
+  fi
+
+  # clean up the outfile
+  cat /dev/null > $output
+  while IFS= read -r line
+  do
+    if echo "$line" | egrep "@include[[:space:]]+/usr/share/policy/crosvm/common_device.policy" > /dev/null; then
+      cat $contents | egrep "^[a-zA-Z0-9_-]+:" >> $output
+      continue
+    fi
+    echo $line >> $output
+  done < "$input"
+}
+
+need_help="false"
+
+#
+# -p for crosvm seccomp policy directory
+# -o for output directory where the processed policies land
+# -c for contents file
+#
+while getopts ":p:o:c:h" op; do
+  case "$op" in
+    p ) policy_dir=${OPTARG}
+        ;;
+    o ) output_dir=${OPTARG}
+        ;;
+    c ) contents_file=${OPTARG}
+        ;;
+    h ) need_help="true"
+        ;;
+    ? ) need_help="true"
+        ;;
+  esac
+done
+
+if [ $OPTIND -eq 1 ]; then
+  need_help="true"
+fi
+
+function help_n_exit() {
+  echo "must provide all the -o, -c, and -p options"
+  echo "-p for crosvm seccomp policy directory"
+  echo "-o for output directory where the processed policies land"
+  echo "-c for contents file"
+  exit 10
+}
+
+function rstrip_slash() {
+  if  [[ "${1: -1}" != "/" ]] || [[ $1 == "/" ]]; then
+    echo $1
+  else
+    echo "${1::-1}"
+  fi
+}
+
+stripped_policy_dir=$(rstrip_slash $policy_dir)
+stripped_output_dir=$(rstrip_slash $output_dir)
+
+if [[ $need_help == "true" ]]; then
+  help_n_exit
+fi
+
+for i in $(ls -1 $policy_dir); do
+  if is_policy_file $i; then
+    inline $stripped_policy_dir/$i $stripped_output_dir/$i $stripped_policy_dir/common_device.policy
+  fi
+done
+
diff --git a/rebuild-docker.sh b/rebuild-docker.sh
new file mode 100755
index 0000000..1a5a477
--- /dev/null
+++ b/rebuild-docker.sh
@@ -0,0 +1,149 @@
+#!/bin/bash -r
+
+function container_exists() {
+  [[ $(docker ps -a --filter "name=^/$1$" --format '{{.Names}}') == $1 ]] && echo $1;
+}
+
+declare -A map_uname_to_docker_builder_arch=( [aarch64]=linux/arm64 [x86_64]=linux/amd64 )
+
+# inputs
+# $1 = image name
+# $2 = container name
+# $3 = architecture (x86_64 or aarch64)
+# $4 = user name
+# $5 = user ID
+# $6 = persistent?
+# $7 = path to sources dir
+# $8 = path to working dir
+# $9 = path to output dir
+# $10 = reuse image/container? (0: no reuse; 1: reuse image; 2: reuse container)
+# $11 = build image (when reuse = 0)
+# $12 = path to Dockerfile
+# $13 = path to docker context dir
+# $14 = docker_flags_len
+# $15 = (docker_flags)
+# $16 = _prepare_source_len
+# $17 = (_prepare_source)
+function build_with_docker() {
+  set -o errexit
+  set -x
+
+  local -a _docker_target=( ${1} )
+  local _container_name=${2}
+  local _arch=${3}
+  local _docker_image=${1}_${_arch}
+  local _user=${4}
+  local _uid=${5}
+  local _persistent=${6}
+
+  if [[ ${_persistent} -eq 1 ]]; then
+    _docker_image=${1}_${_arch}_persistent
+  fi
+  local _docker_source=
+  if [ "${7}" != 'x' ]; then
+    _docker_source="-v ${7#x}:/source:rw"
+  fi
+  local _docker_working=
+  if [ "${8}" != 'x' ]; then
+    _docker_working="-v ${8#x}:/working:rw"
+  fi
+  local _docker_output=
+  if [ "${9}" != 'x' ]; then
+    _docker_output="-v ${9#x}:/output:rw"
+  fi
+  local _reuse=${10}
+  local _build_image=${11}
+  local _dockerfile=${12}
+  local _docker_context=${13}
+  shift 13
+  local -a _args=("$@")
+  local -i _docker_flags_len=${_args[0]}
+  local -a _docker_flags=("${_args[@]:1:$_docker_flags_len}")
+  local -i _prepare_source_len=${_args[(_docker_flags_len+1)]}
+  local -a _prepare_source=("${_args[@]:(_docker_flags_len+2):_prepare_source_len}")
+
+  local _build_or_retry=${_arch}_retry
+
+  if [[ ${_reuse} -ne 1 ]]; then
+    _build_or_retry=${_arch}_build
+    if [[ ${_persistent} -eq 1 ]]; then
+      _docker_target+=("${_docker_target[0]}_persistent")
+    fi
+    if [[ ${_build_image} -eq 1 ]]; then
+      if [[ ${_arch} != $(uname -m) ]]; then
+        export DOCKER_CLI_EXPERIMENTAL=enabled
+        # from
+        # https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/getting-started-with-docker-for-arm-on-linux
+        docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3
+        docker buildx create \
+          --name docker_vmm_${_arch}_builder \
+          --platform ${map_uname_to_docker_builder_arch[${_arch}]} \
+          --use
+        docker buildx inspect --bootstrap
+        for _target in ${_docker_target[@]}; do
+          docker buildx build \
+            --platform ${map_uname_to_docker_builder_arch[${_arch}]} \
+            --target ${_target} \
+            -f ${_dockerfile} \
+            -t ${_docker_image}:latest \
+            ${_docker_context} \
+            --build-arg USER=${_user} \
+            --build-arg UID=${_uid} --load
+        done
+        docker buildx rm docker_vmm_${_arch}_builder
+        unset DOCKER_CLI_EXPERIMENTAL
+      else
+        for _target in ${_docker_target[@]}; do
+          docker build \
+            -f ${_dockerfile} \
+            --target ${_target} \
+            -t ${_docker_image}:latest \
+            ${_docker_context} \
+            --build-arg USER=${_user} \
+            --build-arg UID=${_uid}
+        done
+      fi
+    fi
+    if [[ ${_persistent} -eq 1 ]]; then
+      if [[ -n "$(container_exists ${_container_name})" ]]; then
+        docker rm -f ${_container_name}
+      fi
+      docker run -d \
+        --privileged \
+        --name ${_container_name} \
+        -h ${_container_name} \
+        ${_docker_source} \
+        ${_docker_working} \
+        ${_docker_output} \
+        -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
+        ${_docker_image}:latest
+    fi
+#  else
+#    # If we are reusing the docker image, then we cannot change the target
+#    # architecture (though we can change the persistence) of the container.
+#    echo TODO
+  fi
+
+  if [[ ${_persistent} -eq 1 ]]; then
+    if [[ "$(docker inspect --format='{{.State.Status}}' ${_container_name})" == "paused" ]]; then
+      docker unpause ${_container_name}
+    fi
+    docker exec -it \
+      --user ${_user} \
+      ${_docker_flags[@]} \
+      ${_container_name} \
+      /static/rebuild-internal.sh ${_prepare_source[@]} ${_build_or_retry}
+    docker pause ${_container_name}
+  else
+    docker run -it --rm \
+      --user ${_user} \
+      ${_docker_flags[@]} \
+      ${_docker_source} \
+      ${_docker_working} \
+      ${_docker_output} \
+      ${_docker_image}:latest \
+      /static/rebuild-internal.sh ${_prepare_source[@]} ${_build_or_retry}
+  fi
+}
+
+build_with_docker $@
diff --git a/rebuild_gce.sh b/rebuild-internal.sh
similarity index 60%
rename from rebuild_gce.sh
rename to rebuild-internal.sh
index 4744d6d..ccf0121 100755
--- a/rebuild_gce.sh
+++ b/rebuild-internal.sh
@@ -4,21 +4,71 @@
 #
 # Rebuilds Crosvm and its dependencies from a clean state.
 
-SOURCE_DIR="$(pwd)/source"
-TOOLS_DIR="$(pwd)/tools"
-WORKING_DIR="$(pwd)/working"
+: ${TOOLS_DIR:="$(pwd)/tools"}
 
-ARCH="$(uname -m)"
-OUTPUT_DIR="$(pwd)/${ARCH}-linux-gnu"
-OUTPUT_BIN_DIR="${OUTPUT_DIR}/bin"
-OUTPUT_LIB_DIR="${OUTPUT_DIR}/bin"
+setup_env() {
+  : ${SOURCE_DIR:="$(pwd)/source"}
+  : ${WORKING_DIR:="$(pwd)/working"}
+  : ${CUSTOM_MANIFEST:=""}
 
-export PATH="${PATH}:${TOOLS_DIR}:${HOME}/.local/bin"
-CUSTOM_MANIFEST=""
+  ARCH="$(uname -m)"
+  : ${OUTPUT_DIR:="$(pwd)/${ARCH}-linux-gnu"}
+  OUTPUT_BIN_DIR="${OUTPUT_DIR}/bin"
+  OUTPUT_ETC_DIR="${OUTPUT_DIR}/etc"
+  OUTPUT_SECCOMP_DIR="${OUTPUT_ETC_DIR}/seccomp"
+  OUTPUT_LIB_DIR="${OUTPUT_DIR}/bin"
+
+  export PATH="${PATH}:${TOOLS_DIR}:${HOME}/.local/bin"
+}
 
 set -o errexit
 set -x
 
+fatal_echo() {
+  echo "$@"
+  exit 1
+}
+
+prepare_cargo() {
+  echo Setting up cargo...
+  cd
+  rm -rf .cargo
+  # Sometimes curl hangs. When it does, retry
+  retry curl -LO \
+    "https://static.rust-lang.org/rustup/archive/1.14.0/$(uname -m)-unknown-linux-gnu/rustup-init"
+  # echo "0077ff9c19f722e2be202698c037413099e1188c0c233c12a2297bf18e9ff6e7 *rustup-init" | sha256sum -c -
+  chmod +x rustup-init
+  ./rustup-init -y --no-modify-path
+  source $HOME/.cargo/env
+  if [[ -n "$1" ]]; then
+    rustup target add "$1"
+  fi
+  rustup component add rustfmt-preview
+  rm rustup-init
+
+  if [[ -n "$1" ]]; then
+  cat >>~/.cargo/config <<EOF
+[target.$1]
+linker = "${1/-unknown-/-}"
+EOF
+  fi
+}
+
+install_custom_scripts() {
+  # install our custom utility script used by $0 to ${TOOLS_DIR}
+  echo "Installing custom scripts..."
+  SCRIPTS_TO_INSTALL=("/static/policy-inliner.sh")
+  mkdir -p ${TOOLS_DIR} || /bin/true
+  for scr in ${SCRIPTS_TO_INSTALL[@]}; do
+    if ! [[ -f $scr ]]; then
+      >&2 echo "$scr must exist but does not"
+     exit 10
+    fi
+    chmod a+x $scr
+    cp -f $scr ${TOOLS_DIR}
+  done
+}
+
 install_packages() {
   echo Installing packages...
   sudo dpkg --add-architecture arm64
@@ -59,6 +109,21 @@
   # Meson getting started guide mentions that the distro version is frequently
   # outdated and recommends installing via pip.
   pip3 install meson
+
+  # Tools for building gfxstream
+  pip3 install absl-py
+  pip3 install urlfetch
+
+  case "$(uname -m)" in
+    aarch64)
+      prepare_cargo
+      ;;
+    x86_64)
+      # Cross-compilation is x86_64 specific
+      sudo apt install -y crossbuild-essential-arm64
+      prepare_cargo aarch64-unknown-linux-gnu
+      ;;
+  esac
 }
 
 retry() {
@@ -69,31 +134,6 @@
   return 1
 }
 
-prepare_cargo() {
-  echo Setting up cargo...
-  cd
-  rm -rf .cargo
-  # Sometimes curl hangs. When it does, retry
-  retry curl -LO \
-    "https://static.rust-lang.org/rustup/archive/1.14.0/$(uname -m)-unknown-linux-gnu/rustup-init"
-  # echo "0077ff9c19f722e2be202698c037413099e1188c0c233c12a2297bf18e9ff6e7 *rustup-init" | sha256sum -c -
-  chmod +x rustup-init
-  ./rustup-init -y --no-modify-path
-  source $HOME/.cargo/env
-  if [[ -n "$1" ]]; then
-    rustup target add "$1"
-  fi
-  rustup component add rustfmt-preview
-  rm rustup-init
-
-  if [[ -n "$1" ]]; then
-  cat >>~/.cargo/config <<EOF
-[target.$1]
-linker = "${1/-unknown-/-}"
-EOF
-  fi
-}
-
 fetch_source() {
   echo "Fetching source..."
 
@@ -106,11 +146,16 @@
     git config --global color.ui false
   fi
 
-  repo init -q -b crosvm-master -u https://android.googlesource.com/platform/manifest
-  if [[ -n "${CUSTOM_MANIFEST}" ]]; then
-    cp "${CUSTOM_MANIFEST}" .repo/manifests
-    repo init -m "${CUSTOM_MANIFEST}"
+  if [[ -z "${CUSTOM_MANIFEST}" ]]; then
+    # Building Crosvm currently depends using Chromium's directory scheme for subproject
+    # directories ('third_party' vs 'external').
+    fatal_echo "CUSTOM_MANIFEST must be provided. You most likely want to provide a full path to" \
+               "a copy of device/google/cuttlefish_vmm/${ARCH}-linux-gnu/manifest.xml."
   fi
+
+  repo init -q -u https://android.googlesource.com/platform/manifest
+  cp "${CUSTOM_MANIFEST}" .repo/manifests
+  repo init -m "${CUSTOM_MANIFEST}"
   repo sync
 }
 
@@ -124,14 +169,15 @@
 
 resync_source() {
   echo "Deleting source directory..."
-  rm -rf "${SOURCE_DIR}"
+  rm -rf "${SOURCE_DIR}/.*"
+  rm -rf "${SOURCE_DIR}/*"
   fetch_source
 }
 
 compile_minijail() {
   echo "Compiling Minijail..."
 
-  cd "${SOURCE_DIR}/third_party/minijail"
+  cd "${SOURCE_DIR}/external/minijail"
 
   make -j OUT="${WORKING_DIR}"
 
@@ -218,14 +264,38 @@
   ln -s -f "libvirglrenderer.so.1" "libvirglrenderer.so"
 }
 
+compile_gfxstream() {
+  echo "Compiling gfxstream..."
+
+    # Note: depends on libepoxy
+  cd "${SOURCE_DIR}/external/qemu"
+
+  # TODO: Fix or remove network unit tests that are failing in docker,
+  # so we can take out "notests"
+  python3 android/build/python/cmake.py --gfxstream_only --notests
+  local dist_dir="${SOURCE_DIR}/external/qemu/objs/distribution/emulator/lib64"
+
+  cp "${dist_dir}/libc++.so.1" "${OUTPUT_LIB_DIR}"
+  cp "${dist_dir}/libandroid-emu-shared.so" "${OUTPUT_LIB_DIR}"
+  cp "${dist_dir}/libemugl_common.so" "${OUTPUT_LIB_DIR}"
+  cp "${dist_dir}/libOpenglRender.so" "${OUTPUT_LIB_DIR}"
+  cp "${dist_dir}/libgfxstream_backend.so" "${OUTPUT_LIB_DIR}"
+}
+
 compile_crosvm() {
   echo "Compiling Crosvm..."
 
   source "${HOME}/.cargo/env"
   cd "${SOURCE_DIR}/platform/crosvm"
 
+  local crosvm_features=gpu,composite-disk
+
+  if [[ $BUILD_GFXSTREAM -eq 1 ]]; then
+      crosvm_features+=,gfxstream
+  fi
+
   RUSTFLAGS="-C link-arg=-Wl,-rpath,\$ORIGIN -C link-arg=-L${OUTPUT_LIB_DIR}" \
-    cargo build --features gpu,composite-disk
+    cargo build --features ${crosvm_features}
 
   # Save the outputs
   cp Cargo.lock "${OUTPUT_DIR}"
@@ -235,12 +305,38 @@
   rustup show > "${OUTPUT_DIR}/rustup_show.txt"
 }
 
+compile_crosvm_seccomp() {
+  # note that this depends on compile_crosvm
+  #
+  # for aarch64, this function should do nothing
+  # as the aarch64 subdirectory does not exist yet
+  #
+  echo "Processing Crosvm Seccomp..."
+
+  cd "${SOURCE_DIR}/platform/crosvm"
+  case ${ARCH} in
+    x86_64) subdir="${ARCH}" ;;
+    amd64) subdir="x86_64" ;;
+    arm64) subdir="aarch64" ;;
+    aarch64) subdir="${ARCH}" ;;
+    *)
+      echo "${ARCH} is not supported"
+      exit 15
+  esac
+  policy-inliner.sh \
+    -p $(pwd)/seccomp/$subdir \
+    -o ${OUTPUT_SECCOMP_DIR} \
+    -c $(pwd)/seccomp/$subdir/common_device.policy
+}
+
 compile() {
   echo "Compiling..."
   mkdir -p \
     "${WORKING_DIR}" \
     "${OUTPUT_DIR}" \
     "${OUTPUT_BIN_DIR}" \
+    "${OUTPUT_ETC_DIR}" \
+    "${OUTPUT_SECCOMP_DIR}" \
     "${OUTPUT_LIB_DIR}"
 
   compile_minijail
@@ -251,38 +347,41 @@
 
   compile_virglrenderer
 
+  # TODO: Finish the aarch64 cross/native gfxstream build
+  if [[ $BUILD_GFXSTREAM -eq 1 ]]; then
+      compile_gfxstream
+  fi
+
   compile_crosvm
 
+  compile_crosvm_seccomp
+
   dpkg-query -W > "${OUTPUT_DIR}/builder-packages.txt"
   repo manifest -r -o "${OUTPUT_DIR}/manifest.xml"
   echo "Results in ${OUTPUT_DIR}"
 }
 
-arm64_retry() {
+aarch64_retry() {
   MINIGBM_DRV="RADEON VC4" compile
 }
 
-arm64_build() {
-  rm -rf "${WORKING_DIR}"
-  prepare_cargo
-  arm64_retry
+aarch64_build() {
+  rm -rf "${WORKING_DIR}/*"
+  aarch64_retry
 }
 
 x86_64_retry() {
-  MINIGBM_DRV="I915 RADEON VC4" compile
+  MINIGBM_DRV="I915 RADEON VC4" BUILD_GFXSTREAM=1 compile
 }
 
 x86_64_build() {
-  rm -rf "${WORKING_DIR}"
-  # Cross-compilation is x86_64 specific
-  sudo apt install -y crossbuild-essential-arm64
-  prepare_cargo aarch64-unknown-linux-gnu
+  rm -rf "${WORKING_DIR}/*"
   x86_64_retry
 }
 
 if [[ $# -lt 1 ]]; then
   echo Choosing default config
-  set prepare_source x86_64_build
+  set setup_env prepare_source x86_64_build
 fi
 
 echo Steps: "$@"
@@ -292,15 +391,18 @@
   case "$i" in
     ARCH=*) ARCH="${i/ARCH=/}" ;;
     CUSTOM_MANIFEST=*) CUSTOM_MANIFEST="${i/CUSTOM_MANIFEST=/}" ;;
-    arm64_build) $i ;;
-    arm64_retry) $i ;;
+    aarch64_build) $i ;;
+    aarch64_retry) $i ;;
+    setup_env) $i ;;
+    install_custom_scripts) $i ;;
     install_packages) $i ;;
+    fetch_source) $i ;;
     resync_source) $i ;;
     prepare_source) $i ;;
     x86_64_build) $i ;;
     x86_64_retry) $i ;;
     *) echo $i unknown 1>&2
-      echo usage: $0 'arm64_build|arm64_retry|prepare_source|x86_64_build|x86_64_retry ...' 1>&2
+      echo usage: $0 'install_packages|prepare_source|resync_source|fetch_source|$(uname -m)_build|$(uname -m)_retry' 1>&2
        exit 2
        ;;
   esac
diff --git a/rebuild.sh b/rebuild.sh
index a123fd9..5cc7041 100755
--- a/rebuild.sh
+++ b/rebuild.sh
@@ -11,21 +11,39 @@
 source "${ANDROID_BUILD_TOP}/external/shflags/src/shflags"
 DIR="${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm"
 
-DEFINE_string arm_system \
-  "" "IP address or DNS name of an ARM system to do the secondary build"
-DEFINE_string arm_user \
-  "vsoc-01" "User to invoke on the ARM system"
-DEFINE_string custom_manifest "" "Custom manifest to use for the build"
-DEFINE_string project "$(gcloud config get-value project)" "Project to use" "p"
-DEFINE_string source_image_family debian-9 "Image familty to use as the base" \
-  "s"
-DEFINE_string source_image_project debian-cloud \
-  "Project holding the base image" "m"
-DEFINE_string x86_instance \
-  "${USER}-build" "Instance name to create for the build" "i"
-DEFINE_string x86_user cuttlefish_crosvm_builder \
-  "User name to use on GCE when doing the build"
-DEFINE_string zone "$(gcloud config get-value compute/zone)" "Zone to use" "z"
+# ARM-board options
+
+DEFINE_boolean arm false "Build on an ARM board"
+DEFINE_string arm_instance "" "IP address or DNS name of an ARM system to do the secondary build"
+DEFINE_string arm_user "vsoc-01" "User to invoke on the ARM system"
+
+# Docker options
+
+DEFINE_boolean docker false "Build inside docker"
+DEFINE_boolean docker_persistent true "Build inside a privileged, persistent container (faster for iterative development)"
+DEFINE_string docker_arch "$(uname -m)" "Target architectre"
+DEFINE_boolean docker_build_image true "When --noreuse is specified, this flag controls building the docker image (else we assume it was built and reuse it)"
+DEFINE_string docker_image "docker_vmm" "Name of docker image to build"
+DEFINE_string docker_container "docker_vmm" "Name of docker container to create"
+DEFINE_string docker_source "" "Path to sources checked out using manifest"
+DEFINE_string docker_working "" "Path to working directory"
+DEFINE_string docker_output "" "Output directory (when --docker is specified)"
+DEFINE_string docker_user "${USER}" "Docker-container user"
+DEFINE_string docker_uid "${UID}" "Docker-container user ID"
+
+# GCE options
+
+DEFINE_boolean gce false "Build on a GCE instance"
+DEFINE_string gce_project "$(gcloud config get-value project)" "Project to use" "p"
+DEFINE_string gce_source_image_family debian-10 "Image familty to use as the base" "s"
+DEFINE_string gce_source_image_project debian-cloud "Project holding the base image" "m"
+DEFINE_string gce_instance "${USER}-build" "Instance name to create for the build" "i"
+DEFINE_string gce_user cuttlefish_crosvm_builder "User name to use on GCE when doing the build"
+DEFINE_string gce_zone "$(gcloud config get-value compute/zone)" "Zone to use" "z"
+
+# Common options
+
+DEFINE_string manifest "" "Path to custom manifest to use for the build"
 DEFINE_boolean reuse false "Set to true to reuse a previously-set-up instance."
 DEFINE_boolean reuse_resync false "Reuse a previously-set-up instance, but clean and re-sync the sources. Overrides --reuse if both are specified."
 
@@ -39,101 +57,366 @@
   done
 }
 
+check_common_docker_options() {
+  if [[ -z "${FLAGS_docker_image}" ]]; then
+    echo Option --docker_image must not be empty 1>&1
+    fail=1
+  fi
+  if [[ -z "${FLAGS_docker_container}" ]]; then
+    echo Options --docker_container must not be empty 1>&2
+    fail=1
+  fi
+  if [[ -z "${FLAGS_docker_user}" ]]; then
+    echo Options --docker_user must not be empty 1>&2
+    fail=1
+  fi
+  if [[ -z "${FLAGS_docker_uid}" ]]; then
+    echo Options --docker_uid must not be empty 1>&2
+    fail=1
+  fi
+  # Volume mapping are specified only when a container is created.  With
+  # --reuse, an already-created persistent container is reused, which implies
+  # that we cannot change the volume maps.  For non-persistent containers, we
+  # use docker run, which creates and runs the continer in one step; in that
+  # case, we must pass the same values for --docker_source and --docker_output
+  # that we passed when we ran the non-persistent continer the first time.
+  if [[ ${_reuse} -eq 1 && ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then
+    if [ -n "${FLAGS_docker_source}" ]; then
+      echo Option --docker_source may not be specified with --reuse and --docker_persistent 1>&2
+      fail=1
+    fi
+    if [ -n "${FLAGS_docker_working}" ]; then
+      echo Option --docker_working may not be specified with --reuse and --docker_persistent 1>&2
+      fail=1
+    fi
+    if [ -n "${FLAGS_docker_output}" ]; then
+      echo Option --docker_output may not be specified with --reuse and --docker_persistent 1>&2
+      fail=1
+    fi
+  fi
+  if [[ "${fail}" -ne 0 ]]; then
+    exit "${fail}"
+  fi
+}
+
+build_locally_using_docker() {
+  check_common_docker_options
+  case "${FLAGS_docker_arch}" in
+    aarch64) ;;
+    x86_64) ;;
+    *) echo Invalid value ${FLAGS_docker_arch} for --docker_arch 1>&2
+      fail=1
+      ;;
+  esac
+  if [[ "${fail}" -ne 0 ]]; then
+    exit "${fail}"
+  fi
+  local -i _persistent=0
+  if [[ ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then
+    _persistent=1
+  fi
+
+  local -i _build_image=0
+  if [[ ${FLAGS_docker_build_image} -eq ${FLAGS_TRUE} ]]; then
+    _build_image=1
+  fi
+
+  local _docker_output=""
+  if [ -z "${FLAGS_docker_output}" ]; then
+    _docker_output="${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm/${FLAGS_docker_arch}-linux-gnu"
+  else
+    _docker_output="${FLAGS_docker_output}"
+  fi
+
+  local _temp="$(mktemp -d)"
+  rsync -avR "${relative_source_files[@]/#/${DIR}/./}" "${_temp}"
+  if [ -n "${custom_manifest}" ]; then
+    cp "${custom_manifest}" "${_temp}"/custom.xml
+  else
+    touch "${_temp}"/custom.xml
+  fi
+
+  ${DIR}/rebuild-docker.sh "${FLAGS_docker_image}" \
+                     "${FLAGS_docker_container}" \
+                     "${FLAGS_docker_arch}" \
+                     "${FLAGS_docker_user}" \
+                     "${FLAGS_docker_uid}" \
+                     "${_persistent}" \
+                     "x${FLAGS_docker_source}" \
+                     "x${FLAGS_docker_working}" \
+                     "x${_docker_output}" \
+                     "${_reuse}" \
+                     "${_build_image}" \
+                     "${_temp}/Dockerfile" \
+                     "${_temp}" \
+                     "${#docker_flags[@]}" "${docker_flags[@]}" \
+                     "${#_prepare_source[@]}" "${_prepare_source[@]}"
+
+  rm -rf "${_temp}"
+}
+
+function build_on_gce() {
+  check_common_docker_options
+  if [[ -z "${FLAGS_gce_instance}" ]]; then
+    echo Must specify instance 1>&2
+    fail=1
+  fi
+  if [[ -z "${FLAGS_gce_project}" ]]; then
+    echo Must specify project 1>&2
+    fail=1
+  fi
+  if [[ -z "${FLAGS_gce_zone}" ]]; then
+    echo Must specify zone 1>&2
+    fail=1
+  fi
+  if [[ "${fail}" -ne 0 ]]; then
+    exit "${fail}"
+  fi
+  project_zone_flags=(--project="${FLAGS_gce_project}" --zone="${FLAGS_gce_zone}")
+  if [ ${_reuse} -eq 0 ]; then
+    delete_instances=("${FLAGS_gce_instance}")
+    gcloud compute instances delete -q \
+      "${delete_instances[@]}" \
+      "${project_zone_flags[@]}" || \
+        echo Instance does not exist
+    gcloud compute images delete -q \
+      "${delete_instances[@]/%/-image}" \
+      --project "${FLAGS_gce_project}" || \
+        echo Image does not exist
+    gcloud compute disks delete -q \
+      "${delete_instances[@]/%/-disk}" \
+      "${project_zone_flags[@]}" || \
+        echo Disk does not exist
+
+    gcloud compute disks create \
+      "${delete_instances[@]/%/-disk}" \
+      "${project_zone_flags[@]}" \
+      --image-project="${FLAGS_gce_source_image_project}" \
+      --image-family="${FLAGS_gce_source_image_family}"
+    gcloud compute images create \
+      "${delete_instances[@]/%/-image}" \
+      --source-disk "${delete_instances[@]/%/-disk}" \
+      --project "${FLAGS_gce_project}" --source-disk-zone "${FLAGS_gce_zone}" \
+      --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
+    gcloud compute instances create \
+      "${delete_instances[@]}" \
+      "${project_zone_flags[@]}" \
+      --image "${delete_instances[@]/%/-image}" \
+      --boot-disk-size=200GB \
+      --machine-type=n1-standard-8 \
+      --min-cpu-platform "Intel Skylake"
+
+    wait_for_instance "${FLAGS_gce_instance}" "${project_zone_flags[@]}"
+
+    # install docker
+    gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+        "${project_zone_flags[@]}" \
+        "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \
+        'curl -fsSL https://get.docker.com | /bin/bash'
+    gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+        "${project_zone_flags[@]}" \
+        "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \
+      sudo usermod -aG docker "${FLAGS_gce_user}"
+
+    # beta for the --internal-ip flag that may be passed via SSH_FLAGS
+
+    gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+        "${project_zone_flags[@]}" \
+        "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \
+        mkdir -p '$PWD/docker $PWD/docker/source $PWD/docker/working $PWD/docker/output'
+
+    tar czv -C "${DIR}" -f - "${relative_source_files[@]}" | \
+      gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+          "${project_zone_flags[@]}" \
+          "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \
+          'tar xzv -C ~/docker -f -'
+    if [ -n "${custom_manifest}" ]; then
+      gcloud beta compute scp "${SSH_FLAGS[@]}" \
+        "${project_zone_flags[@]}" \
+        "${custom_manifest}" \
+        "${FLAGS_gce_user}@${FLAGS_gce_instance}:~/docker/custom.xml"
+    else
+      gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+        "${project_zone_flags[@]}" \
+        "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \
+        "touch ~/docker/custom.xml"
+    fi
+  fi
+
+  local _status=$(gcloud compute instances list \
+                  --project="${FLAGS_gce_project}" \
+                  --zones="${FLAGS_gce_zone}" \
+                  --filter="name=('${FLAGS_gce_instance}')" \
+                  --format=flattened | awk '/status:/ {print $2}')
+  if [ "${_status}" != "RUNNING" ] ; then
+    echo "Instance ${FLAGS_gce_instance} is not running."
+    exit 1;
+  fi
+
+  local -i _persistent=0
+  if [[ ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then
+    _persistent=1
+  fi
+  local -i _build_image=0
+  if [[ ${FLAGS_docker_build_image} -eq ${FLAGS_TRUE} ]]; then
+    _build_image=1
+  fi
+  gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+      "${project_zone_flags[@]}" \
+      "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \
+      ./docker/rebuild-docker.sh "${FLAGS_docker_image}" \
+                       "${FLAGS_docker_container}" \
+                       "${FLAGS_docker_arch}" \
+                       '${USER}' \
+                       '${UID}' \
+                       "${_persistent}" \
+                       'x$PWD/docker/source' \
+                       'x$PWD/docker/working' \
+                       'x$PWD/docker/output' \
+                       "${_reuse}" \
+                       "${_build_image}" \
+                       '~/docker/Dockerfile' \
+                       '~/docker/' \
+                       "${#docker_flags[@]}" "${docker_flags[@]}" \
+                       "${#_prepare_source[@]}" "${_prepare_source[@]}"
+
+  gcloud beta compute ssh "${SSH_FLAGS[@]}" \
+      "${project_zone_flags[@]}" \
+      "${FLAGS_gce_user}@${FLAGS_gce_instance}" --command \
+      'tar czv -C $PWD/docker/output -f - $(find $PWD/docker/output -printf "%P\n")' | \
+    tar xzv -C ${DIR}/${FLAGS_docker_arch}-linux-gnu -f -
+
+  gcloud compute disks describe \
+    "${project_zone_flags[@]}" "${FLAGS_gce_instance}" | \
+      grep ^sourceImage: > "${DIR}"/x86_64-linux-gnu/builder_image.txt
+}
+
+function build_on_arm_board() {
+  check_common_docker_options
+  if [[ "${FLAGS_docker_arch}" != "aarch64" ]]; then
+    echo ARM board supports building only aarch64 1>&2
+    fail=1
+  fi
+  if [[ -z "${FLAGS_arm_instance}" ]]; then
+    echo Must specify IP address of ARM board 1>&2
+    fail=1
+  fi
+  if [[ -z "${FLAGS_arm_user}" ]]; then
+    echo Must specify a user account on ARM board 1>&2
+    fail=1
+  fi
+  if [[ "${fail}" -ne 0 ]]; then
+    exit "${fail}"
+  fi
+  if [[ "${_reuse}" -eq 0 ]]; then
+    ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \
+      rm -rf '$PWD/docker'
+  fi
+  rsync -avR -e ssh \
+    "${relative_source_files[@]/#/${DIR}/./}" \
+    "${FLAGS_arm_user}@${FLAGS_arm_instance}:~/docker/"
+
+  if [ -n "${custom_manifest}" ]; then
+    scp "${custom_manifest}" "${FLAGS_arm_user}@${FLAGS_arm_instance}":~/docker/custom.xml
+  else
+    ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \
+      "touch ~/docker/custom.xml"
+  fi
+
+  local -i _persistent=0
+  if [[ ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then
+    _persistent=1
+  fi
+  local -i _build_image=0
+  if [[ ${FLAGS_docker_build_image} -eq ${FLAGS_TRUE} ]]; then
+    _build_image=1
+  fi
+  ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \
+    mkdir -p '$PWD/docker/source' '$PWD/docker/working' '$PWD/docker/output'
+  ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \
+    ./docker/rebuild-docker.sh "${FLAGS_docker_image}" \
+                     "${FLAGS_docker_container}" \
+                     "${FLAGS_docker_arch}" \
+                     '${USER}' \
+                     '${UID}' \
+                     "${_persistent}" \
+                     'x$PWD/docker/source' \
+                     'x$PWD/docker/working' \
+                     'x$PWD/docker/output' \
+                     "${_reuse}" \
+                     "${_build_image}" \
+                     '~/docker/Dockerfile' \
+                     '~/docker/' \
+                     "${#docker_flags[@]}" "${docker_flags[@]}" \
+                     "${#_prepare_source[@]}" "${_prepare_source[@]}"
+
+  rsync -avR -e ssh "${FLAGS_arm_user}@${FLAGS_arm_instance}":docker/output/./ \
+    "${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm/${FLAGS_docker_arch}-linux-gnu"
+}
+
 main() {
   set -o errexit
   set -x
   fail=0
-  source_files=("${DIR}"/rebuild_gce.sh)
-  gce_flags=()
-  arm_flags=()
-  if [[ -n "${FLAGS_custom_manifest}" ]]; then
-    if [[ ! -f "${FLAGS_custom_manifest}" ]]; then
-      echo custom manifest not found: ${FLAGS_custom_manifest} 1>&1
+  relative_source_files=("rebuild-docker.sh"
+     "rebuild-internal.sh"
+     "Dockerfile"
+     "x86_64-linux-gnu/manifest.xml"
+     "aarch64-linux-gnu/manifest.xml"
+     "policy-inliner.sh"
+     ".dockerignore")
+  # These must match the definitions in the Dockerfile
+  docker_flags=("-eSOURCE_DIR=/source" "-eWORKING_DIR=/working" "-eOUTPUT_DIR=/output" "-eTOOLS_DIR=/static/tools")
+
+  if [[ $(( $((${FLAGS_gce}==${FLAGS_TRUE})) + $((${FLAGS_arm}==${FLAGS_TRUE})) + $((${FLAGS_docker}==${FLAGS_TRUE})) )) > 1 ]]; then
+    echo You may specify only one of --gce, --docker, or --arm 1>&2
+    exit 2
+  fi
+
+  if [[ -n "${FLAGS_manifest}" ]]; then
+    if [[ ! -f "${FLAGS_manifest}" ]]; then
+      echo custom manifest not found: ${FLAGS_manifest} 1>&1
       exit 2
     fi
-    source_files+=("${FLAGS_custom_manifest}")
-    gce_flags+=("CUSTOM_MANIFEST=/home/${FLAGS_x86_user}/$(basename "${FLAGS_custom_manifest}")")
-    arm_flags+=("CUSTOM_MANIFEST=/home/${FLAGS_arm_user}/$(basename "${FLAGS_custom_manifest}")")
+    custom_manifest="${FLAGS_manifest}"
+    docker_flags+=("-eCUSTOM_MANIFEST=/static/custom.xml")
+  else
+    custom_manifest="${DIR}/${FLAGS_docker_arch}-linux-gnu/manifest.xml"
+    docker_flags+=("-eCUSTOM_MANIFEST=/static/${FLAGS_docker_arch}-linux-gnu/manifest.xml")
   fi
-  local _prepare_source=(install_packages prepare_source);
-  local _reuse=0
-  if [ ${FLAGS_reuse} -eq ${FLAGS_TRUE} ]; then
+  local -a _prepare_source=(setup_env fetch_source);
+  local -i _reuse=0
+  if [[ ${FLAGS_reuse} -eq ${FLAGS_TRUE} ]]; then
     # neither install packages, nor sync sources; skip to building them
-    _prepare_source=()
+    _prepare_source=(setup_env)
+    # unless you're setting up a non-persistent container and --docker_source is
+    # the empty string; in this case, --reuse implies --reuse_resync
+    if [[ "${FLAGS_docker_persistent}" -eq ${FLAGS_FALSE} && \
+          -z "${FLAGS_docker_source}" ]]; then
+      _prepare_source+=(resync_source)
+    fi
     _reuse=1
   fi
-  if [ ${FLAGS_reuse_resync} -eq ${FLAGS_TRUE} ]; then
+  if [[ ${FLAGS_reuse_resync} -eq ${FLAGS_TRUE} ]]; then
     # do not install packages but clean and sync sources afresh
-    _prepare_source=(resync_source);
+    _prepare_source=(setup_env resync_source);
     _reuse=1
   fi
-  if [[ -n "${FLAGS_x86_instance}" ]]; then
-    if [[ -z "${FLAGS_project}" ]]; then
-      echo Must specify project 1>&2
-      fail=1
-    fi
-    if [[ -z "${FLAGS_zone}" ]]; then
-      echo Must specify zone 1>&2
-      fail=1
-    fi
-    if [[ "${fail}" -ne 0 ]]; then
-      exit "${fail}"
-    fi
-    project_zone_flags=(--project="${FLAGS_project}" --zone="${FLAGS_zone}")
-    if [ ${_reuse} -eq 0 ]; then
-      delete_instances=("${FLAGS_x86_instance}")
-      gcloud compute instances delete -q \
-        "${project_zone_flags[@]}" \
-        "${delete_instances[@]}" || \
-          echo Not running
-      gcloud compute instances create \
-        "${project_zone_flags[@]}" \
-        --boot-disk-size=200GB \
-        --machine-type=n1-standard-4 \
-        --image-family="${FLAGS_source_image_family}" \
-        --image-project="${FLAGS_source_image_project}" \
-        "${FLAGS_x86_instance}"
-      wait_for_instance "${FLAGS_x86_instance}"
-    fi
-    local _status=$(gcloud compute instances list \
-                    --project="${FLAGS_project}" \
-                    --zones="${FLAGS_zone}" \
-                    --filter="name=('${FLAGS_x86_instance}')" \
-                    --format=flattened | awk '/status:/ {print $2}')
-    if [ "${_status}" != "RUNNING" ] ; then
-      echo "Instance ${FLAGS_x86_instance} is not running."
-      exit 1;
-    fi
-    # beta for the --internal-ip flag that may be passed via SSH_FLAGS
-    gcloud beta compute scp "${SSH_FLAGS[@]}" \
+  if [[ ${FLAGS_gce} -eq ${FLAGS_TRUE} ]]; then
+    build_on_gce
+    exit 0
+    gcloud compute instances delete -q \
       "${project_zone_flags[@]}" \
-      "${source_files[@]}" \
-      "${FLAGS_x86_user}@${FLAGS_x86_instance}:"
-    gcloud compute ssh "${SSH_FLAGS[@]}" \
-      "${project_zone_flags[@]}" \
-      "${FLAGS_x86_user}@${FLAGS_x86_instance}" -- \
-        ./rebuild_gce.sh "${gce_flags[@]}" ${_prepare_source[@]} x86_64_build
-    gcloud beta compute scp --recurse "${SSH_FLAGS[@]}" \
-      "${project_zone_flags[@]}" \
-      "${FLAGS_x86_user}@${FLAGS_x86_instance}":x86_64-linux-gnu \
-      "${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm"
-    gcloud compute disks describe \
-      "${project_zone_flags[@]}" "${FLAGS_x86_instance}" | \
-        grep ^sourceImage: > "${DIR}"/x86_64-linux-gnu/builder_image.txt
+      "${FLAGS_gce_instance}"
   fi
-  if [[ -n "${FLAGS_arm_system}" ]]; then
-    scp \
-      "${source_files[@]}" \
-      "${FLAGS_arm_user}@${FLAGS_arm_system}:"
-    ssh -t "${FLAGS_arm_user}@${FLAGS_arm_system}" -- \
-        ./rebuild_gce.sh "${arm_flags[@]}" ${_prepare_source[@]} arm64_build
-    scp -r "${FLAGS_arm_user}@${FLAGS_arm_system}":aarch64-linux-gnu \
-      "${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm"
+  if [[ ${FLAGS_arm} -eq ${FLAGS_TRUE} ]]; then
+    build_on_arm_board
+    exit 0
   fi
-  exit 0
-  gcloud compute instances delete -q \
-    "${project_zone_flags[@]}" \
-    "${FLAGS_x86_instance}"
+  if [[ ${FLAGS_docker} -eq ${FLAGS_TRUE} ]]; then
+    build_locally_using_docker
+    exit 0
+  fi
 }
 
 FLAGS "$@" || exit 1
diff --git a/update-manifest-gfxstream.py b/update-manifest-gfxstream.py
new file mode 100755
index 0000000..1caf592
--- /dev/null
+++ b/update-manifest-gfxstream.py
@@ -0,0 +1,121 @@
+# Copyright 2020 - The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the',  help='License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an',  help='AS IS' BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Script that makes it easy to have the docker build correspond to a particular
+# gfxstream Android build id
+
+import os
+import subprocess
+import sys
+import lxml.etree as etree
+
+gfxstream_manifest_filename = sys.argv[1]
+target_manifest_filename = sys.argv[2]
+
+# Don't need to check out the entire emulator repo to build gfxstream
+gfxstream_projects = set([
+  "device/generic/goldfish-opengl",
+  "device/generic/vulkan-cereal",
+  "platform/external/angle",
+  "platform/external/astc-codec",
+  "platform/external/boringssl",
+  "platform/external/c-ares",
+  "platform/external/curl",
+  "platform/external/deqp",
+  "platform/external/ffmpeg",
+  "platform/external/googletest",
+  "platform/external/google-benchmark",
+  "platform/external/google-breakpad",
+  "platform/external/grpc-grpc",
+  "platform/external/libffi",
+  "platform/external/libvpx",
+  "platform/external/libyuv",
+  "platform/external/libpng",
+  "platform/external/lz4",
+  "platform/external/protobuf",
+  "platform/external/qemu",
+  "platform/external/tinyobjloader",
+  "platform/external/nasm",
+  "platform/external/zlib",
+  "platform/prebuilts/android-emulator-build/common",
+  "platform/prebuilts/android-emulator-build/curl",
+  "platform/prebuilts/android-emulator-build/mesa",
+  "platform/prebuilts/android-emulator-build/mesa-deps",
+  "platform/prebuilts/android-emulator-build/protobuf",
+  "platform/prebuilts/android-emulator-build/qemu-android-deps",
+  "platform/prebuilts/clang/host/linux-x86",
+  "platform/prebuilts/cmake/linux-x86",
+  "platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8",
+  "platform/prebuilts/ninja/linux-x86",
+])
+
+def generate_filtered_gfxstream_projects(filename):
+    outs = []
+
+    out = etree.Element("manifest")
+
+    t = etree.parse(filename)
+    r = t.getroot()
+
+    for e in r.findall("project"):
+        if e.attrib["name"] in gfxstream_projects:
+            outp = etree.SubElement(out, "project")
+            outs.append(outp)
+            outp.set("name", e.attrib["name"])
+            outp.set("path", e.attrib["path"])
+            outp.set("revision", e.attrib["revision"])
+            outp.set("clone-depth", "1")
+
+    return dict(map(lambda e: (e.attrib["name"], e), outs))
+
+def update_projects(current_gfxstream_projects, target_manifest_filename):
+    target_root = etree.parse( \
+        target_manifest_filename,
+        etree.XMLParser(remove_blank_text=True)).getroot()
+
+    found_projects = []
+
+    for e in target_root.findall("project"):
+        if e.attrib["name"] in gfxstream_projects:
+            e.set("revision", current_gfxstream_projects[e.attrib["name"]].attrib["revision"])
+            e.set("clone-depth", "1")
+            found_projects.append(e.attrib["name"])
+
+    projects_to_add = gfxstream_projects - set(found_projects)
+
+    for p in projects_to_add:
+        project_element = current_gfxstream_projects[p]
+        outp = etree.SubElement(target_root, "project")
+        outp.set("name", project_element.attrib["name"])
+        outp.set("path", project_element.attrib["path"])
+        outp.set("revision", project_element.attrib["revision"])
+        outp.set("clone-depth", "1")
+
+    return target_root
+
+print("Generating...")
+output_string = etree.tostring( \
+    update_projects(
+        generate_filtered_gfxstream_projects(gfxstream_manifest_filename),
+        target_manifest_filename),
+    pretty_print=True,
+    xml_declaration=True,encoding="utf-8")
+
+print("Result: ")
+print(output_string.decode())
+print("Writing result to %s" % target_manifest_filename)
+
+fh = open(target_manifest_filename, 'w')
+fh.write(output_string)
+fh.close()
diff --git a/x86_64-linux-gnu/Android.bp b/x86_64-linux-gnu/Android.bp
new file mode 100644
index 0000000..29f19b0
--- /dev/null
+++ b/x86_64-linux-gnu/Android.bp
@@ -0,0 +1,130 @@
+// Autogenerated via gen_android_bp.sh
+//
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+prebuilt_usr_share_host {
+  name: "9p_device.policy_at_x86_64",
+  src: "etc/seccomp/9p_device.policy",
+  filename: "9p_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "balloon_device.policy_at_x86_64",
+  src: "etc/seccomp/balloon_device.policy",
+  filename: "balloon_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "block_device.policy_at_x86_64",
+  src: "etc/seccomp/block_device.policy",
+  filename: "block_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "common_device.policy_at_x86_64",
+  src: "etc/seccomp/common_device.policy",
+  filename: "common_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "cras_audio_device.policy_at_x86_64",
+  src: "etc/seccomp/cras_audio_device.policy",
+  filename: "cras_audio_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "fs_device.policy_at_x86_64",
+  src: "etc/seccomp/fs_device.policy",
+  filename: "fs_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "gpu_device.policy_at_x86_64",
+  src: "etc/seccomp/gpu_device.policy",
+  filename: "gpu_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "input_device.policy_at_x86_64",
+  src: "etc/seccomp/input_device.policy",
+  filename: "input_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "net_device.policy_at_x86_64",
+  src: "etc/seccomp/net_device.policy",
+  filename: "net_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "null_audio_device.policy_at_x86_64",
+  src: "etc/seccomp/null_audio_device.policy",
+  filename: "null_audio_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "pmem_device.policy_at_x86_64",
+  src: "etc/seccomp/pmem_device.policy",
+  filename: "pmem_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "rng_device.policy_at_x86_64",
+  src: "etc/seccomp/rng_device.policy",
+  filename: "rng_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "serial.policy_at_x86_64",
+  src: "etc/seccomp/serial.policy",
+  filename: "serial.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "tpm_device.policy_at_x86_64",
+  src: "etc/seccomp/tpm_device.policy",
+  filename: "tpm_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "vfio_device.policy_at_x86_64",
+  src: "etc/seccomp/vfio_device.policy",
+  filename: "vfio_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "vhost_net_device.policy_at_x86_64",
+  src: "etc/seccomp/vhost_net_device.policy",
+  filename: "vhost_net_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "vhost_vsock_device.policy_at_x86_64",
+  src: "etc/seccomp/vhost_vsock_device.policy",
+  filename: "vhost_vsock_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "wl_device.policy_at_x86_64",
+  src: "etc/seccomp/wl_device.policy",
+  filename: "wl_device.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
+prebuilt_usr_share_host {
+  name: "xhci.policy_at_x86_64",
+  src: "etc/seccomp/xhci.policy",
+  filename: "xhci.policy",
+  sub_dir: "cuttlefish/x86_64-linux-gnu/seccomp",
+}
diff --git a/x86_64-linux-gnu/Cargo.lock b/x86_64-linux-gnu/Cargo.lock
index 81abd93..c07b8be 100644
--- a/x86_64-linux-gnu/Cargo.lock
+++ b/x86_64-linux-gnu/Cargo.lock
@@ -4,32 +4,41 @@
 name = "aarch64"
 version = "0.1.0"
 dependencies = [
- "arch 0.1.0",
- "data_model 0.1.0",
- "devices 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "arch",
+ "data_model",
+ "devices",
+ "io_jail",
+ "kernel_cmdline",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "vm_control",
+]
+
+[[package]]
+name = "acpi_tables"
+version = "0.1.0"
+dependencies = [
+ "data_model",
 ]
 
 [[package]]
 name = "arch"
 version = "0.1.0"
 dependencies = [
- "devices 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kvm 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "devices",
+ "io_jail",
+ "kernel_cmdline",
+ "kvm",
+ "libc",
+ "resources",
+ "sync",
+ "sys_util",
+ "vm_control",
 ]
 
 [[package]]
@@ -39,403 +48,651 @@
 [[package]]
 name = "audio_streams"
 version = "0.1.0"
+dependencies = [
+ "sync",
+ "sys_util",
+]
 
 [[package]]
 name = "bit_field"
 version = "0.1.0"
 dependencies = [
- "bit_field_derive 0.1.0",
+ "bit_field_derive",
 ]
 
 [[package]]
 name = "bit_field_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "bitflags"
-version = "1.1.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
 name = "cc"
 version = "1.0.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
 
 [[package]]
 name = "cfg-if"
-version = "0.1.5"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 
 [[package]]
 name = "cras-sys"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
+ "audio_streams",
+ "data_model",
+]
+
+[[package]]
+name = "cros_async"
+version = "0.1.0"
+dependencies = [
+ "futures",
+ "libc",
+ "paste",
+ "sys_util",
+ "syscall_defines",
 ]
 
 [[package]]
 name = "crosvm"
 version = "0.1.0"
 dependencies = [
- "aarch64 0.1.0",
- "arch 0.1.0",
- "assertions 0.1.0",
- "audio_streams 0.1.0",
- "bit_field 0.1.0",
- "crosvm_plugin 0.17.0",
- "data_model 0.1.0",
- "devices 0.1.0",
- "disk 0.1.0",
- "enumn 0.1.0",
- "gpu_buffer 0.1.0",
- "gpu_renderer 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kernel_loader 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "libcras 0.1.0",
- "msg_socket 0.1.0",
- "net_util 0.1.0",
- "p9 0.1.0",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protos 0.1.0",
- "rand_ish 0.1.0",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
- "vhost 0.1.0",
- "vm_control 0.1.0",
- "x86_64 0.1.0",
+ "aarch64",
+ "acpi_tables",
+ "arch",
+ "assertions",
+ "audio_streams",
+ "bit_field",
+ "crosvm_plugin",
+ "data_model",
+ "devices",
+ "disk",
+ "enumn",
+ "gpu_buffer",
+ "gpu_renderer",
+ "io_jail",
+ "kernel_cmdline",
+ "kernel_loader",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "libcras",
+ "minijail-sys",
+ "msg_socket",
+ "net_util",
+ "p9",
+ "protobuf",
+ "protos",
+ "rand_ish",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "vhost",
+ "vm_control",
+ "x86_64",
 ]
 
 [[package]]
 name = "crosvm_plugin"
 version = "0.17.0"
 dependencies = [
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protos 0.1.0",
- "sys_util 0.1.0",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "protobuf",
+ "protos",
+ "sys_util",
 ]
 
 [[package]]
 name = "data_model"
 version = "0.1.0"
 dependencies = [
- "assertions 0.1.0",
+ "assertions",
 ]
 
 [[package]]
 name = "devices"
 version = "0.1.0"
 dependencies = [
- "audio_streams 0.1.0",
- "bit_field 0.1.0",
- "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "data_model 0.1.0",
- "disk 0.1.0",
- "enumn 0.1.0",
- "gpu_buffer 0.1.0",
- "gpu_display 0.1.0",
- "gpu_renderer 0.1.0",
- "io_jail 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "linux_input_sys 0.1.0",
- "msg_on_socket_derive 0.1.0",
- "msg_socket 0.1.0",
- "net_sys 0.1.0",
- "net_util 0.1.0",
- "p9 0.1.0",
- "protos 0.1.0",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
- "syscall_defines 0.1.0",
+ "audio_streams",
+ "bit_field",
+ "bitflags",
+ "data_model",
+ "disk",
+ "enumn",
+ "gpu_buffer",
+ "gpu_display",
+ "gpu_renderer",
+ "io_jail",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "libcras",
+ "linux_input_sys",
+ "msg_on_socket_derive",
+ "msg_socket",
+ "net_sys",
+ "net_util",
+ "p9",
+ "protos",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "syscall_defines",
  "tempfile 3.0.7",
- "tpm2 0.1.0",
- "usb_util 0.1.0",
- "vfio_sys 0.1.0",
- "vhost 0.1.0",
- "virtio_sys 0.1.0",
- "vm_control 0.1.0",
+ "tpm2",
+ "usb_util",
+ "vfio_sys",
+ "vhost",
+ "virtio_sys",
+ "vm_control",
 ]
 
 [[package]]
 name = "disk"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protos 0.1.0",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "protobuf",
+ "protos",
+ "remain",
+ "sys_util",
 ]
 
 [[package]]
 name = "enumn"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6"
+
+[[package]]
+name = "futures-task"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27"
+
+[[package]]
+name = "futures-util"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
 ]
 
 [[package]]
 name = "getopts"
-version = "0.2.18"
+version = "0.2.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
 dependencies = [
- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
 ]
 
 [[package]]
 name = "gpu_buffer"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "sys_util",
 ]
 
 [[package]]
 name = "gpu_display"
 version = "0.1.0"
 dependencies = [
- "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "linux_input_sys 0.1.0",
- "sys_util 0.1.0",
+ "cc",
+ "data_model",
+ "libc",
+ "linux_input_sys",
+ "sys_util",
 ]
 
 [[package]]
 name = "gpu_renderer"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "sys_util",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
 name = "io_jail"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "net_sys 0.1.0",
+ "libc",
+ "minijail-sys",
 ]
 
 [[package]]
 name = "kernel_cmdline"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
 ]
 
 [[package]]
 name = "kernel_loader"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "kvm"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg_socket 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "kvm_sys",
+ "libc",
+ "msg_socket",
+ "sys_util",
 ]
 
 [[package]]
 name = "kvm_sys"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.44"
+version = "0.2.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
 
 [[package]]
 name = "libcras"
 version = "0.1.0"
 dependencies = [
- "audio_streams 0.1.0",
- "cras-sys 0.1.0",
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "audio_streams",
+ "cras-sys",
+ "data_model",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "linux_input_sys"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.5"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
 dependencies = [
- "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+
+[[package]]
+name = "minijail-sys"
+version = "0.0.11"
+dependencies = [
+ "libc",
+ "pkg-config",
 ]
 
 [[package]]
 name = "msg_on_socket_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "msg_socket"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "msg_on_socket_derive 0.1.0",
- "sys_util 0.1.0",
+ "cros_async",
+ "data_model",
+ "futures",
+ "libc",
+ "msg_on_socket_derive",
+ "sys_util",
 ]
 
 [[package]]
 name = "net_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "net_util"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "net_sys 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "libc",
+ "net_sys",
+ "sys_util",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.9.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hermit-abi",
+ "libc",
 ]
 
 [[package]]
 name = "p9"
 version = "0.1.0"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "wire_format_derive 0.1.0",
+ "libc",
+ "wire_format_derive",
 ]
 
 [[package]]
-name = "pkg-config"
-version = "0.3.11"
+name = "paste"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a229b1c58c692edcaa5b9b0948084f130f55d2dcc15b02fcc5340b2b4521476"
+dependencies = [
+ "paste-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "paste-impl"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e0bf239e447e67ff6d16a8bb5e4d4bd2343acf5066061c0e8e06ac5ba8ca68c"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
 
 [[package]]
 name = "poll_token_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "0.4.21"
+name = "ppv-lite86"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
 dependencies = [
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid",
 ]
 
 [[package]]
 name = "protobuf"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
 
 [[package]]
 name = "protobuf-codegen"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c"
 dependencies = [
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf",
 ]
 
 [[package]]
 name = "protoc"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d80967ee438cd03ccd236d548d4dcd5f2d9349acda206bef1490a826165d3"
 dependencies = [
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log",
 ]
 
 [[package]]
 name = "protoc-rust"
-version = "2.8.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58f2fb1de3a1355b1eb91108bf59d6221c1f565eee9983605be53846019fdf38"
 dependencies = [
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protoc 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 3.0.7",
+ "protobuf",
+ "protobuf-codegen",
+ "protoc",
+ "tempfile 3.1.0",
 ]
 
 [[package]]
 name = "protos"
 version = "0.1.0"
 dependencies = [
- "kvm_sys 0.1.0",
- "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "protoc-rust 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kvm_sys",
+ "protobuf",
+ "protoc-rust",
 ]
 
 [[package]]
 name = "qcow_utils"
 version = "0.1.0"
 dependencies = [
- "disk 0.1.0",
- "getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
+ "disk",
+ "getopts",
+ "libc",
+ "sys_util",
 ]
 
 [[package]]
 name = "quote"
-version = "0.6.10"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
 ]
 
 [[package]]
@@ -443,33 +700,56 @@
 version = "0.1.0"
 
 [[package]]
-name = "remain"
-version = "0.1.2"
+name = "redox_syscall"
+version = "0.1.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+
+[[package]]
+name = "remain"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99c861227fc40c8da6fdaa3d58144ac84c0537080a43eb1d7d45c28f88dcb888"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+dependencies = [
+ "winapi",
 ]
 
 [[package]]
 name = "resources"
 version = "0.1.0"
 dependencies = [
- "gpu_buffer 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg_socket 0.1.0",
- "sys_util 0.1.0",
+ "gpu_buffer",
+ "libc",
+ "msg_socket",
+ "sys_util",
 ]
 
 [[package]]
-name = "syn"
-version = "0.15.26"
+name = "slab"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+[[package]]
+name = "syn"
+version = "1.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8e5aa70697bb26ee62214ae3288465ecec0000f05182f039b477001f08f5ae7"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
 ]
 
 [[package]]
@@ -480,11 +760,11 @@
 name = "sys_util"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "poll_token_derive 0.1.0",
- "sync 0.1.0",
- "syscall_defines 0.1.0",
+ "data_model",
+ "libc",
+ "poll_token_derive",
+ "sync",
+ "syscall_defines",
  "tempfile 3.0.7",
 ]
 
@@ -496,136 +776,162 @@
 name = "tempfile"
 version = "3.0.7"
 dependencies = [
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
 ]
 
 [[package]]
 name = "tpm2"
 version = "0.1.0"
 dependencies = [
- "tpm2-sys 0.1.0",
+ "tpm2-sys",
 ]
 
 [[package]]
 name = "tpm2-sys"
 version = "0.1.0"
 dependencies = [
- "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_cpus",
+ "pkg-config",
 ]
 
 [[package]]
 name = "unicode-width"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
 
 [[package]]
 name = "unicode-xid"
-version = "0.1.0"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
 
 [[package]]
 name = "usb_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "usb_util"
 version = "0.1.0"
 dependencies = [
- "assertions 0.1.0",
- "data_model 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "sys_util 0.1.0",
- "usb_sys 0.1.0",
+ "assertions",
+ "data_model",
+ "libc",
+ "remain",
+ "sys_util",
+ "usb_sys",
 ]
 
 [[package]]
 name = "vfio_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "vhost"
 version = "0.1.0"
 dependencies = [
- "assertions 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "net_util 0.1.0",
- "sys_util 0.1.0",
- "virtio_sys 0.1.0",
+ "assertions",
+ "libc",
+ "net_util",
+ "sys_util",
+ "virtio_sys",
 ]
 
 [[package]]
 name = "virtio_sys"
 version = "0.1.0"
 dependencies = [
- "sys_util 0.1.0",
+ "sys_util",
 ]
 
 [[package]]
 name = "vm_control"
 version = "0.1.0"
 dependencies = [
- "data_model 0.1.0",
- "kvm 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg_socket 0.1.0",
- "resources 0.1.0",
- "sys_util 0.1.0",
+ "data_model",
+ "kvm",
+ "libc",
+ "msg_socket",
+ "resources",
+ "sync",
+ "sys_util",
 ]
 
 [[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
 name = "wire_format_derive"
 version = "0.1.0"
 dependencies = [
- "proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "x86_64"
 version = "0.1.0"
 dependencies = [
- "arch 0.1.0",
- "assertions 0.1.0",
- "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
- "data_model 0.1.0",
- "devices 0.1.0",
- "io_jail 0.1.0",
- "kernel_cmdline 0.1.0",
- "kernel_loader 0.1.0",
- "kvm 0.1.0",
- "kvm_sys 0.1.0",
- "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
- "remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "resources 0.1.0",
- "sync 0.1.0",
- "sys_util 0.1.0",
+ "acpi_tables",
+ "arch",
+ "assertions",
+ "data_model",
+ "devices",
+ "io_jail",
+ "kernel_cmdline",
+ "kernel_loader",
+ "kvm",
+ "kvm_sys",
+ "libc",
+ "remain",
+ "resources",
+ "sync",
+ "sys_util",
+ "vm_control",
 ]
-
-[metadata]
-"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
-"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
-"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3"
-"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
-"checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
-"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f"
-"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
-"checksum pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "110d5ee3593dbb73f56294327fe5668bcc997897097cbc76b51e7aed3f52452f"
-"checksum proc-macro2 0.4.21 (registry+https://github.com/rust-lang/crates.io-index)" = "ab2fc21ba78ac73e4ff6b3818ece00be4e175ffbef4d0a717d978b48b24150c4"
-"checksum protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40361836defdd5871ff7e84096c6f6444af7fc157f8ef1789f54f147687caa20"
-"checksum protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12c6abd78435445fc86898ebbd0521a68438063d4a73e23527b7134e6bf58b4a"
-"checksum protoc 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3998c4bc0af8ccbd3cc68245ee9f72663c5ae2fb78bc48ff7719aef11562edea"
-"checksum protoc-rust 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "234c97039c32bb58a883d0deafa57db37e59428ce536f3bdfe1c46cffec04113"
-"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
-"checksum remain 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3bec2543b50be4539fdc27fde082e218cf4c3895358ca77f5c52fe930589e209"
-"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9"
-"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
diff --git a/x86_64-linux-gnu/bin/crosvm b/x86_64-linux-gnu/bin/crosvm
index 163d4b9..8fd2999 100755
--- a/x86_64-linux-gnu/bin/crosvm
+++ b/x86_64-linux-gnu/bin/crosvm
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libOpenglRender.so b/x86_64-linux-gnu/bin/libOpenglRender.so
new file mode 100644
index 0000000..a2de087
--- /dev/null
+++ b/x86_64-linux-gnu/bin/libOpenglRender.so
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libandroid-emu-shared.so b/x86_64-linux-gnu/bin/libandroid-emu-shared.so
new file mode 100644
index 0000000..0fe60c0
--- /dev/null
+++ b/x86_64-linux-gnu/bin/libandroid-emu-shared.so
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libc++.so.1 b/x86_64-linux-gnu/bin/libc++.so.1
new file mode 100644
index 0000000..cb15bbb
--- /dev/null
+++ b/x86_64-linux-gnu/bin/libc++.so.1
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libemugl_common.so b/x86_64-linux-gnu/bin/libemugl_common.so
new file mode 100644
index 0000000..56c880f
--- /dev/null
+++ b/x86_64-linux-gnu/bin/libemugl_common.so
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libepoxy.so.0 b/x86_64-linux-gnu/bin/libepoxy.so.0
index 88f5d63..2c60f7e 100755
--- a/x86_64-linux-gnu/bin/libepoxy.so.0
+++ b/x86_64-linux-gnu/bin/libepoxy.so.0
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libgbm.so.1 b/x86_64-linux-gnu/bin/libgbm.so.1
index f8de7de..e326e94 100755
--- a/x86_64-linux-gnu/bin/libgbm.so.1
+++ b/x86_64-linux-gnu/bin/libgbm.so.1
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libgfxstream_backend.so b/x86_64-linux-gnu/bin/libgfxstream_backend.so
new file mode 100644
index 0000000..b3556b7
--- /dev/null
+++ b/x86_64-linux-gnu/bin/libgfxstream_backend.so
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libminijail.so b/x86_64-linux-gnu/bin/libminijail.so
index 0f2348e..a755b03 100755
--- a/x86_64-linux-gnu/bin/libminijail.so
+++ b/x86_64-linux-gnu/bin/libminijail.so
Binary files differ
diff --git a/x86_64-linux-gnu/bin/libvirglrenderer.so.1 b/x86_64-linux-gnu/bin/libvirglrenderer.so.1
index db6cb9c..f1b230d 100755
--- a/x86_64-linux-gnu/bin/libvirglrenderer.so.1
+++ b/x86_64-linux-gnu/bin/libvirglrenderer.so.1
Binary files differ
diff --git a/x86_64-linux-gnu/builder-packages.txt b/x86_64-linux-gnu/builder-packages.txt
index 22552ee..e8f77f7 100644
--- a/x86_64-linux-gnu/builder-packages.txt
+++ b/x86_64-linux-gnu/builder-packages.txt
@@ -1,523 +1,514 @@
-acpi-support-base	0.142-8
-acpid	1:2.0.28-1+b1
-adduser	3.115
-apt	1.4.9
-apt-utils	1.4.9
-autoconf	2.69-10
-automake	1:1.15-6
-autotools-dev	20161112.1
-base-files	9.9+deb9u11
-base-passwd	3.5.43
-bash	4.4-5
-binutils	2.28-5
-binutils-aarch64-linux-gnu	2.28-5
-bsdmainutils	9.0.12+nmu1
-bsdutils	1:2.29.2-1+deb9u1
-build-essential	12.3
-busybox	1:1.22.0-19+b3
-bzip2	1.0.6-8.1
-ca-certificates	20161130+nmu1+deb9u1
-cloud-guest-utils	0.29-1
-cmake	3.7.2-1
-cmake-data	3.7.2-1
-coreutils	8.26-3
-cpio	2.11+dfsg-6
-cpp	4:6.3.0-4
-cpp-6	6.3.0-18+deb9u1
-cpp-6-aarch64-linux-gnu	6.3.0-18cross1
-cpp-aarch64-linux-gnu	4:6.3.0-4
-cron	3.0pl1-128+deb9u1
-cross-config	2.6.15-1
-crossbuild-essential-arm64	12.3
-curl	7.52.1-5+deb9u9
-dash	0.5.8-2.4
-dbus	1.10.28-0+deb9u1
-debconf	1.5.61
-debconf-i18n	1.5.61
-debian-archive-keyring	2017.5+deb9u1
-debianutils	4.8.1.1
-dh-python	2.20170125
-diffutils	1:3.5-3
-distro-info-data	0.36
-dmidecode	3.0-4
-dmsetup	2:1.02.137-2
-dpkg	1.18.25
-dpkg-cross	2.6.15-1
-dpkg-dev	1.18.25
-e2fslibs:amd64	1.43.4-2+deb9u1
-e2fsprogs	1.43.4-2+deb9u1
-ethtool	1:4.8-1+b1
-fakeroot	1.21-3.1
-file	1:5.30-1+deb9u3
-findutils	4.6.0+git+20161106-2
-g++	4:6.3.0-4
-g++-6	6.3.0-18+deb9u1
-g++-6-aarch64-linux-gnu	6.3.0-18cross1
-g++-aarch64-linux-gnu	4:6.3.0-4
-gcc	4:6.3.0-4
-gcc-6	6.3.0-18+deb9u1
-gcc-6-aarch64-linux-gnu	6.3.0-18cross1
-gcc-6-aarch64-linux-gnu-base:amd64	6.3.0-18cross1
-gcc-6-base:amd64	6.3.0-18+deb9u1
-gcc-6-cross-base	6.3.0-18cross1
-gcc-aarch64-linux-gnu	4:6.3.0-4
-gdisk	1.0.1-1
-gettext-base	0.19.8.1-2+deb9u1
-gir1.2-glib-2.0:amd64	1.50.0-1+b1
-git	1:2.11.0-3+deb9u5
-git-man	1:2.11.0-3+deb9u5
-gnupg	2.1.18-8~deb9u4
-gnupg-agent	2.1.18-8~deb9u4
-google-cloud-packages-archive-keyring	1.2-1
-google-cloud-sdk	279.0.0-0
-google-compute-engine	1:20190916.00-g2
-google-compute-engine-oslogin	1:20191014.00-g1+deb9
-google-osconfig-agent	1:20200130.01-g1
-gpgv	2.1.18-8~deb9u4
-grep	2.27-2
-groff-base	1.22.3-9
-grub-common	2.02~beta3-5+deb9u2
-grub-pc	2.02~beta3-5+deb9u2
-grub-pc-bin	2.02~beta3-5+deb9u2
-grub2-common	2.02~beta3-5+deb9u2
-gzip	1.6-5+b1
-hostname	3.18+b1
-ifupdown	0.8.19
-init	1.48
-init-system-helpers	1.48
-initramfs-tools	0.130
-initramfs-tools-core	0.130
-iproute2	4.9.0-1+deb9u1
-iptables	1.6.0+snapshot20161117-6
-iputils-ping	3:20161105-1
-isc-dhcp-client	4.3.5-3+deb9u1
-isc-dhcp-common	4.3.5-3+deb9u1
-klibc-utils	2.0.4-9
-kmod	23-2
-kpartx	0.6.4-5+deb9u1
-less	481-2.1
-libacl1:amd64	2.2.52-3+b1
-libalgorithm-diff-perl	1.19.03-1
-libalgorithm-diff-xs-perl	0.04-4+b2
+adduser	3.118
+apt	1.8.2
+apt-utils	1.8.2
+autoconf	2.69-11
+automake	1:1.16.1-4
+autopoint	0.19.8.1-9
+autotools-dev	20180224.1
+base-files	10.3+deb10u3
+base-passwd	3.5.46
+bash	5.0-4
+binutils	2.31.1-16
+binutils-aarch64-linux-gnu	2.31.1-16
+binutils-common:amd64	2.31.1-16
+binutils-x86-64-linux-gnu	2.31.1-16
+bsd-mailx	8.1.2-0.20180807cvs-1
+bsdmainutils	11.1.2+b1
+bsdutils	1:2.33.1-0.1
+build-essential	12.6
+bzip2	1.0.6-9.2~deb10u1
+ca-certificates	20190110
+cmake	3.13.4-1
+cmake-data	3.13.4-1
+coreutils	8.30-3
+cpp	4:8.3.0-1
+cpp-8	8.3.0-6
+cpp-8-aarch64-linux-gnu	8.3.0-2cross1
+cpp-aarch64-linux-gnu	4:8.3.0-1
+cron	3.0pl1-134+deb10u1
+cross-config	2.6.15-3
+crossbuild-essential-arm64	12.6
+curl	7.64.0-4+deb10u1
+dash	0.5.10.2-5
+dbus	1.12.16-1
+debconf	1.5.71
+debhelper	12.1.1
+debian-archive-keyring	2019.1
+debianutils	4.8.6.1
+dh-autoreconf	19
+dh-python	3.20190308
+dh-strip-nondeterminism	1.1.2-1
+dialog	1.3-20190211-1
+diffutils	1:3.7-3
+dirmngr	2.2.12-1+deb10u1
+dmsetup	2:1.02.155-3
+dns-root-data	2019031302
+dnsmasq	2.80-1
+dnsmasq-base	2.80-1
+dpkg	1.19.7
+dpkg-cross	2.6.15-3
+dpkg-dev	1.19.7
+dwz	0.12-3
+e2fsprogs	1.44.5-1+deb10u3
+equivs	2.2.0
+exim4-base	4.92-8+deb10u3
+exim4-config	4.92-8+deb10u3
+exim4-daemon-light	4.92-8+deb10u3
+fakeroot	1.23-1
+fdisk	2.33.1-0.1
+file	1:5.35-4+deb10u1
+findutils	4.6.0+git+20190209-2
+g++	4:8.3.0-1
+g++-8	8.3.0-6
+g++-8-aarch64-linux-gnu	8.3.0-2cross1
+g++-aarch64-linux-gnu	4:8.3.0-1
+gcc	4:8.3.0-1
+gcc-8	8.3.0-6
+gcc-8-aarch64-linux-gnu	8.3.0-2cross1
+gcc-8-aarch64-linux-gnu-base:amd64	8.3.0-2cross1
+gcc-8-base:amd64	8.3.0-6
+gcc-8-cross-base	8.3.0-2cross1
+gcc-aarch64-linux-gnu	4:8.3.0-1
+gettext	0.19.8.1-9
+gettext-base	0.19.8.1-9
+gir1.2-glib-2.0:amd64	1.58.3-2
+git	1:2.20.1-2+deb10u3
+git-man	1:2.20.1-2+deb10u3
+gnupg	2.2.12-1+deb10u1
+gnupg-l10n	2.2.12-1+deb10u1
+gnupg-utils	2.2.12-1+deb10u1
+gpg	2.2.12-1+deb10u1
+gpg-agent	2.2.12-1+deb10u1
+gpg-wks-client	2.2.12-1+deb10u1
+gpg-wks-server	2.2.12-1+deb10u1
+gpgconf	2.2.12-1+deb10u1
+gpgsm	2.2.12-1+deb10u1
+gpgv	2.2.12-1+deb10u1
+grep	3.3-1
+groff-base	1.22.4-3
+gzip	1.9-3
+hostname	3.21
+init-system-helpers	1.56+nmu1
+intltool-debian	0.35.0+20060710.5
+iproute2	4.20.0-2
+iptables	1.8.2-4
+krb5-locales	1.17-3
+less	487-0.1+b1
+libacl1:amd64	2.2.53-4
+libalgorithm-diff-perl	1.19.03-2
+libalgorithm-diff-xs-perl	0.04-5+b1
 libalgorithm-merge-perl	0.08-3
-libapparmor1:amd64	2.11.0-3+deb9u2
-libapt-inst2.0:amd64	1.4.9
-libapt-pkg5.0:amd64	1.4.9
-libarchive13:amd64	3.2.2-2+deb9u2
-libasan3:amd64	6.3.0-18+deb9u1
-libasan3-arm64-cross	6.3.0-18cross1
-libassuan0:amd64	2.4.3-2
-libatomic1:amd64	6.3.0-18+deb9u1
-libatomic1-arm64-cross	6.3.0-18cross1
-libattr1:amd64	1:2.4.47-2+b2
-libaudit-common	1:2.6.7-2
-libaudit1:amd64	1:2.6.7-2
+libapparmor1:amd64	2.13.2-10
+libapt-inst2.0:amd64	1.8.2
+libapt-pkg5.0:amd64	1.8.2
+libarchive-cpio-perl	0.10-1
+libarchive-zip-perl	1.64-1
+libarchive13:amd64	3.3.3-4+deb10u1
+libargon2-1:amd64	0~20171227-0.2
+libasan5:amd64	8.3.0-6
+libasan5-arm64-cross	8.3.0-2cross1
+libassuan0:amd64	2.5.2-1
+libatm1:amd64	1:2.5.1-2
+libatomic1:amd64	8.3.0-6
+libatomic1-arm64-cross	8.3.0-2cross1
+libattr1:amd64	1:2.4.48-4
+libaudit-common	1:2.8.4-3
+libaudit1:amd64	1:2.8.4-3
 libauthen-sasl-perl	2.1600-1
-libblkid1:amd64	2.29.2-1+deb9u1
-libbsd0:amd64	0.8.3-1
-libbz2-1.0:amd64	1.0.6-8.1
-libc-bin	2.24-11+deb9u4
-libc-dev-bin	2.24-11+deb9u4
-libc-l10n	2.24-11+deb9u4
-libc6:amd64	2.24-11+deb9u4
-libc6-arm64-cross	2.24-10cross1
-libc6-dev:amd64	2.24-11+deb9u4
-libc6-dev-arm64-cross	2.24-10cross1
-libcap-dev:amd64	1:2.25-1
-libcap-ng0:amd64	0.7.7-3+b1
-libcap2:amd64	1:2.25-1
-libcc1-0:amd64	6.3.0-18+deb9u1
-libcilkrts5:amd64	6.3.0-18+deb9u1
-libcomerr2:amd64	1.43.4-2+deb9u1
+libbinutils:amd64	2.31.1-16
+libblkid1:amd64	2.33.1-0.1
+libbsd0:amd64	0.9.1-2
+libbz2-1.0:amd64	1.0.6-9.2~deb10u1
+libc-bin	2.28-10
+libc-dev-bin	2.28-10
+libc6:amd64	2.28-10
+libc6-arm64-cross	2.28-7cross1
+libc6-dev:amd64	2.28-10
+libc6-dev-arm64-cross	2.28-7cross1
+libcap-dev:amd64	1:2.25-2
+libcap-ng0:amd64	0.7.9-2
+libcap2:amd64	1:2.25-2
+libcap2-bin	1:2.25-2
+libcc1-0:amd64	8.3.0-6
+libcom-err2:amd64	1.44.5-1+deb10u3
 libconfig-auto-perl	0.44-1
-libconfig-inifiles-perl	2.94-1
-libcryptsetup4:amd64	2:1.7.3-4
-libcurl3:amd64	7.52.1-5+deb9u9
-libcurl3-gnutls:amd64	7.52.1-5+deb9u9
-libdb5.3:amd64	5.3.28-12+deb9u1
-libdbus-1-3:amd64	1.10.28-0+deb9u1
-libdbus-glib-1-2:amd64	0.108-2
-libdebconfclient0:amd64	0.227
-libdebian-dpkgcross-perl	2.6.15-1
-libdevmapper1.02.1:amd64	2:1.02.137-2
-libdns-export162	1:9.10.3.dfsg.P4-12.3+deb9u5
-libdpkg-perl	1.18.25
-libdrm-amdgpu1:amd64	2.4.74-1
-libdrm-dev:amd64	2.4.74-1
-libdrm-intel1:amd64	2.4.74-1
-libdrm-nouveau2:amd64	2.4.74-1
-libdrm-radeon1:amd64	2.4.74-1
-libdrm2:amd64	2.4.74-1
-libedit2:amd64	3.1-20160903-3
-libegl1-mesa:amd64	13.0.6-1+b2
-libegl1-mesa-dev:amd64	13.0.6-1+b2
-libelf1:amd64	0.168-1
+libconfig-inifiles-perl	3.000001-1
+libcroco3:amd64	0.6.12-3
+libcryptsetup12:amd64	2:2.1.0-5+deb10u2
+libcurl3-gnutls:amd64	7.64.0-4+deb10u1
+libcurl4:amd64	7.64.0-4+deb10u1
+libdata-dump-perl	1.23-1
+libdb5.3:amd64	5.3.28+dfsg1-0.5
+libdbus-1-3:amd64	1.12.16-1
+libdebconfclient0:amd64	0.249
+libdebian-dpkgcross-perl	2.6.15-3
+libdevmapper1.02.1:amd64	2:1.02.155-3
+libdpkg-perl	1.19.7
+libdrm-amdgpu1:amd64	2.4.97-1
+libdrm-common	2.4.97-1
+libdrm-dev:amd64	2.4.97-1
+libdrm-intel1:amd64	2.4.97-1
+libdrm-nouveau2:amd64	2.4.97-1
+libdrm-radeon1:amd64	2.4.97-1
+libdrm2:amd64	2.4.97-1
+libedit2:amd64	3.1-20181209-1
+libegl-mesa0:amd64	18.3.6-2+deb10u1
+libegl1:amd64	1.1.0-1
+libegl1-mesa-dev:amd64	18.3.6-2+deb10u1
+libelf1:amd64	0.176-1.1
 libencode-locale-perl	1.05-1
-liberror-perl	0.17024-1
-libestr0	0.1.10-2
-libexpat1:amd64	2.2.0-2+deb9u3
-libexpat1-dev:amd64	2.2.0-2+deb9u3
-libfakeroot:amd64	1.21-3.1
-libfastjson4:amd64	0.99.4-1
-libfdisk1:amd64	2.29.2-1+deb9u1
-libfdt-dev	1.4.2-1
-libfdt1:amd64	1.4.2-1
-libffi6:amd64	3.2.1-6
-libfile-fcntllock-perl	0.22-3+b2
-libfile-homedir-perl	1.00-1
+liberror-perl	0.17027-2
+libestr0:amd64	0.1.10-2.1
+libevent-2.1-6:amd64	2.1.8-stable-4
+libexpat1:amd64	2.2.6-2+deb10u1
+libexpat1-dev:amd64	2.2.6-2+deb10u1
+libext2fs2:amd64	1.44.5-1+deb10u3
+libfakeroot:amd64	1.23-1
+libfastjson4:amd64	0.99.8-2
+libfdisk1:amd64	2.33.1-0.1
+libfdt-dev	1.4.7-3
+libfdt1:amd64	1.4.7-3
+libffi6:amd64	3.2.1-9
+libfile-fcntllock-perl	0.22-3+b5
+libfile-homedir-perl	1.004-1
 libfile-listing-perl	6.04-1
-libfile-which-perl	1.21-1
+libfile-stripnondeterminism-perl	1.1.2-1
+libfile-which-perl	1.23-1
 libfont-afm-perl	1.20-2
-libfreetype6:amd64	2.6.3-3.2
-libfuse2:amd64	2.9.7-1+deb9u2
-libgbm1:amd64	13.0.6-1+b2
-libgcc-6-dev:amd64	6.3.0-18+deb9u1
-libgcc-6-dev-arm64-cross	6.3.0-18cross1
-libgcc1:amd64	1:6.3.0-18+deb9u1
-libgcc1-arm64-cross	1:6.3.0-18cross1
-libgcrypt20:amd64	1.7.6-2+deb9u3
-libgdbm3:amd64	1.8.3-14
-libgirepository-1.0-1:amd64	1.50.0-1+b1
-libgl1-mesa-dev:amd64	13.0.6-1+b2
-libgl1-mesa-dri:amd64	13.0.6-1+b2
-libgl1-mesa-glx:amd64	13.0.6-1+b2
-libglapi-mesa:amd64	13.0.6-1+b2
-libgles2-mesa:amd64	13.0.6-1+b2
-libgles2-mesa-dev:amd64	13.0.6-1+b2
-libglib2.0-0:amd64	2.50.3-2+deb9u1
-libglib2.0-data	2.50.3-2+deb9u1
-libgmp10:amd64	2:6.1.2+dfsg-1
-libgnutls30:amd64	3.5.8-5+deb9u4
-libgomp1:amd64	6.3.0-18+deb9u1
-libgomp1-arm64-cross	6.3.0-18cross1
-libgpg-error0:amd64	1.26-2
-libgpm2:amd64	1.20.4-6.2+b1
-libgssapi-krb5-2:amd64	1.15-1+deb9u1
-libhogweed4:amd64	3.3-1+b2
+libgbm1:amd64	18.3.6-2+deb10u1
+libgcc-8-dev:amd64	8.3.0-6
+libgcc-8-dev-arm64-cross	8.3.0-2cross1
+libgcc1:amd64	1:8.3.0-6
+libgcc1-arm64-cross	1:8.3.0-2cross1
+libgcrypt20:amd64	1.8.4-5
+libgdbm-compat4:amd64	1.18.1-4
+libgdbm6:amd64	1.18.1-4
+libgirepository-1.0-1:amd64	1.58.3-2
+libgl1:amd64	1.1.0-1
+libgl1-mesa-dev:amd64	18.3.6-2+deb10u1
+libgl1-mesa-dri:amd64	18.3.6-2+deb10u1
+libglapi-mesa:amd64	18.3.6-2+deb10u1
+libgles1:amd64	1.1.0-1
+libgles2:amd64	1.1.0-1
+libgles2-mesa-dev:amd64	18.3.6-2+deb10u1
+libglib2.0-0:amd64	2.58.3-2+deb10u2
+libglib2.0-data	2.58.3-2+deb10u2
+libglvnd-core-dev:amd64	1.1.0-1
+libglvnd-dev:amd64	1.1.0-1
+libglvnd0:amd64	1.1.0-1
+libglx-mesa0:amd64	18.3.6-2+deb10u1
+libglx0:amd64	1.1.0-1
+libgmp10:amd64	2:6.1.2+dfsg-4
+libgnutls-dane0:amd64	3.6.7-4+deb10u3
+libgnutls30:amd64	3.6.7-4+deb10u3
+libgomp1:amd64	8.3.0-6
+libgomp1-arm64-cross	8.3.0-2cross1
+libgpg-error0:amd64	1.35-1
+libgpm2:amd64	1.20.7-5
+libgssapi-krb5-2:amd64	1.17-3
+libhogweed4:amd64	3.4.1-1
 libhtml-form-perl	6.03-1
 libhtml-format-perl	2.12-1
-libhtml-parser-perl	3.72-3
+libhtml-parser-perl	3.72-3+b3
 libhtml-tagset-perl	3.20-3
-libhtml-tree-perl	5.03-2
-libhttp-cookies-perl	6.01-1
-libhttp-daemon-perl	6.01-1
+libhtml-tree-perl	5.07-2
+libhttp-cookies-perl	6.04-1
+libhttp-daemon-perl	6.01-3
 libhttp-date-perl	6.02-1
-libhttp-message-perl	6.11-1
-libhttp-negotiate-perl	6.00-2
-libicu57:amd64	57.1-6+deb9u3
-libidn11:amd64	1.33-1
-libidn2-0:amd64	0.16-1+deb9u1
+libhttp-message-perl	6.18-1
+libhttp-negotiate-perl	6.01-1
+libicu63:amd64	63.1-6+deb10u1
+libidn11:amd64	1.33-2.2
+libidn2-0:amd64	2.0.5-1+deb10u1
 libio-html-perl	1.001-1
-libio-socket-ssl-perl	2.044-1
+libio-socket-ssl-perl	2.060-3
 libio-string-perl	1.08-3
-libip4tc0:amd64	1.6.0+snapshot20161117-6
-libip6tc0:amd64	1.6.0+snapshot20161117-6
-libiptc0:amd64	1.6.0+snapshot20161117-6
-libisc-export160	1:9.10.3.dfsg.P4-12.3+deb9u5
-libisl15:amd64	0.18-1
-libitm1:amd64	6.3.0-18+deb9u1
-libitm1-arm64-cross	6.3.0-18cross1
-libjson-c3:amd64	0.12.1-1.1
+libip4tc0:amd64	1.8.2-4
+libip6tc0:amd64	1.8.2-4
+libiptc0:amd64	1.8.2-4
+libisl19:amd64	0.20-2
+libitm1:amd64	8.3.0-6
+libitm1-arm64-cross	8.3.0-2cross1
+libjansson4:amd64	2.12-1
+libjson-c3:amd64	0.12.1+ds-2
 libjsoncpp1:amd64	1.7.4-3
-libk5crypto3:amd64	1.15-1+deb9u1
-libkeyutils1:amd64	1.5.9-9
-libklibc	2.0.4-9
-libkmod2:amd64	23-2
-libkrb5-3:amd64	1.15-1+deb9u1
-libkrb5support0:amd64	1.15-1+deb9u1
+libk5crypto3:amd64	1.17-3
+libkeyutils1:amd64	1.6-6
+libkmod2:amd64	26-1
+libkrb5-3:amd64	1.17-3
+libkrb5support0:amd64	1.17-3
 libksba8:amd64	1.3.5-2
-libldap-2.4-2:amd64	2.4.44+dfsg-5+deb9u3
-libldap-common	2.4.44+dfsg-5+deb9u3
-libllvm3.9:amd64	1:3.9.1-9
-liblocale-gettext-perl	1.07-3+b1
-liblogging-stdlog0:amd64	1.0.5-2+b2
-liblognorm5:amd64	2.0.1-1.1+b1
-liblsan0:amd64	6.3.0-18+deb9u1
-libltdl-dev:amd64	2.4.6-2
-libltdl7:amd64	2.4.6-2
+libldap-2.4-2:amd64	2.4.47+dfsg-3+deb10u2
+libldap-common	2.4.47+dfsg-3+deb10u2
+libllvm7:amd64	1:7.0.1-8
+liblocale-gettext-perl	1.07-3+b4
+liblockfile-bin	1.14-1.1
+liblockfile1:amd64	1.14-1.1
+liblognorm5:amd64	2.0.5-1
+liblsan0:amd64	8.3.0-6
+liblsan0-arm64-cross	8.3.0-2cross1
+libltdl-dev:amd64	2.4.6-9
+libltdl7:amd64	2.4.6-9
 liblwp-mediatypes-perl	6.02-1
-liblwp-protocol-https-perl	6.06-2
-liblz4-1:amd64	0.0~r131-2+b1
-liblzma5:amd64	5.2.2-1.2+b1
-liblzo2-2:amd64	2.08-1.2+b2
-libmagic-mgc	1:5.30-1+deb9u3
-libmagic1:amd64	1:5.30-1+deb9u3
+liblwp-protocol-https-perl	6.07-2
+liblz4-1:amd64	1.8.3-1
+liblzma5:amd64	5.2.4-1
+libmagic-mgc	1:5.35-4+deb10u1
+libmagic1:amd64	1:5.35-4+deb10u1
+libmail-sendmail-perl	0.80-1
 libmailtools-perl	2.18-1
 libmnl0:amd64	1.0.4-2
-libmount1:amd64	2.29.2-1+deb9u1
-libmpc3:amd64	1.0.3-1+b2
-libmpdec2:amd64	2.4.2-1
-libmpfr4:amd64	3.1.5-1
-libmpx2:amd64	6.3.0-18+deb9u1
-libncurses5:amd64	6.0+20161126-1+deb9u2
-libncursesw5:amd64	6.0+20161126-1+deb9u2
-libnet-http-perl	6.12-1
+libmount1:amd64	2.33.1-0.1
+libmpc3:amd64	1.1.0-1
+libmpdec2:amd64	2.4.2-2
+libmpfr6:amd64	4.0.2-1
+libmpx2:amd64	8.3.0-6
+libncurses6:amd64	6.1+20181013-2+deb10u2
+libncursesw6:amd64	6.1+20181013-2+deb10u2
+libnet-http-perl	6.18-1
 libnet-smtp-ssl-perl	1.04-1
-libnet-ssleay-perl	1.80-1
-libnetfilter-conntrack3:amd64	1.0.6-2
-libnettle6:amd64	3.3-1+b2
-libnewt0.52:amd64	0.52.19-1+b1
-libnfnetlink0:amd64	1.0.1-3
-libnghttp2-14:amd64	1.18.1-1+deb9u1
-libnpth0:amd64	1.3-1
-libopts25:amd64	1:5.18.12-3
-libp11-kit0:amd64	0.23.3-2
-libpam-modules:amd64	1.1.8-3.6
-libpam-modules-bin	1.1.8-3.6
-libpam-runtime	1.1.8-3.6
-libpam0g:amd64	1.1.8-3.6
-libparted2:amd64	3.2-17
-libpciaccess0:amd64	0.13.4-1+b2
-libpcre3:amd64	2:8.39-3
-libperl5.24:amd64	5.24.1-3+deb9u5
-libpipeline1:amd64	1.4.1-2
-libpng16-16:amd64	1.6.28-1+deb9u1
-libpopt0:amd64	1.16-10+b2
-libprocps6:amd64	2:3.3.12-3+deb9u1
-libprotobuf10:amd64	3.0.0-9
-libprotoc10:amd64	3.0.0-9
-libpsl5:amd64	0.17.0-3
-libpthread-stubs0-dev:amd64	0.3-4
-libpython-stdlib:amd64	2.7.13-2
-libpython2.7-minimal:amd64	2.7.13-2+deb9u3
-libpython2.7-stdlib:amd64	2.7.13-2+deb9u3
-libpython3-dev:amd64	3.5.3-1
-libpython3-stdlib:amd64	3.5.3-1
-libpython3.5:amd64	3.5.3-1+deb9u1
-libpython3.5-dev:amd64	3.5.3-1+deb9u1
-libpython3.5-minimal:amd64	3.5.3-1+deb9u1
-libpython3.5-stdlib:amd64	3.5.3-1+deb9u1
-libquadmath0:amd64	6.3.0-18+deb9u1
-libreadline7:amd64	7.0-3
-librtmp1:amd64	2.4+20151223.gitfa8646d.1-1+b1
-libsasl2-2:amd64	2.1.27~101-g0780600+dfsg-3+deb9u1
-libsasl2-modules-db:amd64	2.1.27~101-g0780600+dfsg-3+deb9u1
-libseccomp2:amd64	2.3.1-2.1+deb9u1
-libselinux1:amd64	2.6-3+b3
-libsemanage-common	2.6-2
-libsemanage1:amd64	2.6-2
-libsensors4:amd64	1:3.4.0-4
-libsepol1:amd64	2.6-2
-libsigsegv2:amd64	2.10-5
-libslang2:amd64	2.3.1-5
-libsmartcols1:amd64	2.29.2-1+deb9u1
-libsqlite3-0:amd64	3.16.2-5+deb9u1
-libss2:amd64	1.43.4-2+deb9u1
-libssh2-1:amd64	1.7.0-1+deb9u1
-libssl-dev:amd64	1.1.0l-1~deb9u1
-libssl-doc	1.1.0l-1~deb9u1
-libssl1.0.2:amd64	1.0.2u-1~deb9u1
-libssl1.1:amd64	1.1.0l-1~deb9u1
-libstdc++-6-dev:amd64	6.3.0-18+deb9u1
-libstdc++-6-dev-arm64-cross	6.3.0-18cross1
-libstdc++6:amd64	6.3.0-18+deb9u1
-libstdc++6-arm64-cross	6.3.0-18cross1
-libsystemd0:amd64	232-25+deb9u12
-libtasn1-6:amd64	4.10-1.1+deb9u1
-libtext-charwidth-perl	0.04-7+b5
-libtext-iconv-perl	1.7-5+b4
-libtext-wrapi18n-perl	0.06-7.1
-libtimedate-perl	2.3000-2
-libtinfo5:amd64	6.0+20161126-1+deb9u2
-libtool	2.4.6-2
-libtsan0:amd64	6.3.0-18+deb9u1
-libtxc-dxtn-s2tc:amd64	1.0+git20151227-2
-libubsan0:amd64	6.3.0-18+deb9u1
-libubsan0-arm64-cross	6.3.0-18cross1
-libudev1:amd64	232-25+deb9u12
-libunistring0:amd64	0.9.6+really0.9.3-0.1
-liburi-perl	1.71-1
-libusb-1.0-0:amd64	2:1.0.21-1
-libusb-1.0-0-dev:amd64	2:1.0.21-1
-libusb-1.0-doc	2:1.0.21-1
-libustr-1.0-1:amd64	1.0.4-6
-libuuid1:amd64	2.29.2-1+deb9u1
-libuv1:amd64	1.9.1-3
-libwayland-bin	1.12.0-1+deb9u1
-libwayland-client0:amd64	1.12.0-1+deb9u1
-libwayland-cursor0:amd64	1.12.0-1+deb9u1
-libwayland-dev:amd64	1.12.0-1+deb9u1
-libwayland-egl1-mesa:amd64	13.0.6-1+b2
-libwayland-server0:amd64	1.12.0-1+deb9u1
-libwrap0:amd64	7.6.q-26
-libwww-perl	6.15-1
-libwww-robotrules-perl	6.01-1
-libx11-6:amd64	2:1.6.4-3+deb9u1
-libx11-data	2:1.6.4-3+deb9u1
-libx11-dev:amd64	2:1.6.4-3+deb9u1
-libx11-doc	2:1.6.4-3+deb9u1
-libx11-xcb-dev:amd64	2:1.6.4-3+deb9u1
-libx11-xcb1:amd64	2:1.6.4-3+deb9u1
-libxapian30:amd64	1.4.3-2+deb9u3
-libxau-dev:amd64	1:1.0.8-1
-libxau6:amd64	1:1.0.8-1
-libxcb-dri2-0:amd64	1.12-1
-libxcb-dri2-0-dev:amd64	1.12-1
-libxcb-dri3-0:amd64	1.12-1
-libxcb-dri3-dev:amd64	1.12-1
-libxcb-glx0:amd64	1.12-1
-libxcb-glx0-dev:amd64	1.12-1
-libxcb-present-dev:amd64	1.12-1
-libxcb-present0:amd64	1.12-1
-libxcb-randr0:amd64	1.12-1
-libxcb-randr0-dev:amd64	1.12-1
-libxcb-render0:amd64	1.12-1
-libxcb-render0-dev:amd64	1.12-1
-libxcb-shape0:amd64	1.12-1
-libxcb-shape0-dev:amd64	1.12-1
-libxcb-sync-dev:amd64	1.12-1
-libxcb-sync1:amd64	1.12-1
-libxcb-xfixes0:amd64	1.12-1
-libxcb-xfixes0-dev:amd64	1.12-1
-libxcb1:amd64	1.12-1
-libxcb1-dev:amd64	1.12-1
-libxdamage-dev:amd64	1:1.1.4-2+b3
-libxdamage1:amd64	1:1.1.4-2+b3
+libnet-ssleay-perl	1.85-2+b1
+libnetfilter-conntrack3:amd64	1.0.7-1
+libnettle6:amd64	3.4.1-1
+libnfnetlink0:amd64	1.0.1-3+b1
+libnftables0:amd64	0.9.0-2
+libnftnl11:amd64	1.1.2-2
+libnghttp2-14:amd64	1.36.0-2+deb10u1
+libnpth0:amd64	1.6-1
+libnss-systemd:amd64	241-7~deb10u3
+libopengl0:amd64	1.1.0-1
+libp11-kit0:amd64	0.23.15-2
+libpam-cap:amd64	1:2.25-2
+libpam-modules:amd64	1.3.1-5
+libpam-modules-bin	1.3.1-5
+libpam-runtime	1.3.1-5
+libpam-systemd:amd64	241-7~deb10u3
+libpam0g:amd64	1.3.1-5
+libpciaccess0:amd64	0.14-1
+libpcre2-8-0:amd64	10.32-5
+libpcre3:amd64	2:8.39-12
+libperl5.28:amd64	5.28.1-6
+libpipeline1:amd64	1.5.1-2
+libpopt0:amd64	1.16-12
+libprocps7:amd64	2:3.3.15-2
+libprotobuf-dev:amd64	3.6.1.3-2
+libprotobuf-lite17:amd64	3.6.1.3-2
+libprotobuf17:amd64	3.6.1.3-2
+libprotoc17:amd64	3.6.1.3-2
+libpsl5:amd64	0.20.2-2
+libpthread-stubs0-dev:amd64	0.4-1
+libpython-stdlib:amd64	2.7.16-1
+libpython2-stdlib:amd64	2.7.16-1
+libpython2.7-minimal:amd64	2.7.16-2+deb10u1
+libpython2.7-stdlib:amd64	2.7.16-2+deb10u1
+libpython3-dev:amd64	3.7.3-1
+libpython3-stdlib:amd64	3.7.3-1
+libpython3.7:amd64	3.7.3-2+deb10u1
+libpython3.7-dev:amd64	3.7.3-2+deb10u1
+libpython3.7-minimal:amd64	3.7.3-2+deb10u1
+libpython3.7-stdlib:amd64	3.7.3-2+deb10u1
+libquadmath0:amd64	8.3.0-6
+libreadline7:amd64	7.0-5
+librhash0:amd64	1.3.8-1
+librtmp1:amd64	2.4+20151223.gitfa8646d.1-2
+libsasl2-2:amd64	2.1.27+dfsg-1+deb10u1
+libsasl2-modules:amd64	2.1.27+dfsg-1+deb10u1
+libsasl2-modules-db:amd64	2.1.27+dfsg-1+deb10u1
+libseccomp2:amd64	2.3.3-4
+libselinux1:amd64	2.8-1+b1
+libsemanage-common	2.8-2
+libsemanage1:amd64	2.8-2
+libsensors-config	1:3.5.0-3
+libsensors5:amd64	1:3.5.0-3
+libsepol1:amd64	2.8-1
+libsigsegv2:amd64	2.12-2
+libsmartcols1:amd64	2.33.1-0.1
+libsqlite3-0:amd64	3.27.2-3
+libss2:amd64	1.44.5-1+deb10u3
+libssh2-1:amd64	1.8.0-2.1
+libssl-dev:amd64	1.1.1d-0+deb10u3
+libssl1.1:amd64	1.1.1d-0+deb10u3
+libstdc++-8-dev:amd64	8.3.0-6
+libstdc++-8-dev-arm64-cross	8.3.0-2cross1
+libstdc++6:amd64	8.3.0-6
+libstdc++6-arm64-cross	8.3.0-2cross1
+libsys-hostname-long-perl	1.5-1
+libsystemd0:amd64	241-7~deb10u3
+libtasn1-6:amd64	4.13-3
+libtimedate-perl	2.3000-2+deb10u1
+libtinfo6:amd64	6.1+20181013-2+deb10u2
+libtool	2.4.6-9
+libtry-tiny-perl	0.30-1
+libtsan0:amd64	8.3.0-6
+libtsan0-arm64-cross	8.3.0-2cross1
+libubsan1:amd64	8.3.0-6
+libubsan1-arm64-cross	8.3.0-2cross1
+libuchardet0:amd64	0.0.6-3
+libudev1:amd64	241-7~deb10u3
+libunbound8:amd64	1.9.0-2+deb10u1
+libunistring2:amd64	0.9.10-1
+liburi-perl	1.76-1
+libusb-1.0-0:amd64	2:1.0.22-2
+libusb-1.0-0-dev:amd64	2:1.0.22-2
+libusb-1.0-doc	2:1.0.22-2
+libuuid1:amd64	2.33.1-0.1
+libuv1:amd64	1.24.1-1
+libwayland-bin	1.16.0-1
+libwayland-client0:amd64	1.16.0-1
+libwayland-cursor0:amd64	1.16.0-1
+libwayland-dev:amd64	1.16.0-1
+libwayland-egl1:amd64	1.16.0-1
+libwayland-server0:amd64	1.16.0-1
+libwrap0:amd64	7.6.q-28
+libwww-perl	6.36-2
+libwww-robotrules-perl	6.02-1
+libx11-6:amd64	2:1.6.7-1
+libx11-data	2:1.6.7-1
+libx11-dev:amd64	2:1.6.7-1
+libx11-xcb-dev:amd64	2:1.6.7-1
+libx11-xcb1:amd64	2:1.6.7-1
+libxau-dev:amd64	1:1.0.8-1+b2
+libxau6:amd64	1:1.0.8-1+b2
+libxcb-dri2-0:amd64	1.13.1-2
+libxcb-dri2-0-dev:amd64	1.13.1-2
+libxcb-dri3-0:amd64	1.13.1-2
+libxcb-dri3-dev:amd64	1.13.1-2
+libxcb-glx0:amd64	1.13.1-2
+libxcb-glx0-dev:amd64	1.13.1-2
+libxcb-present-dev:amd64	1.13.1-2
+libxcb-present0:amd64	1.13.1-2
+libxcb-randr0:amd64	1.13.1-2
+libxcb-randr0-dev:amd64	1.13.1-2
+libxcb-render0:amd64	1.13.1-2
+libxcb-render0-dev:amd64	1.13.1-2
+libxcb-shape0:amd64	1.13.1-2
+libxcb-shape0-dev:amd64	1.13.1-2
+libxcb-sync-dev:amd64	1.13.1-2
+libxcb-sync1:amd64	1.13.1-2
+libxcb-xfixes0:amd64	1.13.1-2
+libxcb-xfixes0-dev:amd64	1.13.1-2
+libxcb1:amd64	1.13.1-2
+libxcb1-dev:amd64	1.13.1-2
+libxdamage-dev:amd64	1:1.1.4-3+b3
+libxdamage1:amd64	1:1.1.4-3+b3
 libxdmcp-dev:amd64	1:1.1.2-3
 libxdmcp6:amd64	1:1.1.2-3
 libxext-dev:amd64	2:1.3.3-1+b2
 libxext6:amd64	2:1.3.3-1+b2
 libxfixes-dev:amd64	1:5.0.3-1
 libxfixes3:amd64	1:5.0.3-1
-libxml-libxml-perl	2.0128+dfsg-1+deb9u1
-libxml-namespacesupport-perl	1.11-1
-libxml-parser-perl	2.44-2+b1
-libxml-sax-base-perl	1.07-1
-libxml-sax-expat-perl	0.40-2
-libxml-sax-perl	0.99+dfsg-2
-libxml-simple-perl	2.22-1
-libxml2:amd64	2.9.4+dfsg1-2.2+deb9u2
-libxshmfence-dev:amd64	1.2-1+b2
-libxshmfence1:amd64	1.2-1+b2
-libxtables12:amd64	1.6.0+snapshot20161117-6
+libxml-libxml-perl	2.0134+dfsg-1
+libxml-namespacesupport-perl	1.12-1
+libxml-parser-perl	2.44-4
+libxml-sax-base-perl	1.09-1
+libxml-sax-expat-perl	0.51-1
+libxml-sax-perl	1.00+dfsg-1
+libxml-simple-perl	2.25-1
+libxml2:amd64	2.9.4+dfsg1-7+b3
+libxmuu1:amd64	2:1.1.2-2+b3
+libxshmfence-dev:amd64	1.3-1
+libxshmfence1:amd64	1.3-1
+libxtables12:amd64	1.8.2-4
 libxxf86vm-dev:amd64	1:1.1.4-1+b2
 libxxf86vm1:amd64	1:1.1.4-1+b2
-libyaml-libyaml-perl	0.63-2
-libyaml-perl	1.21-1
-linux-base	4.5
-linux-image-4.9.0-11-amd64	4.9.189-3+deb9u2
-linux-image-amd64	4.9+80+deb9u9
-linux-libc-dev:amd64	4.9.189-3+deb9u2
-linux-libc-dev-arm64-cross	4.9.25-1cross1
-locales	2.24-11+deb9u4
-login	1:4.4-4.1
-logrotate	3.11.0-0.1
-lsb-base	9.20161125
-lsb-release	9.20161125
-m4	1.4.18-1
-make	4.1-9.1
-man-db	2.7.6.1-2
-manpages	4.10-2
-manpages-dev	4.10-2
+libyaml-0-2:amd64	0.2.1-1
+libyaml-libyaml-perl	0.76+repack-1
+libyaml-perl	1.27-1
+libzstd1:amd64	1.3.8+dfsg-3
+linux-libc-dev:amd64	4.19.98-1+deb10u1
+linux-libc-dev-arm64-cross	4.19.20-1cross1
+login	1:4.5-1.1
+logrotate	3.14.0-4
+lsb-base	10.2019051400
+m4	1.4.18-2
+make	4.2.1-1.2
+man-db	2.8.5-2
+manpages	4.16-2
+manpages-dev	4.16-2
 mawk	1.3.3-17+b3
-mesa-common-dev:amd64	13.0.6-1+b2
-mime-support	3.60
-mount	2.29.2-1+deb9u1
-multiarch-support	2.24-11+deb9u4
-nano	2.7.4-1
-nasm	2.12.01-1+b1
-ncurses-base	6.0+20161126-1+deb9u2
-ncurses-bin	6.0+20161126-1+deb9u2
-net-tools	1.60+git20161116.90da8a0-1
-netbase	5.4
-ninja-build	1.7.2-1
-ntp	1:4.2.8p10+dfsg-3+deb9u2
-openssh-client	1:7.4p1-10+deb9u7
-openssh-server	1:7.4p1-10+deb9u7
-openssh-sftp-server	1:7.4p1-10+deb9u7
-openssl	1.1.0l-1~deb9u1
-parted	3.2-17
-passwd	1:4.4-4.1
-patch	2.7.5-1+deb9u2
-perl	5.24.1-3+deb9u5
-perl-base	5.24.1-3+deb9u5
-perl-modules-5.24	5.24.1-3+deb9u5
+mesa-common-dev:amd64	18.3.6-2+deb10u1
+mime-support	3.62
+mount	2.33.1-0.1
+nasm	2.14-1
+ncurses-base	6.1+20181013-2+deb10u2
+ncurses-bin	6.1+20181013-2+deb10u2
+ncurses-term	6.1+20181013-2+deb10u2
+net-tools	1.60+git20180626.aebd88e-1
+netbase	5.6
+nftables	0.9.0-2
+ninja-build	1.8.2-1
+openssh-client	1:7.9p1-10+deb10u2
+openssh-server	1:7.9p1-10+deb10u2
+openssh-sftp-server	1:7.9p1-10+deb10u2
+openssl	1.1.1d-0+deb10u3
+passwd	1:4.5-1.1
+patch	2.7.6-3+deb10u1
+perl	5.28.1-6
+perl-base	5.28.1-6
+perl-modules-5.28	5.28.1-6
 perl-openssl-defaults:amd64	3
-pinentry-curses	1.0.0-2
-pkg-config	0.29-4+b1
-procps	2:3.3.12-3+deb9u1
-protobuf-compiler	3.0.0-9
-python	2.7.13-2
-python-apt-common	1.4.1
-python-boto	2.44.0-1
-python-chardet	2.3.0-2
-python-crcmod	1.7-2+b2
-python-google-compute-engine	1:20191210.00-g1
-python-minimal	2.7.13-2
-python-pip-whl	9.0.1-2+deb9u1
-python-pkg-resources	33.1.1-1
-python-requests	2.12.4-1
-python-six	1.10.0-3
-python-urllib3	1.19.1-1
-python2.7	2.7.13-2+deb9u3
-python2.7-minimal	2.7.13-2+deb9u3
-python3	3.5.3-1
-python3-apt	1.4.1
-python3-cffi-backend	1.9.1-2
-python3-crypto	2.6.1-7
-python3-cryptography	1.7.1-3+deb9u1
-python3-dbus	1.2.4-1+b1
-python3-dev	3.5.3-1
-python3-distro	1.0.1-2
-python3-gi	3.22.0-2
-python3-google-compute-engine	1:20191210.00-g1
-python3-idna	2.2-1
-python3-keyring	10.1-1
-python3-keyrings.alt	1.3-1
-python3-minimal	3.5.3-1
-python3-pip	9.0.1-2+deb9u1
-python3-pkg-resources	33.1.1-1
-python3-pyasn1	0.1.9-2
+pinentry-curses	1.1.0-2
+pkg-config	0.29-6
+po-debconf	1.0.21
+procps	2:3.3.15-2
+protobuf-compiler	3.6.1.3-2
+psmisc	23.2-1
+publicsuffix	20190415.1030-1
+python	2.7.16-1
+python-minimal	2.7.16-1
+python-pip-whl	18.1-5
+python2	2.7.16-1
+python2-minimal	2.7.16-1
+python2.7	2.7.16-2+deb10u1
+python2.7-minimal	2.7.16-2+deb10u1
+python3	3.7.3-1
+python3-asn1crypto	0.24.0-1
+python3-cffi-backend	1.12.2-1
+python3-crypto	2.6.1-9+b1
+python3-cryptography	2.6.1-3+deb10u2
+python3-dbus	1.2.8-3
+python3-dev	3.7.3-1
+python3-distutils	3.7.3-1
+python3-entrypoints	0.3-1
+python3-gi	3.30.4-1
+python3-keyring	17.1.1-1
+python3-keyrings.alt	3.1.1-1
+python3-lib2to3	3.7.3-1
+python3-minimal	3.7.3-1
+python3-pip	18.1-5
+python3-pkg-resources	40.8.0-1
 python3-secretstorage	2.3.1-2
-python3-setuptools	33.1.1-1
-python3-six	1.10.0-3
-python3-wheel	0.29.0-2
-python3-xdg	0.25-4
-python3.5	3.5.3-1+deb9u1
-python3.5-dev	3.5.3-1+deb9u1
-python3.5-minimal	3.5.3-1+deb9u1
-readline-common	7.0-3
-rename	0.20-4
-rsync	3.1.2-1+deb9u2
-rsyslog	8.24.0-1
-screen	4.5.0-6
-sed	4.4-1
-sensible-utils	0.0.9+deb9u1
-sgml-base	1.29
-shared-mime-info	1.8-1+deb9u1
-sudo	1.8.19p1-2.1+deb9u2
-systemd	232-25+deb9u12
-systemd-sysv	232-25+deb9u12
-sysvinit-utils	2.88dsf-59.9
-tar	1.29b-1.1
-tasksel	3.39
-tasksel-data	3.39
-tzdata	2019c-0+deb9u1
-ucf	3.0036
-udev	232-25+deb9u12
-unattended-upgrades	0.93.1+nmu1
-util-linux	2.29.2-1+deb9u1
-uuid-runtime	2.29.2-1+deb9u1
-vim	2:8.0.0197-4+deb9u3
-vim-common	2:8.0.0197-4+deb9u3
-vim-runtime	2:8.0.0197-4+deb9u3
-vim-tiny	2:8.0.0197-4+deb9u3
-wget	1.18-5+deb9u3
-whiptail	0.52.19-1+b1
-x11proto-core-dev	7.0.31-1
-x11proto-damage-dev	1:1.2.1-2
-x11proto-dri2-dev	2.8-2
-x11proto-fixes-dev	1:5.0-2
-x11proto-gl-dev	1.4.17-1
-x11proto-input-dev	2.3.2-1
-x11proto-kb-dev	1.0.7-1
-x11proto-xext-dev	7.3.0-1
-x11proto-xf86vidmode-dev	2.3.1-2
-xdg-user-dirs	0.15-2+b1
-xml-core	0.17
+python3-setuptools	40.8.0-1
+python3-six	1.12.0-1
+python3-wheel	0.32.3-2
+python3-xdg	0.25-5
+python3.7	3.7.3-2+deb10u1
+python3.7-dev	3.7.3-2+deb10u1
+python3.7-minimal	3.7.3-2+deb10u1
+readline-common	7.0-5
+rsyslog	8.1901.0-1
+sed	4.7-1
+sensible-utils	0.0.12
+shared-mime-info	1.10-1
+sudo	1.8.27-1+deb10u2
+systemd	241-7~deb10u3
+systemd-sysv	241-7~deb10u3
+sysvinit-utils	2.93-8
+tar	1.30+dfsg-6
+tzdata	2019c-0+deb10u1
+ucf	3.0038+nmu1
+util-linux	2.33.1-0.1
+x11proto-core-dev	2018.4-4
+x11proto-damage-dev	1:2018.4-4
+x11proto-dev	2018.4-4
+x11proto-fixes-dev	1:2018.4-4
+x11proto-xext-dev	2018.4-4
+x11proto-xf86vidmode-dev	2018.4-4
+xauth	1:1.0.10-1
+xdg-user-dirs	0.17-2
 xorg-sgml-doctools	1:1.11-1
 xtrans-dev	1.3.5-1
 xutils-dev	1:7.7+5+b1
-xxd	2:8.0.0197-4+deb9u3
-xz-utils	5.2.2-1.2+b1
-zlib1g:amd64	1:1.2.8.dfsg-5
+xz-utils	5.2.4-1
+zlib1g:amd64	1:1.2.11.dfsg-1
+zlib1g-dev:amd64	1:1.2.11.dfsg-1
diff --git a/x86_64-linux-gnu/builder_image.txt b/x86_64-linux-gnu/builder_image.txt
index 2ad3d58..c14aef9 100644
--- a/x86_64-linux-gnu/builder_image.txt
+++ b/x86_64-linux-gnu/builder_image.txt
@@ -1 +1 @@
-sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-9-stretch-v20200204
+sourceImage: https://www.googleapis.com/compute/v1/projects/cloud-android-testing/global/images/jemoreira-build-image
diff --git a/x86_64-linux-gnu/cargo_version.txt b/x86_64-linux-gnu/cargo_version.txt
index 462d11c..7b6756a 100644
--- a/x86_64-linux-gnu/cargo_version.txt
+++ b/x86_64-linux-gnu/cargo_version.txt
@@ -1,4 +1,4 @@
-cargo 1.41.0 (626f0f40e 2019-12-03)
-release: 1.41.0
-commit-hash: 626f0f40efd32e6b3dbade50cd53fdfaa08446ba
-commit-date: 2019-12-03
+cargo 1.43.0 (3532cf738 2020-03-17)
+release: 1.43.0
+commit-hash: 3532cf738db005a56d1fe81ade514f380d411360
+commit-date: 2020-03-17
diff --git a/x86_64-linux-gnu/etc/seccomp/9p_device.policy b/x86_64-linux-gnu/etc/seccomp/9p_device.policy
new file mode 100644
index 0000000..8a4d40e
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/9p_device.policy
@@ -0,0 +1,69 @@
+# 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.
+
+open: 1
+openat: 1
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+pwrite64: 1
+stat: 1
+statx: 1
+lstat: 1
+fstat: 1
+ioctl: arg1 == FIOCLEX
+link: 1
+unlink: 1
+rename: 1
+pread64: 1
+getdents: 1
+mkdir: 1
+rmdir: 1
+fsync: 1
+fdatasync: 1
+utimensat: 1
+ftruncate: 1
+fchown: arg1 == 0xffffffff && arg2 == 0xffffffff
+statfs: 1
+newfstatat: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/balloon_device.policy b/x86_64-linux-gnu/etc/seccomp/balloon_device.policy
new file mode 100644
index 0000000..1302079
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/balloon_device.policy
@@ -0,0 +1,48 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/block_device.policy b/x86_64-linux-gnu/etc/seccomp/block_device.policy
new file mode 100644
index 0000000..4c07a69
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/block_device.policy
@@ -0,0 +1,62 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+fallocate: 1
+fdatasync: 1
+fstat: 1
+fsync: 1
+ftruncate: 1
+lseek: 1
+open: return ENOENT
+openat: return ENOENT
+pread64: 1
+preadv: 1
+pwrite64: 1
+pwritev: 1
+statx: 1
+timerfd_create: 1
+timerfd_gettime: 1
+timerfd_settime: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/common_device.policy b/x86_64-linux-gnu/etc/seccomp/common_device.policy
new file mode 100644
index 0000000..453719d
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/common_device.policy
@@ -0,0 +1,46 @@
+# Copyright 2019 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.
+
+@frequency ./common_device.frequency
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/cras_audio_device.policy b/x86_64-linux-gnu/etc/seccomp/cras_audio_device.policy
new file mode 100644
index 0000000..731cf59
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/cras_audio_device.policy
@@ -0,0 +1,54 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+madvise: 1
+open: return ENOENT
+openat: return ENOENT
+prlimit64: 1
+setrlimit: 1
+sched_setscheduler: 1
+socketpair: arg0 == AF_UNIX
+clock_gettime: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/fs_device.policy b/x86_64-linux-gnu/etc/seccomp/fs_device.policy
new file mode 100644
index 0000000..bf1eed6
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/fs_device.policy
@@ -0,0 +1,79 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+copy_file_range: 1
+fallocate: 1
+fchmodat: 1
+fchownat: 1
+fdatasync: 1
+lgetxattr: 1
+lsetxattr: 1
+llistxattr: 1
+lremovexattr: 1
+fstatfs: 1
+fsync: 1
+ftruncate: 1
+getdents64: 1
+getegid: 1
+geteuid: 1
+ioctl: arg1 == FS_IOC_GET_ENCRYPTION_POLICY || arg1 == FS_IOC_SET_ENCRYPTION_POLICY
+linkat: 1
+lseek: 1
+mkdirat: 1
+mknodat: 1
+newfstatat: 1
+open: return ENOENT
+openat: 1
+preadv: 1
+pwritev: 1
+readlinkat: 1
+renameat2: 1
+setresgid: 1
+setresuid: 1
+symlinkat: 1
+statx: 1
+umask: 1
+unlinkat: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/gpu_device.policy b/x86_64-linux-gnu/etc/seccomp/gpu_device.policy
new file mode 100644
index 0000000..331fc49
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/gpu_device.policy
@@ -0,0 +1,78 @@
+# 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.
+
+# Rules from common_device.policy with some rules removed because they block certain flags needed
+# for gpu.
+brk: 1
+clock_gettime: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Rules specific to gpu
+connect: 1
+fcntl: arg1 == F_DUPFD_CLOEXEC
+fstat: 1
+# Used to set of size new memfd.
+ftruncate: 1
+getdents: 1
+geteuid: 1
+getrandom: 1
+getuid: 1
+ioctl: arg1 == FIONBIO || arg1 == FIOCLEX || arg1 == 0x40086200 || arg1 & 0x6400
+lseek: 1
+lstat: 1
+# Used for sharing memory with wayland. arg1 == MFD_CLOEXEC|MFD_ALLOW_SEALING
+memfd_create: arg1 == 3
+# mmap/mprotect/open/openat differ from the common_device.policy
+mmap: arg2 == PROT_READ|PROT_WRITE || arg2 == PROT_NONE || arg2 == PROT_READ|PROT_EXEC || arg2 == PROT_WRITE || arg2 == PROT_READ
+mprotect: arg2 == PROT_READ|PROT_WRITE || arg2 == PROT_NONE || arg2 == PROT_READ
+open: 1
+openat: 1
+readlink: 1
+socket: arg0 == 1 && arg1 == 0x80001 && arg2 == 0
+stat: 1
+statx: 1
+sysinfo: 1
+
+# Rules specific to AMD gpus.
+uname: 1
+sched_setscheduler: 1
+sched_setaffinity: 1
+kcmp: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/input_device.policy b/x86_64-linux-gnu/etc/seccomp/input_device.policy
new file mode 100644
index 0000000..ee2f073
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/input_device.policy
@@ -0,0 +1,51 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+ioctl: 1
+fcntl: 1
+getsockname: 1
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/net_device.policy b/x86_64-linux-gnu/etc/seccomp/net_device.policy
new file mode 100644
index 0000000..182295d
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/net_device.policy
@@ -0,0 +1,50 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# TUNSETOFFLOAD
+ioctl: arg1 == 0x400454d0
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/null_audio_device.policy b/x86_64-linux-gnu/etc/seccomp/null_audio_device.policy
new file mode 100644
index 0000000..6e2105c
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/null_audio_device.policy
@@ -0,0 +1,51 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+madvise: 1
+open: return ENOENT
+openat: return ENOENT
+prlimit64: 1
+setrlimit: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/pmem_device.policy b/x86_64-linux-gnu/etc/seccomp/pmem_device.policy
new file mode 100644
index 0000000..35de17a
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/pmem_device.policy
@@ -0,0 +1,50 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+fdatasync: 1
+fsync: 1
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/rng_device.policy b/x86_64-linux-gnu/etc/seccomp/rng_device.policy
new file mode 100644
index 0000000..1302079
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/rng_device.policy
@@ -0,0 +1,48 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/serial.policy b/x86_64-linux-gnu/etc/seccomp/serial.policy
new file mode 100644
index 0000000..67a8675
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/serial.policy
@@ -0,0 +1,48 @@
+# Copyright 2019 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/tpm_device.policy b/x86_64-linux-gnu/etc/seccomp/tpm_device.policy
new file mode 100644
index 0000000..33c64f5
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/tpm_device.policy
@@ -0,0 +1,56 @@
+# 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.
+
+# common policy
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+
+# tpm-specific policy
+chdir: 1
+fstat: 1
+fsync: 1
+ftruncate: 1
+getuid: 1
+lseek: 1
+mkdir: 1
+open: 1
+openat: 1
+socket: return EACCES
+stat: 1
+statx: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/vfio_device.policy b/x86_64-linux-gnu/etc/seccomp/vfio_device.policy
new file mode 100644
index 0000000..ba05ca4
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/vfio_device.policy
@@ -0,0 +1,52 @@
+# Copyright 2019 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.
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# VFIO_DEVICE_SET_IRQS, VFIO_IOMMU_MAP/UNMAP_DMA
+ioctl: arg1 == 0x3B6E || arg1 == 0x3B71 || arg1 == 0x3B72
+open: return ENOENT
+openat: return ENOENT
+readlink: 1
+pread64: 1
+pwrite64: 1
diff --git a/x86_64-linux-gnu/etc/seccomp/vhost_net_device.policy b/x86_64-linux-gnu/etc/seccomp/vhost_net_device.policy
new file mode 100644
index 0000000..f51928e
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/vhost_net_device.policy
@@ -0,0 +1,65 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Whitelist vhost_net ioctls only.
+# arg1 == VHOST_GET_FEATURES ||
+# arg1 == VHOST_SET_FEATURES ||
+# arg1 == VHOST_SET_OWNER ||
+# arg1 == VHOST_RESET_OWNER ||
+# arg1 == VHOST_SET_MEM_TABLE ||
+# arg1 == VHOST_SET_LOG_BASE ||
+# arg1 == VHOST_SET_LOG_FD ||
+# arg1 == VHOST_SET_VRING_NUM ||
+# arg1 == VHOST_SET_VRING_ADDR ||
+# arg1 == VHOST_SET_VRING_BASE ||
+# arg1 == VHOST_GET_VRING_BASE ||
+# arg1 == VHOST_SET_VRING_KICK ||
+# arg1 == VHOST_SET_VRING_CALL ||
+# arg1 == VHOST_SET_VRING_ERR ||
+# arg1 == VHOST_NET_SET_BACKEND
+ioctl: arg1 == 0x8008af00 || arg1 == 0x4008af00 || arg1 == 0x0000af01 || arg1 == 0x0000af02 || arg1 == 0x4008af03 || arg1 == 0x4008af04 || arg1 == 0x4004af07 || arg1 == 0x4008af10 || arg1 == 0x4028af11 || arg1 == 0x4008af12 || arg1 == 0xc008af12 || arg1 == 0x4008af20 || arg1 == 0x4008af21 || arg1 == 0x4008af22 || arg1 == 0x4008af30
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/vhost_vsock_device.policy b/x86_64-linux-gnu/etc/seccomp/vhost_vsock_device.policy
new file mode 100644
index 0000000..661668b
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/vhost_vsock_device.policy
@@ -0,0 +1,67 @@
+# Copyright 2017 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Whitelist vhost_vsock ioctls only.
+# arg1 == VHOST_GET_FEATURES ||
+# arg1 == VHOST_SET_FEATURES ||
+# arg1 == VHOST_SET_OWNER ||
+# arg1 == VHOST_RESET_OWNER ||
+# arg1 == VHOST_SET_MEM_TABLE ||
+# arg1 == VHOST_SET_LOG_BASE ||
+# arg1 == VHOST_SET_LOG_FD ||
+# arg1 == VHOST_SET_VRING_NUM ||
+# arg1 == VHOST_SET_VRING_ADDR ||
+# arg1 == VHOST_SET_VRING_BASE ||
+# arg1 == VHOST_GET_VRING_BASE ||
+# arg1 == VHOST_SET_VRING_KICK ||
+# arg1 == VHOST_SET_VRING_CALL ||
+# arg1 == VHOST_SET_VRING_ERR ||
+# arg1 == VHOST_VSOCK_SET_GUEST_CID ||
+# arg1 == VHOST_VSOCK_SET_RUNNING
+ioctl: arg1 == 0x8008af00 || arg1 == 0x4008af00 || arg1 == 0x0000af01 || arg1 == 0x0000af02 || arg1 == 0x4008af03 || arg1 == 0x4008af04 || arg1 == 0x4004af07 || arg1 == 0x4008af10 || arg1 == 0x4028af11 || arg1 == 0x4008af12 || arg1 == 0xc008af12 || arg1 == 0x4008af20 || arg1 == 0x4008af21 || arg1 == 0x4008af22 || arg1 == 0x4008af60 || arg1 == 0x4004af61
+connect: 1
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/wl_device.policy b/x86_64-linux-gnu/etc/seccomp/wl_device.policy
new file mode 100644
index 0000000..d946899
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/wl_device.policy
@@ -0,0 +1,61 @@
+# 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+# Used to connect to wayland. arg0 == AF_UNIX && arg1 == SOCK_STREAM|SOCK_CLOEXEC
+socket: arg0 == 1 && arg1 == 0x80001 && arg2 == 0
+# arg1 == FIONBIO || arg1 == DMA_BUF_IOCTL_SYNC
+ioctl: arg1 == 0x5421 || arg1 == 0x40086200
+connect: 1
+# Used for sharing memory with wayland. arg1 == MFD_CLOEXEC|MFD_ALLOW_SEALING
+memfd_create: arg1 == 3
+# Used to set of size new memfd
+ftruncate: 1
+# Used to determine shm size after recvmsg with fd
+lseek: 1
+# Allow F_GETFL only
+fcntl: arg1 == 3
+open: return ENOENT
+openat: return ENOENT
diff --git a/x86_64-linux-gnu/etc/seccomp/xhci.policy b/x86_64-linux-gnu/etc/seccomp/xhci.policy
new file mode 100644
index 0000000..9e17655
--- /dev/null
+++ b/x86_64-linux-gnu/etc/seccomp/xhci.policy
@@ -0,0 +1,81 @@
+# 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.
+
+brk: 1
+clone: arg0 & CLONE_THREAD
+close: 1
+dup2: 1
+dup: 1
+epoll_create1: 1
+epoll_ctl: 1
+epoll_wait: 1
+eventfd2: 1
+exit: 1
+exit_group: 1
+futex: 1
+getpid: 1
+gettid: 1
+gettimeofday: 1
+kill: 1
+madvise: arg2 == MADV_DONTNEED || arg2 == MADV_DONTDUMP || arg2 == MADV_REMOVE
+mmap: arg2 in ~PROT_EXEC
+mprotect: arg2 in ~PROT_EXEC
+mremap: 1
+munmap: 1
+nanosleep: 1
+pipe2: 1
+poll: 1
+ppoll: 1
+prctl: arg0 == PR_SET_NAME
+read: 1
+readv: 1
+recvfrom: 1
+recvmsg: 1
+restart_syscall: 1
+rt_sigaction: 1
+rt_sigprocmask: 1
+rt_sigreturn: 1
+sched_getaffinity: 1
+sendmsg: 1
+sendto: 1
+set_robust_list: 1
+sigaltstack: 1
+write: 1
+writev: 1
+
+lstat: 1
+readlink: 1
+readlinkat: 1
+timerfd_create: 1
+name_to_handle_at: 1
+access: 1
+getsockname: 1
+pipe: 1
+setsockopt: 1
+bind: 1
+fcntl: 1
+open: return ENOENT
+openat: 1
+socket: arg0 == AF_NETLINK
+stat: 1
+uname: 1
+# The following ioctls are:
+# 0x4008550d == USBDEVFS_REAPURBNDELAY
+# 0x41045508 == USBDEVFS_GETDRIVER
+# 0x550b == USBDEVFS_DISCARDURB
+# 0x8004550f == USBDEVFS_CLAIMINTERFACE
+# 0x80045510 == USBDEVFS_RELEASEINTERFACE
+# 0x8004551a == USBDEVFS_GET_CAPABILITIES
+# 0x8038550a == USBDEVFS_SUBMITURB
+# 0xc0185500 == USBDEVFS_CONTROL
+# 0x5514 == USBDEVFS_RESET
+# 0x80045505 == USBDEVFS_SETCONFIGURATION
+# 0x8108551b == USBDEVFS_DISCONNECT_CLAIM
+# 0x40085511 == USBDEVFS_CONNECTINFO
+# 0x80185520 == USBDEVFS_CONNINFO_EX
+ioctl: arg1 == 0xc0185500 || arg1 == 0x41045508 || arg1 == 0x8004550f || arg1 == 0x4008550d || arg1 == 0x8004551a || arg1 == 0x550b || arg1 == 0x80045510 || arg1 == 0x8038550a || arg1 == 0x5514 || arg1 == 0x80045505 || arg1 == 0x8108551b || arg1 == 0x40085511 || arg1 == 0x80185520
+fstat: 1
+getrandom: 1
+getdents: 1
+lseek: 1
diff --git a/x86_64-linux-gnu/manifest.xml b/x86_64-linux-gnu/manifest.xml
index a5b559c..5c1db6c 100644
--- a/x86_64-linux-gnu/manifest.xml
+++ b/x86_64-linux-gnu/manifest.xml
@@ -2,16 +2,49 @@
 <manifest>
   <remote fetch=".." name="aosp" review="https://android-review.googlesource.com/"/>
   
-  <default remote="aosp" revision="crosvm-master" sync-j="4"/>
+  <default remote="aosp" revision="master" sync-j="4"/>
   
   <manifest-server url="http://android-smartsync.corp.google.com/android.googlesource.com/manifestserver"/>
   
-  <project groups="pdk" name="platform/external/adhd" path="third_party/adhd" revision="e65070b653154252b7c66ec983c8df842f932f77" upstream="crosvm-master"/>
-  <project groups="pdk" name="platform/external/crosvm" path="platform/crosvm" revision="ce27adbb2c89e681f291d5b78726f6247a5a8631" upstream="crosvm-master"/>
+  <project clone-depth="1" name="device/generic/goldfish-opengl" revision="7d956d19242a9c7789f3cf6d9f183c1354939719"/>
+  <project clone-depth="1" name="device/generic/vulkan-cereal" revision="ea978cef5a41c292dd9bd0ce9bf08648e76ca030"/>
+  <project groups="pdk" name="platform/external/adhd" path="external/adhd" revision="2e5b55c9a2bf11058945639ff8ddd513871c9a97" upstream="master"/>
+  <project clone-depth="1" name="platform/external/angle" path="external/angle" revision="c37c696b94bd7ddecc12a2c3192f5e48eae7842e"/>
+  <project clone-depth="1" name="platform/external/astc-codec" path="external/astc-codec" revision="17ae36822a8084f45ae51f9031e81f8318254f33"/>
+  <project clone-depth="1" name="platform/external/boringssl" path="external/boringssl" revision="30400e8dcf23efb5c0563f7121a0e43afe11c782"/>
+  <project clone-depth="1" name="platform/external/c-ares" path="external/cares" revision="bdf653f0f9cbcccd64c43630929db8cfde337091"/>
+  <project groups="pdk" name="platform/external/crosvm" path="platform/crosvm" revision="f43fc1b31001569d43b3c4e5cd6c54b70a490add" upstream="master"/>
+  <project clone-depth="1" name="platform/external/curl" path="external/curl" revision="1da4b04273638c8afe6f88bd7a7ccfb693640773"/>
+  <project clone-depth="1" name="platform/external/deqp" path="external/deqp" revision="59d8ce2c002a44ec9cc26e42b329b3754dd9b4fc"/>
+  <project clone-depth="1" name="platform/external/ffmpeg" path="external/ffmpeg" revision="5c6f92dd1b16590153367ce79ed9b098cace354f"/>
+  <project clone-depth="1" name="platform/external/google-benchmark" path="external/google-benchmark" revision="db1632fadc79df388a2a7248157c965ee40248a1"/>
+  <project clone-depth="1" name="platform/external/google-breakpad" path="external/google-breakpad" revision="a1414818b9f9810a3b45f1f55d9c00f5116ec7d9"/>
+  <project clone-depth="1" name="platform/external/googletest" path="external/googletest" revision="9808c017d108a8ebd5fb9e2ea5087926722e6a94"/>
+  <project clone-depth="1" name="platform/external/grpc-grpc" path="external/grpc" revision="dd5dd731dc135e526d581b8ba186c1fb672579ad"/>
   <project groups="pdk" name="platform/external/libepoxy" path="third_party/libepoxy" revision="199985a9b74aa5610a2ce75be2997e7a272dd9fe" upstream="crosvm-master"/>
+  <project clone-depth="1" name="platform/external/libffi" path="external/libffi" revision="30bc66eb2043d8434e94f29beda87001e58c2a34"/>
+  <project clone-depth="1" name="platform/external/libpng" path="external/libpng" revision="5d19b1bb0f5694f2ae47b3cc2ccfeb571764b439"/>
+  <project clone-depth="1" name="platform/external/libvpx" path="external/libvpx" revision="62332cf39b0302e240acb10ed78d61d5ea282a39"/>
+  <project clone-depth="1" name="platform/external/libyuv" path="external/libyuv" revision="d4c7aec7a2fdbad1bfdebd4a45bb879dd43a8a2d"/>
+  <project clone-depth="1" name="platform/external/lz4" path="external/lz4" revision="1a184fdeb99f4cc11b774ac5b0b824b38105ec6c"/>
   <project groups="pdk" name="platform/external/minigbm" path="third_party/minigbm" revision="82e37a6c196d089140bf71a83dc0f6042d22ffd2" upstream="crosvm-master"/>
-  <project groups="pdk" name="platform/external/minijail" path="third_party/minijail" revision="52f6adabb6f44761cc23a226cc396bd5c664641c" upstream="crosvm-master"/>
+  <project groups="pdk" name="platform/external/minijail" path="external/minijail" revision="2f2c20780cf7bbfe92657829cdae5a76cc4cb0c0" upstream="master"/>
+  <project clone-depth="1" name="platform/external/nasm" path="external/nasm" revision="4a1f910150bed6d8afd9c7f89a437ca7060cdaee"/>
+  <project clone-depth="1" name="platform/external/protobuf" path="external/protobuf" revision="ca15ad7fb89a626c0d2a98240b11a2523727f9be"/>
+  <project clone-depth="1" name="platform/external/qemu" path="external/qemu" revision="a818ada796ce1dedaef85fd8402f7e1695735f30"/>
+  <project clone-depth="1" name="platform/external/tinyobjloader" path="external/tinyobjloader" revision="d16a940067fbc191364fc1d3e2a2d907209c9320"/>
   <project groups="pdk" name="platform/external/virglrenderer" path="third_party/virglrenderer" revision="f0c2fba5827abb3634b1992855264d7fe990b89d" upstream="crosvm-master"/>
+  <project clone-depth="1" name="platform/external/zlib" path="external/zlib" revision="7656f9eff09cc38244978773777ee64b7b31155d"/>
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/common" path="prebuilts/android-emulator-build/common" revision="aa70e25f94f66865037b6d06796b68ecbfec5896"/>
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/curl" path="prebuilts/android-emulator-build/curl" revision="95f56cc6a903e335d2e90ecce6b4db8d88491bf1"/>
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/mesa" path="prebuilts/android-emulator-build/mesa" revision="be7c00f399b415511d73308f0af0c0310512aced"/>
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/mesa-deps" path="prebuilts/android-emulator-build/mesa-deps" revision="17837fdb1889014fa01cbbbda56afc9b6034815f"/>
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/protobuf" path="prebuilts/android-emulator-build/protobuf" revision="8e2a5472dd374e6c971d30eb3d00898a8c1a25c8"/>
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/qemu-android-deps" path="prebuilts/android-emulator-build/qemu-android-deps" revision="e3e1083f445fb89dc899639a2b3c4254c7daf489"/>
+  <project clone-depth="1" name="platform/prebuilts/clang/host/linux-x86" path="prebuilts/clang/host/linux-x86" revision="f71cc7fa68ac644595257d6fdebc2e543cb7041c"/>
+  <project clone-depth="1" name="platform/prebuilts/cmake/linux-x86" path="prebuilts/cmake/linux-x86" revision="40dcb6f55bd2e8731e3e4f1a1721f7ff0fb83cb1"/>
+  <project clone-depth="1" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" revision="4533a4d0efa68949dc3c0dfec00214feaddd6c7b"/>
+  <project clone-depth="1" name="platform/prebuilts/ninja/linux-x86" path="prebuilts/ninja/linux-x86" revision="7ef4cb95e1ed4305e99f03a8e8ad28d26134a45b"/>
   <project groups="adt-infra,cts,developers,motodev,pdk,tools,tradefed" name="platform/tools/repohooks" path="tools/repohooks" revision="8eb7cd76622697f630a52cfcaf14a4971be21e38" upstream="crosvm-master"/>
   
   <repo-hooks enabled-list="pre-upload" in-project="platform/tools/repohooks"/>
diff --git a/x86_64-linux-gnu/rustup_show.txt b/x86_64-linux-gnu/rustup_show.txt
index 775d67a..3618299 100644
--- a/x86_64-linux-gnu/rustup_show.txt
+++ b/x86_64-linux-gnu/rustup_show.txt
@@ -9,6 +9,6 @@
 active toolchain
 ----------------
 
-stable-x86_64-unknown-linux-gnu (overridden by '/home/cuttlefish_crosvm_builder/source/platform/crosvm/rust-toolchain')
-rustc 1.41.0 (5e1a79984 2020-01-27)
+stable-x86_64-unknown-linux-gnu (overridden by '/source/platform/crosvm/rust-toolchain')
+rustc 1.43.0 (4fb7144ed 2020-04-20)