diff --git a/11_updatable-software/11_0_intro.md b/11_updatable-software/11_0_intro.md
index 3e7a3a0..1be0c9f 100644
--- a/11_updatable-software/11_0_intro.md
+++ b/11_updatable-software/11_0_intro.md
@@ -3,14 +3,13 @@
 *    [C-0-1] Device implementations MUST include a mechanism to replace the
 entirety of the system software. The mechanism need not perform “live”
 upgrades—that is, a device restart MAY be required.
-
 Any method can be used, provided that it can replace the entirety of the
 software preinstalled on the device. For instance, any of the following
 approaches will satisfy this requirement:
 
-*   “Over-the-air (OTA)” downloads with offline update via reboot.
-*   “Tethered” updates over USB from a host PC.
-*   “Offline” updates via a reboot and update from a file on removable storage.
+     *   “Over-the-air (OTA)” downloads with offline update via reboot.
+     *   “Tethered” updates over USB from a host PC.
+     *   “Offline” updates via a reboot and update from a file on removable storage.
 
 *    [C-0-2] The update mechanism used MUST support updates without wiping user
 data. That is, the update mechanism MUST preserve application private data and
diff --git a/1_introduction/1_0_intro.md b/1_introduction/1_0_intro.md
index d6780b3..1985ee4 100644
--- a/1_introduction/1_0_intro.md
+++ b/1_introduction/1_0_intro.md
@@ -9,7 +9,7 @@
 
 As used in this document, a “device implementer” or “implementer” is a person
 or organization developing a hardware/software solution running Android
-ANDROID_VERSION. A “device implementation” or “implementation is the
+ANDROID_VERSION. A “device implementation” or “implementation" is the
 hardware/software solution so developed.
 
 To be considered compatible with Android ANDROID_VERSION, device
diff --git a/1_introduction/1_1_structure.md b/1_introduction/1_1_structure.md
index b6dfc73..11fdaf8 100644
--- a/1_introduction/1_1_structure.md
+++ b/1_introduction/1_1_structure.md
@@ -21,7 +21,7 @@
 
 Each ID is defined as below:
 
