diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 3fd44e0..7f98fc0 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
 {
   "git": {
-    "sha1": "3a03c9eb5350e03a3f540dba2ee34e0984f2c2c2"
+    "sha1": "8792268dfe57e49bb4518190bf4fe66176759a44"
   }
 }
diff --git a/Android.bp b/Android.bp
index 67a44cc..6d2506f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,4 +1,5 @@
-// This file is generated by cargo2android.py --device --run --features=std --dependencies --tests.
+// This file is generated by cargo2android.py --config cargo2android.json.
+// Do not modify this file as changes will be overridden on upgrade.
 
 package {
     default_applicable_licenses: ["external_rust_crates_rand_core_license"],
@@ -41,6 +42,8 @@
     name: "librand_core",
     host_supported: true,
     crate_name: "rand_core",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.6.3",
     srcs: ["src/lib.rs"],
     edition: "2018",
     features: [
@@ -51,39 +54,31 @@
     rustlibs: [
         "libgetrandom",
     ],
-}
-
-rust_defaults {
-    name: "rand_core_defaults",
-    crate_name: "rand_core",
-    srcs: ["src/lib.rs"],
-    test_suites: ["general-tests"],
-    auto_gen_config: true,
-    edition: "2018",
-    features: [
-        "alloc",
-        "getrandom",
-        "std",
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.virt",
     ],
-    rustlibs: [
-        "libgetrandom",
-    ],
-}
-
-rust_test_host {
-    name: "rand_core_host_test_src_lib",
-    defaults: ["rand_core_defaults"],
-    test_options: {
-        unit_test: true,
-    },
 }
 
 rust_test {
-    name: "rand_core_device_test_src_lib",
-    defaults: ["rand_core_defaults"],
+    name: "rand_core_test_src_lib",
+    host_supported: true,
+    crate_name: "rand_core",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.6.3",
+    srcs: ["src/lib.rs"],
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    test_options: {
+        unit_test: true,
+    },
+    edition: "2018",
+    features: [
+        "alloc",
+        "getrandom",
+        "std",
+    ],
+    rustlibs: [
+        "libgetrandom",
+    ],
 }
-
-// dependent_library ["feature_list"]
-//   cfg-if-1.0.0
-//   getrandom-0.2.2 "std"
-//   libc-0.2.86
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 23d1fa5..82c8300 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [0.6.3] - 2021-06-15
+### Changed
+- Improved bound for `serde` impls on `BlockRng` (#1130)
+- Minor doc additions (#1118)
+
 ## [0.6.2] - 2021-02-12
 ### Fixed
 - Fixed assertions in `le::read_u32_into` and `le::read_u64_into` which could
diff --git a/Cargo.toml b/Cargo.toml
index 51b8385..06ba1e8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@
 [package]
 edition = "2018"
 name = "rand_core"
-version = "0.6.2"
+version = "0.6.3"
 authors = ["The Rand Project Developers", "The Rust Project Developers"]
 description = "Core random number generator traits and tools for implementation.\n"
 homepage = "https://rust-random.github.io/book"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index d460757..6604bc5 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
 [package]
 name = "rand_core"
-version = "0.6.2"
+version = "0.6.3"
 authors = ["The Rand Project Developers", "The Rust Project Developers"]
 license = "MIT OR Apache-2.0"
 readme = "README.md"
diff --git a/METADATA b/METADATA
index 0e7aa20..6c047cf 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
   }
   url {
     type: ARCHIVE
-    value: "https://static.crates.io/crates/rand_core/rand_core-0.6.2.crate"
+    value: "https://static.crates.io/crates/rand_core/rand_core-0.6.3.crate"
   }
-  version: "0.6.2"
+  version: "0.6.3"
   license_type: NOTICE
   last_upgrade_date {
     year: 2021
-    month: 2
-    day: 17
+    month: 6
+    day: 21
   }
 }
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 963506b..cd4547e 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -1,17 +1,105 @@
 // Generated by update_crate_tests.py for tests that depend on this crate.
 {
+  "imports": [
+    {
+      "path": "external/rust/crates/base64"
+    },
+    {
+      "path": "external/rust/crates/cast"
+    },
+    {
+      "path": "external/rust/crates/crc32fast"
+    },
+    {
+      "path": "external/rust/crates/crossbeam-deque"
+    },
+    {
+      "path": "external/rust/crates/crossbeam-epoch"
+    },
+    {
+      "path": "external/rust/crates/crossbeam-queue"
+    },
+    {
+      "path": "external/rust/crates/crossbeam-utils"
+    },
+    {
+      "path": "external/rust/crates/mio"
+    },
+    {
+      "path": "external/rust/crates/quickcheck"
+    },
+    {
+      "path": "external/rust/crates/rand_chacha"
+    },
+    {
+      "path": "external/rust/crates/rand_xorshift"
+    },
+    {
+      "path": "external/rust/crates/regex"
+    },
+    {
+      "path": "external/rust/crates/ryu"
+    },
+    {
+      "path": "external/rust/crates/tokio"
+    }
+  ],
   "presubmit": [
     {
-      "name": "rand_xorshift_device_test_tests_mod"
+      "name": "ZipFuseTest"
+    },
+    {
+      "name": "apkdmverity.test"
+    },
+    {
+      "name": "authfs_device_test_src_lib"
     },
     {
       "name": "keystore2_test"
     },
     {
-      "name": "rand_xorshift_device_test_src_lib"
+      "name": "keystore2_test_utils_test"
     },
     {
-      "name": "rand_core_device_test_src_lib"
+      "name": "legacykeystore_test"
+    },
+    {
+      "name": "microdroid_manager_test"
+    },
+    {
+      "name": "rand_core_test_src_lib"
+    },
+    {
+      "name": "virtualizationservice_device_test"
+    }
+  ],
+  "presubmit-rust": [
+    {
+      "name": "ZipFuseTest"
+    },
+    {
+      "name": "apkdmverity.test"
+    },
+    {
+      "name": "authfs_device_test_src_lib"
+    },
+    {
+      "name": "keystore2_test"
+    },
+    {
+      "name": "keystore2_test_utils_test"
+    },
+    {
+      "name": "legacykeystore_test"
+    },
+    {
+      "name": "microdroid_manager_test"
+    },
+    {
+      "name": "rand_core_test_src_lib"
+    },
+    {
+      "name": "virtualizationservice_device_test"
     }
   ]
 }
diff --git a/cargo2android.json b/cargo2android.json
new file mode 100644
index 0000000..b73c7b4
--- /dev/null
+++ b/cargo2android.json
@@ -0,0 +1,11 @@
+{
+  "apex-available": [
+    "//apex_available:platform",
+    "com.android.virt"
+  ],
+  "dependencies": true,
+  "device": true,
+  "features": "std",
+  "run": true,
+  "tests": true
+}
\ No newline at end of file
diff --git a/src/block.rs b/src/block.rs
index 005d071..a54cadf 100644
--- a/src/block.rs
+++ b/src/block.rs
@@ -114,6 +114,12 @@
 /// [`try_fill_bytes`]: RngCore::try_fill_bytes
 #[derive(Clone)]
 #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
+#[cfg_attr(
+    feature = "serde1",
+    serde(
+        bound = "for<'x> R: Serialize + Deserialize<'x> + Sized, for<'x> R::Results: Serialize + Deserialize<'x>"
+    )
+)]
 pub struct BlockRng<R: BlockRngCore + ?Sized> {
     results: R::Results,
     index: usize,
diff --git a/src/lib.rs b/src/lib.rs
index 7e847ae..bc24270 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -76,12 +76,17 @@
 /// [`next_u32`] or [`next_u64`] since the latter methods are almost always used
 /// with algorithmic generators (PRNGs), which are normally infallible.
 ///
+/// Implementers should produce bits uniformly. Pathological RNGs (e.g. always
+/// returning the same value, or never setting certain bits) can break rejection
+/// sampling used by random distributions, and also break other RNGs when
+/// seeding them via [`SeedableRng::from_rng`].
+///
 /// Algorithmic generators implementing [`SeedableRng`] should normally have
 /// *portable, reproducible* output, i.e. fix Endianness when converting values
 /// to avoid platform differences, and avoid making any changes which affect
 /// output (except by communicating that the release has breaking changes).
 ///
-/// Typically implementators will implement only one of the methods available
+/// Typically an RNG will implement only one of the methods available
 /// in this trait directly, then use the helper functions from the
 /// [`impls`] module to implement the other methods.
 ///
@@ -480,7 +485,7 @@
             // This is the binomial distribution B(64, 0.5), so chance of
             // weight < 20 is binocdf(19, 64, 0.5) = 7.8e-4, and same for
             // weight > 44.
-            assert!(weight >= 20 && weight <= 44);
+            assert!((20..=44).contains(&weight));
 
             for (i2, r2) in results.iter().enumerate() {
                 if i1 == i2 {
