[version roller] Update dependencies

SDK version updated from 8.20220609.3.1 to 9.20220728.1.1

Also:
- fix invalid dependencies on fidl-llcpp (squashed fxrev.dev/693743)
- remove version reference for sdk and clang in WORKSAPCE.bazel. Now
  those are defined by the sdk-integration version.
- updated tools/ and scripts symlinks and scripts for the latest
- updated smoke_test.sh to use the full product bundle URI and the new
  bazel running/testing workflows
- remove experimental flag for new syntax in fidlc invocation

Change-Id: I1b5b34863e535fae9221cce45e5a8daae5582d7b
Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-samples/drivers/+/691514
Reviewed-by: Wayne Piekarski <waynepie@google.com>
Commit-Queue: Atul Sharma <atshar@google.com>
Reviewed-by: Chase Latta <chaselatta@google.com>
Reviewed-by: Dave Smith <smithdave@google.com>
diff --git a/.gitignore b/.gitignore
index 9d8437d..4aa22c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,8 +3,15 @@
 
 # Files created by IntelliJ IDE.
 .idea
-drivers.iml
+*.iml
 
 # Files created by VSCode.
 .vscode
 
+# Files created by cipd
+.cipd/
+.cipd_client
+tools/.versions/
+
+# Tools
+tools/bazel
diff --git a/README.md b/README.md
index 64aa568..e8e305e 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,22 @@
 # Fuchsia samples using the Fuchsia SDK
 
 This repository contains instructions and source code to build, package and run
-Fuchsia samples using only the Fuchsia SDK. To update the dependencies of this
-repository, follow the instructions in
-[update_dependencies.md](update_dependencies.md).
+Fuchsia samples using only the Fuchsia SDK.
 
 ## Requirements
 
-1. Install Bazel version 5.1 or later by following the instructions at https://bazel.build/install.
-   In some Linux distributions, `sudo apt-get install bazel` should be enough.
-
 1. Make sure this repository has the required submodules:
 
    ```
    git submodule update --recursive --init
    ```
 
+1. Run the bootstrap script that downloads the appropriate Bazel binary:
+
+   ```
+   scripts/bootstrap.sh
+   ```
+
 1. Ensure that there are Fuchsia SSH keys in your host machine. You will need
    them for running the Fuchsia emulator.
 
@@ -27,32 +28,32 @@
 
 ## Build, run and test the samples
 
-Now the repository is ready to build the samples.
+The repository is ready to build the samples.
 
-1. Build the samples:
-
-   > Note: in order to use an SDK produced by a local Fuchsia platform tree, you
-   > can set an environment variable named `LOCAL_FUCHSIA_PLATFORM_BUILD` as
-   > described in https://fuchsia.googlesource.com/sdk-integration/+/0503b02c059a6de76242280b467898358ba30ae3
-
-   ```
-   bazel build --config=fuchsia_x64 src:samples_repository
-   ```
-
-   This command will build and package all the samples.
+ > Note: in order to use an SDK produced by a local Fuchsia platform tree, you
+ > can set an environment variable named `LOCAL_FUCHSIA_PLATFORM_BUILD` as
+ > described in https://fuchsia.googlesource.com/sdk-integration/+/0503b02c059a6de76242280b467898358ba30ae3
 
 1. If using an emmulator:
 
    1. Fetch the system images
 
       ```
-      tools/ffx product-bundle get workstation.qemu-x64
+      tools/ffx product-bundle get workstation_eng.qemu-x64 --repository workstation-repo
       ```
 
+   > Note: if the command above fails with an error message that
+   > states that there are multiple product bundles with the same name, you can either specify
+   > the full qualified URL as printed in the error message, or you can wipe out
+   > old and unused product bundles in the pbms storage, which should be located
+   > in ~/.local/share/Fuchsia/ffx/pbms on Linux, or ~/Library/Fuchsia/ffx/pbms
+   > on MacOS.
+
+
    1. Start the emulator
 
       ```
-      tools/ffx emu start workstation.qemu-x64 --headless \
+      tools/ffx emu start workstation_eng.qemu-x64 --headless \
          --kernel-args "driver_manager.use_driver_framework_v2=true" \
          --kernel-args "driver_manager.root-driver=fuchsia-boot:///#meta/platform-bus.cm" \
          --kernel-args "devmgr.enable-ephemeral=true"
@@ -62,7 +63,7 @@
       Use the following command to register it with the emulator:
 
       ```