-*    Device Type ID (see more on [2. Device Types](#2_device_types)
+*    Device Type ID (see more in [2. Device Types](#2_device_types))
      *    C: Core (Requirements that are applied to any Android device implementations)
      *    H: Android Handheld device
      *    T: Android Television device
diff --git a/2_device-types/2_2_handheld-reqs.md b/2_device-types/2_2_handheld-reqs.md
index 5f079ac..2fbc138 100644
--- a/2_device-types/2_2_handheld-reqs.md
+++ b/2_device-types/2_2_handheld-reqs.md
@@ -83,7 +83,7 @@
 
 *  [[7.3](#7_3_sensors).12/H-SR] Are RECOMMENDED to support pose sensor with 6
 degrees of freedom.
-*  [[7.4](#7_4_data-connectivity).3/H]SHOULD include support for Bluetooth and
+*  [[7.4](#7_4_data-connectivity).3/H] SHOULD include support for Bluetooth and
 Bluetooth LE.
 
 If Handheld device implementations include a metered connection, they:
@@ -92,7 +92,7 @@
 
 Handheld device implementations:
 
-*  [[7.6](#7_6_memory-and-storage).1/H-0-1] MUST have at least 4GB of
+*  [[7.6](#7_6_memory-and-storage).1/H-0-1] MUST have at least 4 GB of
 non-volatile storage available for application private data
 (a.k.a. "/data" partition).
 *  [[7.6](#7_6_memory-and-storage).1/H-0-2] MUST return “true” for
@@ -283,7 +283,7 @@
 
 *   [[3.8](#3_8_user-interface-compatibility).4/H-SR] Are STRONGLY RECOMMENDED
 to use long press on `HOME` key as the designated interaction to launch the
-assist app as described in [section 7.2.3](#7_2_3_navigation_keys) MUST launch
+assist app as described in [section 7.2.3](#7_2_3_navigation_keys). MUST launch
 the user-selected assist app, in other words the app that implements
 [`VoiceInteractionService`](
 https://developer.android.com/reference/android/service/voice/VoiceInteractionService)
@@ -408,4 +408,4 @@
     notifications and disable all forms of authentication except for the
     primary authentication described in
     [9.11.1 Secure Lock Screen](#9_11_1_secure-lock-screen). The AOSP meets the
-    requirement as lockdown mode.
\ No newline at end of file
+    requirement as lockdown mode.
diff --git a/2_device-types/2_3_television-reqs.md b/2_device-types/2_3_television-reqs.md
index 0856947..bcd42fe 100644
--- a/2_device-types/2_3_television-reqs.md
+++ b/2_device-types/2_3_television-reqs.md
@@ -10,7 +10,7 @@
 *   Have provided a mechanism to remotely control the rendered user interface on
     the display that might sit ten feet away from the user.
 *   Have an embedded screen display with the diagonal length larger than 24
-    inches OR include a video output port, such as VGA, HDMI, DisplayPort or a
+    inches OR include a video output port, such as VGA, HDMI, DisplayPort, or a
     wireless port for display.
 
 The additional requirements in the rest of this section are specific to Android
@@ -45,7 +45,7 @@
 
 *   [[7.4](#7_4_data-connectivity).3/T-0-1] MUST support Bluetooth and
 Bluetooth LE.
-*   [[7.6](#7_6_memory-and-storage).1/T-0-1] MUST have at least 4GB of
+*   [[7.6](#7_6_memory-and-storage).1/T-0-1] MUST have at least 4 GB of
 non-volatile storage available for application private data
 (a.k.a. "/data" partition).
 
diff --git a/2_device-types/2_4_watch-reqs.md b/2_device-types/2_4_watch-reqs.md
index aa5912a..4a055a0 100644
--- a/2_device-types/2_4_watch-reqs.md
+++ b/2_device-types/2_4_watch-reqs.md
@@ -30,9 +30,9 @@
 
 *   [[7.4](#7_4_data-connectivity).3/W-0-1] MUST support Bluetooth.
 
-*   [[7.6](#7_6_memory-and-storage).1/W-0-1] MUST have at least 1GB of
-non-volatile storage available for application private data (a.k.a. "/data" partition)
-*   [[7.6](#7_6_memory-and-storage).1/W-0-2] MUST have at least 416MB memory
+*   [[7.6](#7_6_memory-and-storage).1/W-0-1] MUST have at least 1 GB of
+non-volatile storage available for application private data (a.k.a. "/data" partition).
+*   [[7.6](#7_6_memory-and-storage).1/W-0-2] MUST have at least 416 MB memory
 available to the kernel and userspace.
 
 *   [[7.8](#7_8_audio).1/W-0-1] MUST include a microphone.
@@ -95,7 +95,7 @@
 
 *    [[8.4](#8_4_power-consumption-accounting)/W-0-1] MUST provide a
 per-component power profile that defines the [current consumption value](
-http://source.android.com/devices/tech/power/values.html).
+http://source.android.com/devices/tech/power/values.html)
 for each hardware component and the approximate battery drain caused by the
 components over time as documented in the Android Open Source Project site.
 *    [[8.4](#8_4_power-consumption-accounting)/W-0-2] MUST report all power
diff --git a/2_device-types/2_5_automotive-reqs.md b/2_device-types/2_5_automotive-reqs.md
index 9246a37..ce3b441 100644
--- a/2_device-types/2_5_automotive-reqs.md
+++ b/2_device-types/2_5_automotive-reqs.md
@@ -91,7 +91,7 @@
 `NetworkCapabilities#NET_CAPABILITY_OEM_PAID` constant for
 networks that should be available to system apps.
 
-*   [[7.6](#7_6_memory-and-storage).1/A-0-1] MUST have at least 4GB of
+*   [[7.6](#7_6_memory-and-storage).1/A-0-1] MUST have at least 4 GB of
 non-volatile storage available for application private data
 (a.k.a. "/data" partition).
 
@@ -308,4 +308,4 @@
 *   [[9.14](#9_14_automotive-system-isolation)/A-0-2] MUST watchdog against
 denial of service attacks from the Android framework or third-party apps. This
 guards against malicious software flooding the vehicle network with traffic,
-which may lead to malfunctioning vehicle subsystems.
\ No newline at end of file
+which may lead to malfunctioning vehicle subsystems.
diff --git a/2_device-types/2_6_tablet-reqs.md b/2_device-types/2_6_tablet-reqs.md
index ce910d1..9b362a0 100644
--- a/2_device-types/2_6_tablet-reqs.md
+++ b/2_device-types/2_6_tablet-reqs.md
@@ -30,7 +30,7 @@
 If tablet device implementations include a USB port supporting peripheral
 mode, they:
 
-*   [[7.7.1](#7_7_usb)/Tab]MAY implement the Android Open Accessory (AOA) API.
+*   [[7.7.1](#7_7_usb)/Tab] MAY implement the Android Open Accessory (AOA) API.
 
 **Virtual Reality Mode (Section 7.9.1)**
 
diff --git a/3_software/3_1_managed-api-compatibility.md b/3_software/3_1_managed-api-compatibility.md
index 92eb603..5e7a27a 100644
--- a/3_software/3_1_managed-api-compatibility.md
+++ b/3_software/3_1_managed-api-compatibility.md
@@ -29,7 +29,7 @@
      defined as APIs in the android namespace decorated with the `@hidden`
      annotation but not with a `@SystemAPI` or `@TestApi`, as described in the
      [SDK documents](https://developer.android.com/preview/restrictions-non-sdk-interfaces)
-     and ship with each and every hidden API on the the same restricted lists as
+     and ship with each and every hidden API on the same restricted lists as
      provided via the light-greylist, dark-greylist, and blacklist files in the
      `prebuilts/runtime/appcompat/` path for the appropriate API level branch
      in the AOSP. However they:
@@ -66,4 +66,4 @@
     *    Declares in its manifest that it needs the library by setting the
     `android:name` attribute of `<uses-library>` to `org.apache.http.legacy`.
 
-The AOSP implementation meets these requirements.
\ No newline at end of file
+The AOSP implementation meets these requirements.
diff --git a/3_software/3_2_soft-api-compatibility.md b/3_software/3_2_soft-api-compatibility.md
index 169347b..08ec1b5 100644
--- a/3_software/3_2_soft-api-compatibility.md
+++ b/3_software/3_2_soft-api-compatibility.md
@@ -256,15 +256,15 @@
 service components with an intent handler, for all the public intent filter
 patterns defined by the following core android applications in AOSP:
 
-   *   Desk Clock
-   *   Browser
-   *   Calendar
-   *   Contacts
-   *   Gallery
-   *   GlobalSearch
-   *   Launcher
-   *   Music
-   *   Settings
+     *   Desk Clock
+     *   Browser
+     *   Calendar
+     *   Contacts
+     *   Gallery
+     *   GlobalSearch
+     *   Launcher
+     *   Music
+     *   Settings
 
 #### 3.2.3.2\. Intent Resolution
 
@@ -307,18 +307,18 @@
 user appropriate per-URI pattern overrides in the settings menu.
 *   MUST provide the user with per-app App Links controls in Settings as
 follows:
-    *   [C-0-6] The user MUST be able to override holistically the default app
-    links behavior for an app to be: always open, always ask, or never open,
-    which must apply to all candidate URI intent filters equally.
-    *   [C-0-7] The user MUST be able to see a list of the candidate URI intent
-    filters.
-    *   The device implementation MAY provide the user with the ability to
-    override specific candidate URI intent filters that were successfully
-    verified, on a per-intent filter basis.
-    *   [C-0-8] The device implementation MUST provide users with the ability to
-    view and override specific candidate URI intent filters if the device
-    implementation lets some candidate URI intent filters succeed
-    verification while some others can fail.
+      *   [C-0-6] The user MUST be able to override holistically the default app
+      links behavior for an app to be: always open, always ask, or never open,
+      which must apply to all candidate URI intent filters equally.
+      *   [C-0-7] The user MUST be able to see a list of the candidate URI intent
+      filters.
+      *   The device implementation MAY provide the user with the ability to
+      override specific candidate URI intent filters that were successfully
+      verified, on a per-intent filter basis.
+      *   [C-0-8] The device implementation MUST provide users with the ability to
+      view and override specific candidate URI intent filters if the device
+      implementation lets some candidate URI intent filters succeed
+      verification while some others can fail.
 
 #### 3.2.3.3\. Intent Namespaces
 
@@ -372,9 +372,9 @@
 https://developer.android.com/reference/android/telecom/TelecomManager.html#ACTION_CHANGE_DEFAULT_DIALER)
 intent to show a dialog to allow the user to change the default Phone
 application.
-    *    MUST use the user-selected default Phone app's UI for incoming and
-    outgoing calls except for emergency calls, which would use the
-    preloaded Phone app.
+     *    MUST use the user-selected default Phone app's UI for incoming and
+     outgoing calls except for emergency calls, which would use the
+     preloaded Phone app.
 
 *   [C-2-3] MUST honor the [android.telecom.action.CHANGE_PHONE_ACCOUNTS](
 https://developer.android.com/reference/android/telecom/TelecomManager.html#ACTION_CHANGE_PHONE_ACCOUNTS)
diff --git a/3_software/3_3_native-api-compatibility.md b/3_software/3_3_native-api-compatibility.md
index 5a8eb57..d0c9c9f 100644
--- a/3_software/3_3_native-api-compatibility.md
+++ b/3_software/3_3_native-api-compatibility.md
@@ -32,37 +32,37 @@
 *   [C-0-6] MUST report, via the above parameters, a subset of the following
     list of ABIs and MUST NOT report any ABI not on the list.
 
-    *   `armeabi`
-    *   `armeabi-v7a`
-    *   `arm64-v8a`
-    *   `x86`
-    *   `x86-64`
+     *   `armeabi`
+     *   `armeabi-v7a`
+     *   `arm64-v8a`
+     *   `x86`
+     *   `x86-64`
 *   [C-0-7] MUST make all the following libraries, providing native APIs,
     available to apps that include native code:
 
-    *   libaaudio.so (AAudio native audio support)
-    *   libandroid.so (native Android activity support)
-    *   libc (C library)
-    *   libcamera2ndk.so
-    *   libdl (dynamic linker)
-    *   libEGL.so (native OpenGL surface management)
-    *   libGLESv1\_CM.so (OpenGL ES 1.x)
-    *   libGLESv2.so (OpenGL ES 2.0)
-    *   libGLESv3.so (OpenGL ES 3.x)
-    *   libicui18n.so
-    *   libicuuc.so
-    *   libjnigraphics.so
-    *   liblog (Android logging)
-    *   libmediandk.so (native media APIs support)
-    *   libm (math library)
-    *   libneuralnetworks.so (Neural Networks API)
-    *   libOpenMAXAL.so (OpenMAX AL 1.0.1 support)
-    *   libOpenSLES.so (OpenSL ES 1.0.1 audio support)
-    *   libRS.so
-    *   libstdc++ (Minimal support for C++)
-    *   libvulkan.so (Vulkan)
-    *   libz (Zlib compression)
-    *   JNI interface
+     *   libaaudio.so (AAudio native audio support)
+     *   libandroid.so (native Android activity support)
+     *   libc (C library)
+     *   libcamera2ndk.so
+     *   libdl (dynamic linker)
+     *   libEGL.so (native OpenGL surface management)
+     *   libGLESv1\_CM.so (OpenGL ES 1.x)
+     *   libGLESv2.so (OpenGL ES 2.0)
+     *   libGLESv3.so (OpenGL ES 3.x)
+     *   libicui18n.so
+     *   libicuuc.so
+     *   libjnigraphics.so
+     *   liblog (Android logging)
+     *   libmediandk.so (native media APIs support)
+     *   libm (math library)
+     *   libneuralnetworks.so (Neural Networks API)
+     *   libOpenMAXAL.so (OpenMAX AL 1.0.1 support)
+     *   libOpenSLES.so (OpenSL ES 1.0.1 audio support)
+     *   libRS.so
+     *   libstdc++ (Minimal support for C++)
+     *   libvulkan.so (Vulkan)
+     *   libz (Zlib compression)
+     *   JNI interface
 
 *   [C-0-8] MUST NOT add or remove the public functions for the native libraries
     listed above.
@@ -118,4 +118,4 @@
 
 *    [C-2-3] MUST include support for the [Advanced SIMD](
      http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html)
-     (a.k.a. NEON) extension.
\ No newline at end of file
+     (a.k.a. NEON) extension.
diff --git a/3_software/3_8_user-interface-compatibility.md b/3_software/3_8_user-interface-compatibility.md
index 76c32c2..74ad322 100644
--- a/3_software/3_8_user-interface-compatibility.md
+++ b/3_software/3_8_user-interface-compatibility.md
@@ -389,7 +389,7 @@
     and provide the user with a settings menu to toggle the feature.
 *   SHOULD display highlight color, icon, screen title in recents.
 *   SHOULD display a closing affordance ("x") but MAY delay this until user interacts with screens.
-*   SHOULD implement a shortcut to switch easily to the previous activity
+*   SHOULD implement a shortcut to switch easily to the previous activity.
 *   SHOULD trigger the fast-switch action between the two most recently used
     apps, when the recents function key is tapped twice.
 *   SHOULD trigger the split-screen multiwindow-mode, if supported, when the
@@ -549,7 +549,7 @@
 *   [C-3-6] MUST allocate minimum width and height of 108 dp for the PIP window
     and minimum width of 240 dp and height of 135 dp for the PIP window when the
     `Configuration.uiMode` is configured as [`UI_MODE_TYPE_TELEVISION`](
-    https://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_TELEVISION)
+    https://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_TELEVISION).
 
 
 ### 3.8.15\. Display Cutout
@@ -572,4 +572,4 @@
 API as described in the SDK.
 *   [C-1-4] MUST report correct values for all cutout metrics defined in the
 [`DisplayCutout`](
-https://developer.android.com/reference/android/view/DisplayCutout) API.
\ No newline at end of file
+https://developer.android.com/reference/android/view/DisplayCutout) API.
diff --git a/3_software/3_9_device-administration.md b/3_software/3_9_device-administration.md
index f0d4a7b..9b66b25 100644
--- a/3_software/3_9_device-administration.md
+++ b/3_software/3_9_device-administration.md
@@ -3,7 +3,7 @@
 Android includes features that allow security-aware applications to perform
 device administration functions at the system level, such as enforcing password
 policies or performing remote wipe, through the
-[Android Device Administration API](http://developer.android.com/guide/topics/admin/device-admin.html)].
+[Android Device Administration API](http://developer.android.com/guide/topics/admin/device-admin.html).
 
 If device implementations implement the full range of [device administration](
 http://developer.android.com/guide/topics/admin/device-admin.html)
@@ -130,7 +130,7 @@
     *   The lock screen credentials of the managed profile MUST use the same
         credential storage and management mechanisms as the parent profile,
         as documented on the
-        [Android Open Source Project Site](http://source.android.com/security/authentication/index.html)
+        [Android Open Source Project Site](http://source.android.com/security/authentication/index.html).
     *   The DPC [password policies](https://developer.android.com/guide/topics/admin/device-admin.html#pwd)
         MUST apply to only the managed profile's lock screen credentials unless
         called upon the `DevicePolicyManager` instance returned by
@@ -149,4 +149,4 @@
     [`isLogoutEnabled`](
     https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isLogoutEnabled%28%29)
     returns `true`. The user affordance MUST be accessible from the lockscreen
-    without unlocking the device.
\ No newline at end of file
+    without unlocking the device.
diff --git a/5_multimedia/5_1_media-codecs.md b/5_multimedia/5_1_media-codecs.md
index ea34d0c..22f54b6 100644
--- a/5_multimedia/5_1_media-codecs.md
+++ b/5_multimedia/5_1_media-codecs.md
@@ -47,7 +47,7 @@
 AAC DRC keys were introduced in API 21,and are:
 `KEY_AAC_DRC_ATTENUATION_FACTOR`, `KEY_AAC_DRC_BOOST_FACTOR`,
 `KEY_AAC_DRC_HEAVY_COMPRESSION`, `KEY_AAC_DRC_TARGET_REFERENCE_LEVEL` and
-`KEY_AAC_ENCODED_TARGET_LEVEL`
+`KEY_AAC_ENCODED_TARGET_LEVEL`.
 
 When decoding USAC audio, MPEG-D (ISO/IEC 23003-4):
 
@@ -271,7 +271,7 @@
 https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#FEATURE_IntraRefresh)
 class, they:
 
-*   [C-3-1]MUST support the refresh periods in the range of 10 - 60 frames and
+*   [C-3-1] MUST support the refresh periods in the range of 10 - 60 frames and
 accurately operate within 20% of configured refresh period.
 
 
diff --git a/5_multimedia/5_6_audio-latency.md b/5_multimedia/5_6_audio-latency.md
index 5e0699d..a1aefab 100644
--- a/5_multimedia/5_6_audio-latency.md
+++ b/5_multimedia/5_6_audio-latency.md
@@ -77,10 +77,10 @@
 If device implementations include `android.hardware.microphone`, they are
 STRONGLY RECOMMENDED to meet these input audio requirements:
 
-   *   [C-SR] Cold input latency of 100 milliseconds or less
-   *   [C-SR] Continuous input latency of 30 milliseconds or less
-   *   [C-SR] Continuous round-trip latency of 50 milliseconds or less
-   *   [C-SR] Minimize the cold input jitter
+   *   [C-SR] Cold input latency of 100 milliseconds or less.
+   *   [C-SR] Continuous input latency of 30 milliseconds or less.
+   *   [C-SR] Continuous round-trip latency of 50 milliseconds or less.
+   *   [C-SR] Minimize the cold input jitter.
    *   [C-SR] Limit the error in input timestamps, as returned by
 [AudioRecord.getTimestamp](https://developer.android.com/reference/android/media/AudioRecord.html#getTimestamp(android.media.AudioTimestamp,%20int))
 or `AAudioStream_getTimestamp`, to +/- 1 ms.
diff --git a/7_hardware-compatibility/7_1_display-and-graphics.md b/7_hardware-compatibility/7_1_display-and-graphics.md
index 3ab68d0..15a7c07 100644
--- a/7_hardware-compatibility/7_1_display-and-graphics.md
+++ b/7_hardware-compatibility/7_1_display-and-graphics.md
@@ -284,7 +284,7 @@
     Vulkan native APIs , and conversely MUST NOT report extension strings
     that they do not correctly support.
 *   [C-1-7] MUST support the VK_KHR_surface, VK_KHR_android_surface, VK_KHR_swapchain,
-    and VK_KHR_incremental_present extensions
+    and VK_KHR_incremental_present extensions.
 
 If device implementations do not include support for Vulkan 1.0, they:
 
diff --git a/7_hardware-compatibility/7_2_input-devices.md b/7_hardware-compatibility/7_2_input-devices.md
index 664d7c5..05d53fc 100644
--- a/7_hardware-compatibility/7_2_input-devices.md
+++ b/7_hardware-compatibility/7_2_input-devices.md
@@ -91,7 +91,7 @@
 or gestures. This Menu function should be accessible unless hidden together with
 other navigation functions.
 
-If device implementations provide the [Assist function]((http://developer.android.com/reference/android/view/KeyEvent.html#`KEYCODE_ASSIST`),
+If device implementations provide the [Assist function](http://developer.android.com/reference/android/view/KeyEvent.html#`KEYCODE_ASSIST`),
 they:
 *    [C-4-1] MUST make the Assist function accessible with a single action
 (e.g. tap, double-click or gesture) when other navigation keys are accessible.
@@ -132,7 +132,7 @@
 *    [C-1-1] MUST report `TOUCHSCREEN_FINGER` for the [`Configuration.touchscreen`](https://developer.android.com/reference/android/content/res/Configuration.html#touchscreen)
      API field.
 *    [C-1-2] MUST report the `android.hardware.touchscreen` and
-     `android.hardware.faketouch` feature flags
+     `android.hardware.faketouch` feature flags.
 
 If device implementations include a touchscreen that can track more than
 a single touch, they:
@@ -211,6 +211,7 @@
 
 If device implementations declare the `android.hardware.gamepad` feature flag,
 they:
+
 *    [C-1-1] MUST have embed a controller or ship with a separate controller
 in the box, that would provide means to input all the events listed in the
 below tables.
diff --git a/7_hardware-compatibility/7_3_sensors.md b/7_hardware-compatibility/7_3_sensors.md
index b452eff..b8ac710 100644
--- a/7_hardware-compatibility/7_3_sensors.md
+++ b/7_hardware-compatibility/7_3_sensors.md
@@ -506,17 +506,17 @@
   https://developer.android.com/reference/android/hardware/Sensor.html#getHighestDirectReportRateLevel%28%29)
   API.
 * [C-3-2] MUST support at least one of the two sensor direct channel types
-  for all sensors that declare support for sensor direct channel
-  *   [`TYPE_HARDWARE_BUFFER`](https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_HARDWARE_BUFFER)
-  *   [`TYPE_MEMORY_FILE`](https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_MEMORY_FILE)
+  for all sensors that declare support for sensor direct channel.
+    *   [`TYPE_HARDWARE_BUFFER`](https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_HARDWARE_BUFFER)
+    *   [`TYPE_MEMORY_FILE`](https://developer.android.com/reference/android/hardware/SensorDirectChannel.html#TYPE_MEMORY_FILE)
 * SHOULD support event reporting through sensor direct channel for primary
   sensor (non-wakeup variant) of the following types:
-  *   `TYPE_ACCELEROMETER`
-  *   `TYPE_ACCELEROMETER_UNCALIBRATED`
-  *   `TYPE_GYROSCOPE`
-  *   `TYPE_GYROSCOPE_UNCALIBRATED`
-  *   `TYPE_MAGNETIC_FIELD`
-  *   `TYPE_MAGNETIC_FIELD_UNCALIBRATED`
+     *   `TYPE_ACCELEROMETER`
+     *   `TYPE_ACCELEROMETER_UNCALIBRATED`
+     *   `TYPE_GYROSCOPE`
+     *   `TYPE_GYROSCOPE_UNCALIBRATED`
+     *   `TYPE_MAGNETIC_FIELD`
+     *   `TYPE_MAGNETIC_FIELD_UNCALIBRATED`
 
 ### 7.3.10\. Biometric Sensors
 
diff --git a/7_hardware-compatibility/7_4_data-connectivity.md b/7_hardware-compatibility/7_4_data-connectivity.md
index a3e168f..746bb7d 100644
--- a/7_hardware-compatibility/7_4_data-connectivity.md
+++ b/7_hardware-compatibility/7_4_data-connectivity.md
@@ -79,7 +79,7 @@
     [`EXTRA_LOG_SELF_MANAGED_CALLS`](
     https://developer.android.com/reference/android/telecom/PhoneAccount.html#EXTRA_LOG_SELF_MANAGED_CALLS)
     extras key on its `PhoneAccount` to `true`.
-*   [C-SR] Are STRONGLY RECOMMENDED to handle the the audio headset's
+*   [C-SR] Are STRONGLY RECOMMENDED to handle the audio headset's
     `KEYCODE_MEDIA_PLAY_PAUSE` and `KEYCODE_HEADSETHOOK` events for the
     [`android.telecom`](https://developer.android.com/reference/android/telecom/package-summary.html)
     APIs as below:
@@ -89,7 +89,7 @@
         when a short press of the key event is detected during an incoming call.
     *   Call [`Connection.onReject()`](https://developer.android.com/reference/android/telecom/Connection.html#onReject%28%29)
         when a long press of the key event is detected during an incoming call.
-    *   Toggle the mute status of the [`CallAudioState`](https://developer.android.com/reference/android/telecom/CallAudioState.html)
+    *   Toggle the mute status of the [`CallAudioState`](https://developer.android.com/reference/android/telecom/CallAudioState.html).
 
 
 ### 7.4.2\. IEEE 802.11 (Wi-Fi)
@@ -407,8 +407,8 @@
     http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html)
     products.
 
-(Note that publicly available links are not available for the JIS, ISO, and NFC
-Forum specifications cited above.)
+Note that publicly available links are not available for the JIS, ISO, and NFC
+Forum specifications cited above.
 
 Android includes support for NFC Host Card Emulation (HCE) mode.
 
@@ -543,4 +543,4 @@
 
 *   [C-1-1] MUST enumerate the available Secure Elements readers when
 [`android.se.omapi.SEService.getReaders()`](https://developer.android.com/reference/android/se/omapi/SEService#getReaders%28%29)
-method is called.
\ No newline at end of file
+method is called.
diff --git a/9_security-model/9_10_device-integrity.md b/9_security-model/9_10_device-integrity.md
index 366b7bd..077514f 100644
--- a/9_security-model/9_10_device-integrity.md
+++ b/9_security-model/9_10_device-integrity.md
@@ -68,18 +68,6 @@
 repository, which can be integrated into the boot loader used for loading
 Android.
 
-If device implementations report the feature flag
-[`android.hardware.ram.normal`](
-https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_RAM_NORMAL)
-, they:
-
-*    [C-2-1] MUST support verified boot for device integrity.
-
-If a device implementation is already launched without supporting verified boot
-on an earlier version of Android, such a device can not add support for this
-feature with a system software update and thus are exempted from the
-requirement.
-
 Device implementations:
 
 *    [C-R] Are RECOMMENDED to support the [Android Protected Confirmation API](
@@ -95,4 +83,4 @@
 such a way that Android OS cannot block it without detection by the
 secure hardware.
 *    [C-3-3] MUST ensure that secure hardware takes full control of the touch
-screen.
+screen.
\ No newline at end of file
diff --git a/9_security-model/9_11_keys-and-credentials.md b/9_security-model/9_11_keys-and-credentials.md
index 7b314dc..ac91c15 100644
--- a/9_security-model/9_11_keys-and-credentials.md
+++ b/9_security-model/9_11_keys-and-credentials.md
@@ -60,9 +60,9 @@
 
 *    [C-SR] Are STRONGLY RECOMMENDED to set only one of the following as the primary authentication
 method:
-     *     A numerical PIN,
-     *     An alphanumerical password, or
-     *     A swipe pattern on a grid of exactly 3x3 dots.
+     *     A numerical PIN
+     *     An alphanumerical password
+     *     A swipe pattern on a grid of exactly 3x3 dots
 
 Note that the above authentication methods are referred as the recommended
 primary authentication methods in this document.
@@ -314,4 +314,4 @@
 security requirements or otherwise enable access to sensitive user data. The
 recommended way to implement IAR is to allow firmware updates only when the
 primary user password is provided via the IAuthSecret HAL. IAR will likely
-become a requirement in a future release.
\ No newline at end of file
+become a requirement in a future release.
diff --git a/9_security-model/9_1_permissions.md b/9_security-model/9_1_permissions.md
index 7e6610c..30bc5a9 100644
--- a/9_security-model/9_1_permissions.md
+++ b/9_security-model/9_1_permissions.md
@@ -33,10 +33,10 @@
      interfaces.
 *   [C-0-5] MUST NOT grant any runtime permissions to preinstalled
      apps unless:
-   *   the user's consent can be obtained before the application
-       uses it
-   *   the runtime permissions are associated with an intent pattern
-       for which the preinstalled application is set as the default handler
+     *   The user's consent can be obtained before the application
+         uses it.
+     *   The runtime permissions are associated with an intent pattern
+         for which the preinstalled application is set as the default handler.
 *   [C-0-6] MUST grant the `android.permission.RECOVER_KEYSTORE` permission
      only to system apps that register a properly secured Recovery Agent. A
      properly secured Recovery Agent is defined as an on-device software agent
diff --git a/9_security-model/9_7_security-features.md b/9_security-model/9_7_security-features.md
index 84db962..c7d743e 100644
--- a/9_security-model/9_7_security-features.md
+++ b/9_security-model/9_7_security-features.md
@@ -97,4 +97,4 @@
 *    [C-SR] Are STRONGLY RECOMMENDED to enable both CFI and IntSan for any
      additional security-sensitive userspace components as explained in
      [CFI](https://source.android.com/devices/tech/debug/cfi) and
-     [IntSan](https://source.android.com/de
\ No newline at end of file
+     [IntSan](https://source.android.com/devices/tech/debug/intsan).