-      tools/ffx target repository register -r workstation.qemu-x64 --alias fuchsia.com
+      tools/ffx target repository register -r workstation-repo --alias fuchsia.com
       ```
 
 1. If using a physical device like a Pixelbook Go:
@@ -70,7 +71,7 @@
    1. Fetch the system images
 
       ```
-      tools/ffx product-bundle get workstation.qemu-x64-dfv2
+      tools/ffx product-bundle get workstation_eng.qemu-x64-dfv2 --repository workstation
       ```
 
    1. Prepare and connect the Pixelbook Go, by flashing and/or paving it (not
@@ -111,7 +112,7 @@
    Now register the driver:
 
    ```
-   bazel run --config=fuchsia_x64 src/example_driver:pkg.component
+   tools/bazel run --config=fuchsia_x64 src/example_driver:pkg.component
    ```
 
    The driver now should show in the list of loaded drivers:
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index bf9c203..2f19a5b 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -34,13 +34,6 @@
 
 fuchsia_sdk_repository(
     name = "fuchsia_sdk",
-    cipd_tag = "version:8.20220609.3.1",
-    sha256 = {
-        "linux": "a26233e6d0c25d9376c2995a677cd4039ffbcf13a23f83c9d494e6f771c400e3",
-        "mac": "347cf8934401c5afd93c02c663aeaba5fccb32e33540dba094d81dada9434f6b",
-        "linux_experimental": "724e977e86e905280a123abe5e37d20874d59215434136fa1cca7aa5ffaef7dc",
-        "mac_experimental": "0ed65294e5d98e7d7b615f25b85407bcfbafda2fa55e4d5194a3b749a5b5fb80",
-    },
     use_experimental = True,
 )
 
@@ -48,12 +41,6 @@
 
 fuchsia_clang_repository(
     name = "fuchsia_clang",
-    cipd_tag = "git_revision:ac5f7be6a8688955a282becf00eebc542238a86b",
-    sdk_root_label = "@fuchsia_sdk",
-    sha256 = {
-        "linux": "e323780718344672cd78c756e7a417909b9c814e29fe0a48cd63f8ee0e06a53f",
-        "mac": "0c3a7228089b0484b2756cdc202f5a1b9bb2ae4c7b36e8d6fd413fc521c2030b",
-    },
 )
 
 # gTest.
diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh
deleted file mode 100755
index 1690348..0000000
--- a/scripts/bootstrap.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-# Copyright 2022 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-# This script is used to fetch the prebuilt that is needed by fortune-teller package build.
-
-REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/..
-readonly REPO_ROOT="${REPO_ROOT}"
-readonly BAZEL_BOOTSTRAP="${REPO_ROOT}/third_party/sdk-integration/scripts/bootstrap.sh"
-readonly BAZEL="${REPO_ROOT}/third_party/sdk-integration/tools/bazel"
-
-download_prebuilt() {
-  echo "Downloading prebuilt binaries."
-  $BAZEL_BOOTSTRAP
-  $BAZEL --version
-
-  echo "Download complete."
-}
-
-main() {
-  download_prebuilt
-}
-
-main "$@"
diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh
new file mode 120000
index 0000000..925a6b1
--- /dev/null
+++ b/scripts/bootstrap.sh
@@ -0,0 +1 @@
+../third_party/sdk-integration/bazel_rules_fuchsia/bootstrap/bootstrap.sh
\ No newline at end of file
diff --git a/scripts/build.sh b/scripts/build.sh
index d215b44..fa14fec 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -10,8 +10,7 @@
 # can pass.
 
 main() {
-  third_party/sdk-integration/tools/bazel build --config=fuchsia_x64 src:samples_repository
-  scripts/smoke_test.sh --no-build
+  scripts/smoke_test.sh
   echo "Everything build and all tests passed."
 }
 
diff --git a/scripts/smoke_test.sh b/scripts/smoke_test.sh
index cfcbc4a..17ec2e9 100755
--- a/scripts/smoke_test.sh
+++ b/scripts/smoke_test.sh
@@ -7,7 +7,9 @@
 
 # Run this from the root of the repo with `scripts/smoke_test.sh`
 set -e
+
 emu_name=_smoke_test
+
 if [[ -z "$HOME" ]]; then
   export HOME=$(pwd)
 fi
@@ -19,18 +21,13 @@
 print_and_run() {
   echo
   echo "*** $@"
-  local cmd=$1
-  shift
-  if [[ "$cmd" == "ffx" ]]; then
-    cmd="$ffx_full"
-  fi
-  "$cmd" "$@"
+  "$@"
 }
 
 wait_for_emu_rcs() {
   local i=0
   while [[ $i -lt 120 ]] &&
-      [[ "$($ffx_full target list 2>&1 | grep $emu_name | awk '{print $6;}')" != "Y" ]]; do
+      [[ "$(tools/ffx target list 2>&1 | grep $emu_name | awk '{print $6;}')" != "Y" ]]; do
     echo -n .
     sleep 0.5
     i+=1
@@ -48,17 +45,14 @@
   trap 'failure $LINENO' ERR
   local keep_emu=0
   local skip_clean=0
-  local skip_build=0
   while [[ $# -gt 0 ]]; do
     if [[ "$1" == "--keep" ]]; then
       keep_emu=1
-    elif [[ "$1" == "--no-build" ]]; then
-      skip_build=1
     elif [[ "$1" == "--no-clean" ]]; then
       skip_clean=1
     else
       echo >&2 "Invalid argument: $1"
-      echo >&2 "Syntax: $0 [--keep] [--no-clean] [--no-build]"
+      echo >&2 "Syntax: $0 [--keep] [--no-clean]"
       return 1
     fi
     shift
@@ -68,28 +62,25 @@
 
   echo "Build starting!"
 
-  if [[ $skip_build -eq 0 ]]; then
-    if [[ $skip_clean -eq 0 ]]; then
-      # clear previously fetched dependencies to ensure a clean environment
-      print_and_run third_party/sdk-integration/tools/bazel clean --expunge
-    fi
-
-    # fetch dependencies and build the samples source code
-    print_and_run third_party/sdk-integration/tools/bazel build --config=fuchsia_x64 src:samples_repository
+  if [[ $skip_clean -eq 0 ]]; then
+    # clear previously fetched dependencies to ensure a clean environment
+    print_and_run tools/bazel clean --expunge
   fi
 
-  export ffx_full="$(third_party/sdk-integration/tools/bazel query --noshow_progress "@fuchsia_sdk//tools:x64/ffx" --output location | cut -f1 -d:)"
-  
   bootstrap_ssh
 
-  print_and_run ffx doctor --restart-daemon
+  print_and_run tools/ffx doctor --restart-daemon
 
+  current_target="$(tools/ffx target default get)"
+
+  product_name="workstation_eng.qemu-x64"
+  repo_name="workstation-repo"
+  pb_name="gs://fuchsia/development/$(tools/ffx sdk version)/sdk/product_bundles.json#${product_name}"
   # fetch an emulator image of workstation and start an emulator
-  print_and_run ffx product-bundle get workstation.qemu-x64
-
+  print_and_run tools/ffx product-bundle get "$pb_name" --repository "$repo_name"
   stop_emu
 
-  print_and_run ffx emu start workstation.qemu-x64 --headless --name $emu_name \
+  print_and_run tools/ffx emu start "$pb_name" --headless --name $emu_name \
       --kernel-args "devmgr.enable-ephemeral=true" \
       --kernel-args "driver_manager.use_driver_framework_v2=true" \
       --kernel-args "driver_manager.root-driver=fuchsia-boot:///#meta/platform-bus.cm"
@@ -101,38 +92,43 @@
   wait_for_emu_rcs
 
   # start the package server
-  print_and_run ffx repository server start
+  print_and_run tools/ffx repository server start
 
   # enable experimental ffx driver plugin
-  print_and_run ffx config set driver true
+  print_and_run tools/ffx config set driver true
+
+  print_and_run tools/ffx target default set $emu_name
 
   # register the package repository with on-demand prebuilt packages
-  print_and_run ffx -t $emu_name target repository register -r workstation.qemu-x64 --alias fuchsia.com
-
-  # register the package repository with these samples packages
-  print_and_run ffx repository add-from-pm -r fuchsiasamples.com bazel-bin/src/fuchsiasamples.com.repo
-  print_and_run ffx -t $emu_name target repository register -r fuchsiasamples.com
+  print_and_run tools/ffx target repository register -r $repo_name --alias fuchsia.com
 
   # register a driver and verify that it registered succesfully
-  print_and_run ffx -t $emu_name driver register "fuchsia-pkg://fuchsiasamples.com/qemu_edu#meta/qemu_edu.cm"
+  print_and_run tools/bazel run src/qemu_edu:pkg.component
+
   # wait for driver to load
   sleep 1
-  print_and_run ffx -t $emu_name driver list --loaded | grep qemu_edu
+  print_and_run tools/ffx driver list --loaded | grep qemu_edu
 
   # interact with driver
-  print_and_run ffx -t $emu_name component run "fuchsia-pkg://fuchsiasamples.com/eductl#meta/eductl.cm"
+  print_and_run tools/bazel run src/qemu_edu:eductl_pkg.eductl_component
 
   # run tests on the emulator
-  print_and_run ffx -t $emu_name test run "fuchsia-pkg://fuchsiasamples.com/qemu_edu_system_test#meta/qemu_edu_system_test.cm"
+  print_and_run tools/bazel test src/qemu_edu:test_pkg
 
   echo "Success!"
 }
 
 stop_emu() {
   # stop the emulator
-  if [[ -x $ffx_full ]] && $ffx_full emu show $emu_name >/dev/null 2>&1; then
-    $ffx_full emu stop $emu_name || return 0
+  if tools/ffx emu show $emu_name >/dev/null 2>&1; then
+    tools/ffx emu stop $emu_name || true
   fi
+  if [[ -n "${current_target}" ]]; then
+    tools/ffx target default set "${current_target}" || true
+  else
+    tools/ffx target default unset || true
+  fi
+
   return 0
 }
 
diff --git a/src/acpi_multiply/BUILD.bazel b/src/acpi_multiply/BUILD.bazel
index f3eb3f0..ef3c7c5 100644
--- a/src/acpi_multiply/BUILD.bazel
+++ b/src/acpi_multiply/BUILD.bazel
@@ -31,7 +31,7 @@
     visibility = ["//visibility:public"],
     deps = [
         "@fuchsia_sdk//fidl/zx:zx_llcpp_cc",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
     ],
 )
 
@@ -60,7 +60,7 @@
         "@fuchsia_sdk//pkg/mmio",
         "@fuchsia_sdk//pkg/hwreg",
         "@fuchsia_sdk//pkg/driver2-llcpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
     ],
@@ -106,7 +106,7 @@
         "@fuchsia_sdk//pkg/driver2-llcpp",
         "@fuchsia_sdk//pkg/hwreg",
         "@fuchsia_sdk//pkg/mmio",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
     ],
diff --git a/src/acpi_multiply/meta/acpi_multiply.cml b/src/acpi_multiply/meta/acpi_multiply.cml
index 853814e..630ee40 100644
--- a/src/acpi_multiply/meta/acpi_multiply.cml
+++ b/src/acpi_multiply/meta/acpi_multiply.cml
@@ -11,10 +11,6 @@
               'fuchsia.hardware.acpi.Device',
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
 }
diff --git a/src/acpi_multiply/meta/test_acpi_implementation.cml b/src/acpi_multiply/meta/test_acpi_implementation.cml
index 7d2f24a..c86ada6 100644
--- a/src/acpi_multiply/meta/test_acpi_implementation.cml
+++ b/src/acpi_multiply/meta/test_acpi_implementation.cml
@@ -10,11 +10,7 @@
               'fuchsia.logger.LogSink',
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
     capabilities: [
         { protocol: 'fuchsia.hardware.acpi.Device' },
diff --git a/src/composite_sample/BUILD.bazel b/src/composite_sample/BUILD.bazel
index e8adebc..a285da3 100644
--- a/src/composite_sample/BUILD.bazel
+++ b/src/composite_sample/BUILD.bazel
@@ -31,7 +31,7 @@
         "@fuchsia_sdk//fidl/fuchsia.driver.compat:fuchsia.driver.compat_llcpp_cc",
         "@fuchsia_sdk//fidl/zx:zx_cc",
         "@fuchsia_sdk//pkg/driver2-llcpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
     ],
diff --git a/src/composite_sample/meta/composite_sample.cml b/src/composite_sample/meta/composite_sample.cml
index 5e68984..9d34ab4 100644
--- a/src/composite_sample/meta/composite_sample.cml
+++ b/src/composite_sample/meta/composite_sample.cml
@@ -10,20 +10,6 @@
               'fuchsia.logger.LogSink',
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        },
-        {
-            directory: 'fuchsia.driver.compat.Service-acpi-GFBY',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/acpi-GFBY',
-        },
-        {
-            directory: 'fuchsia.driver.compat.Service-acpi-GFRT',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/acpi-GFRT',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
 }
diff --git a/src/example_driver/BUILD.bazel b/src/example_driver/BUILD.bazel
index 24cdeb0..3ee34b7 100644
--- a/src/example_driver/BUILD.bazel
+++ b/src/example_driver/BUILD.bazel
@@ -27,7 +27,7 @@
         "@fuchsia_sdk//pkg/async-cpp",
         "@fuchsia_sdk//pkg/driver2-llcpp",
         "@fuchsia_sdk//pkg/driver_runtime_cpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
     ],
diff --git a/src/example_driver/meta/example_driver.cml b/src/example_driver/meta/example_driver.cml
index 26f9754..6f138ae 100644
--- a/src/example_driver/meta/example_driver.cml
+++ b/src/example_driver/meta/example_driver.cml
@@ -11,10 +11,6 @@
               'fuchsia.device.fs.Exporter'
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
 }
diff --git a/src/i2c_temperature/BUILD.bazel b/src/i2c_temperature/BUILD.bazel
index 7b79aa9..63cc3c9 100644
--- a/src/i2c_temperature/BUILD.bazel
+++ b/src/i2c_temperature/BUILD.bazel
@@ -31,7 +31,7 @@
     visibility = ["//visibility:public"],
     deps = [
         "@fuchsia_sdk//fidl/zx:zx_llcpp_cc",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
     ],
 )
 
@@ -60,7 +60,7 @@
         "@fuchsia_sdk//fidl/zx:zx_cc",
         "@fuchsia_sdk//pkg/async-cpp",
         "@fuchsia_sdk//pkg/driver2-llcpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
     ],
@@ -111,7 +111,7 @@
         "@fuchsia_sdk//fidl/zx:zx_cc",
         "@fuchsia_sdk//pkg/async-cpp",
         "@fuchsia_sdk//pkg/driver2-llcpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
     ],
diff --git a/src/i2c_temperature/meta/i2c_temperature.cml b/src/i2c_temperature/meta/i2c_temperature.cml
index 8d5fcf3..42cb06a 100644
--- a/src/i2c_temperature/meta/i2c_temperature.cml
+++ b/src/i2c_temperature/meta/i2c_temperature.cml
@@ -11,10 +11,6 @@
               'fuchsia.hardware.i2c.Device',
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
 }
diff --git a/src/i2c_temperature/meta/test_i2c_controller.cml b/src/i2c_temperature/meta/test_i2c_controller.cml
index 3ee96c4..314bc14 100644
--- a/src/i2c_temperature/meta/test_i2c_controller.cml
+++ b/src/i2c_temperature/meta/test_i2c_controller.cml
@@ -10,11 +10,7 @@
               'fuchsia.logger.LogSink',
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
     capabilities: [
         { protocol: 'fuchsia.hardware.i2c.Device' },
diff --git a/src/input_sample/BUILD.bazel b/src/input_sample/BUILD.bazel
index 36436f3..285ad4f 100644
--- a/src/input_sample/BUILD.bazel
+++ b/src/input_sample/BUILD.bazel
@@ -28,7 +28,7 @@
         "@fuchsia_sdk//pkg/async-cpp",
         "@fuchsia_sdk//pkg/driver2-llcpp",
         "@fuchsia_sdk//pkg/driver_runtime_cpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/input_report_reader",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
         "@fuchsia_sdk//pkg/zx",
diff --git a/src/input_sample/meta/input_sample.cml b/src/input_sample/meta/input_sample.cml
index b9061d0..37cdd61 100644
--- a/src/input_sample/meta/input_sample.cml
+++ b/src/input_sample/meta/input_sample.cml
@@ -11,11 +11,7 @@
               'fuchsia.device.fs.Exporter'
             ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        }
+        { service: "fuchsia.driver.compat.Service" },
     ],
     capabilities: [
         { protocol: 'fuchsia.input.report.InputDevice' },
diff --git a/src/qemu_edu/BUILD.bazel b/src/qemu_edu/BUILD.bazel
index 2f4f817..45c2617 100644
--- a/src/qemu_edu/BUILD.bazel
+++ b/src/qemu_edu/BUILD.bazel
@@ -34,7 +34,7 @@
     visibility = ["//visibility:public"],
     deps = [
         "@fuchsia_sdk//fidl/zx:zx_llcpp_cc",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
     ],
 )
 
@@ -63,7 +63,7 @@
         "@fuchsia_sdk//fidl/zx:zx_cc",
         "@fuchsia_sdk//pkg/driver2-llcpp",
         "@fuchsia_sdk//pkg/driver_runtime_cpp",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
         "@fuchsia_sdk//pkg/hwreg",
         "@fuchsia_sdk//pkg/mmio",
         "@fuchsia_sdk//pkg/sys_component_llcpp",
@@ -105,7 +105,7 @@
     deps = [
         ":fuchsia.hardware.qemuedu_cc",
         "@fuchsia_sdk//pkg/fdio",
-        "@fuchsia_sdk//pkg/fidl-llcpp",
+        "@fuchsia_sdk//pkg/fidl_cpp_wire",
     ],
 )
 
@@ -114,7 +114,6 @@
     src = "meta/eductl.cml",
     includes = [
         "@fuchsia_sdk//pkg/syslog:client",
-        "@fuchsia_sdk//pkg/syslog:elf_stdio",
     ],
 )
 
diff --git a/src/qemu_edu/meta/eductl.cml b/src/qemu_edu/meta/eductl.cml
index 2506294..4552b7d 100644
--- a/src/qemu_edu/meta/eductl.cml
+++ b/src/qemu_edu/meta/eductl.cml
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 {
     include: [
-        "syslog/elf_stdio.shard.cml",
+        "syslog/client.shard.cml",
     ],
     program: {
         runner: 'elf',
diff --git a/src/qemu_edu/meta/qemu_edu.cml b/src/qemu_edu/meta/qemu_edu.cml
index 111740e..20ca3dd 100644
--- a/src/qemu_edu/meta/qemu_edu.cml
+++ b/src/qemu_edu/meta/qemu_edu.cml
@@ -14,12 +14,8 @@
         {
             protocol: [ 'fuchsia.device.fs.Exporter' ],
         },
-        {
-            directory: 'fuchsia.driver.compat.Service-default',
-            rights: ['rw*'],
-            path: '/fuchsia.driver.compat.Service/default',
-        },
-    ],
+        { service: "fuchsia.driver.compat.Service" },
+   ],
     // Provide the device capability to other components
     capabilities: [
         { protocol: 'fuchsia.hardware.qemuedu.Device' },
diff --git a/third_party/sdk-integration b/third_party/sdk-integration
index 1d7bb44..8700804 160000
--- a/third_party/sdk-integration
+++ b/third_party/sdk-integration
@@ -1 +1 @@
-Subproject commit 1d7bb44610591a3ce60f3b8ced721202139be0a1
+Subproject commit 87008049a9cd2833a9be33c32f59ed6bc62a2496
diff --git a/tools/ffx b/tools/ffx
index e8a7201..ade000e 120000
--- a/tools/ffx
+++ b/tools/ffx
@@ -1 +1 @@
-../bazel-drivers/external/fuchsia_sdk/tools/x64/ffx
\ No newline at end of file
+../third_party/sdk-integration/bazel_rules_fuchsia/tools/run_sdk_tool.sh
\ No newline at end of file
diff --git a/tools/fssh b/tools/fssh
index bff5489..ade000e 120000
--- a/tools/fssh
+++ b/tools/fssh
@@ -1 +1 @@
-../bazel-drivers/external/fuchsia_sdk/tools/x64/fssh
\ No newline at end of file
+../third_party/sdk-integration/bazel_rules_fuchsia/tools/run_sdk_tool.sh
\ No newline at end of file
diff --git a/update_dependencies.md b/update_dependencies.md
deleted file mode 100644
index 302f115..0000000
--- a/update_dependencies.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# Updating dependencies
-
-This repository contains a few external dependencies:
-
-* Fuchsia Bazel SDK
-* Fuchsia Core SDK
-* Clang
-* Google Testing and Mocking Framework
-
-This document provides simple instructions on how to update these dependencies to newer versions.
-
-## How to update - easy version
-
-There is an update script the performs all the manual steps below and sends a
-CL. Please use it and report if you encounter any error.
-
-```
-cd `mktemp -d`
-curl -s https://fuchsia.googlesource.com/sdk-integration/+/refs/heads/main/scripts/upgrade_repo.sh?format=TEXT  |
-    base64 --decode > upgrade_repo.sh &&
-    source ./upgrade_repo.sh drivers
-```
-
-## How to update
-
-If for some reason the script above doesn't work as expected, the manual instructions can be followed.
-
-### Fuchsia Bazel SDK (sdk-integration)
-
-> **When to update**: As frequent as possible, ideally daily.
-
-The Fuchsia Bazel SDK is added to this repo as a git submodule. In order to
-update it, use the following git commands:
-
-* `git -C third_party/sdk-integration pull`
-
-* `git add third_party/sdk-integration && git commit && git push origin:HEAD`
-
-Get the CL reviewed and merged.
-
-### Fuchsia Core SDK
-
-> **When to update**: As frequent as possible, ideally daily.
-
-* Navigate to [linux SDK repo](https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core/linux-amd64/+/)
-
-  * Find the entry with the label "latest" in the "Instances" list. Click on it.
-
-  * Take note of the "SHA256" field, something like "52c90bdf7a7bdc1352dd0de93ceea53a260b391a3d1e81ca20c909a60686753c"
-
-  * Take note of the "version" field, something like "7.20220411.3.1"
-
-* Navigate to [Mac SDK repo](https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core/mac-amd64/+/)
-
-  * find the entry with the label "latest" in the "Instances" list
-
-  * Ensure that the "version" field is identical to the Linux version you found
-    above. If they are different, go back to the "Instances" list and find one
-    version that has both Mac and Linux instances.
-
-  * Take note of the "SHA256" field
-
-* Repeat the steps above for the [Linux experimental repo](https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/experimental/linux-amd64/+/)
-  and [Mac experimental repo](https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/experimental/mac-amd64/+/)
-
-* Open the [WORKSPACE.bazel](WORKSPACE.bazel) file
-
-* Update the `fuchsia_sdk_repository` rule accordingly:
-  * The `version` should be pasted in `cipd_tag`
-  * The `SHA256` for Linux core should be pasted in `linux`
-  * The `SHA256` for Mac core should be pasted in `mac`
-  * The `SHA256` for Linux experimental should be pasted in `linux_experimental`
-  * The `SHA256` for Mac experimental should be pasted in `mac_experimental`
-
-* Follow the instructions in the [After a version update](#sending) section
-
-### Clang
-
-Follow the corresponding instructions in the [getting
-started](https://fuchsia.googlesource.com/sdk-samples/getting-started/+/refs/heads/main/update_dependencies.md#clang)
-repository.
-
-### Google Testing and Mocking Framework
-
-Follow the corresponding instructions in the [getting
-started](https://fuchsia.googlesource.com/sdk-samples/getting-started/+/refs/heads/main/update_dependencies.md#clang)
-repository.
-
-## After a version update {#sending}
-
-* Clean the Bazel cache: `bazel clean --expunge`
-
-* Follow the instructions in the [README](README.md) to validate if the samples build and run
-
-* Send a CL and request review from one of the owners of the repository