diff --git a/native/android/app/CMakeLists.txt b/native/android/app/CMakeLists.txt
--- a/native/android/app/CMakeLists.txt
+++ b/native/android/app/CMakeLists.txt
@@ -61,11 +61,7 @@
 
 include(../../../shared/cmake/corrosion-cxx.cmake)
 
-add_library_rust(
-  PATH ../../native_rust_library
-  FEATURES android
-  NAMESPACE comm
-)
+add_library_rust(PATH ../../native_rust_library NAMESPACE comm)
 
 # We're updating parameters below for Cmake's find_OpenSSL() function
 set(OPENSSL_ROOT_DIR
diff --git a/native/android/app/build.gradle b/native/android/app/build.gradle
--- a/native/android/app/build.gradle
+++ b/native/android/app/build.gradle
@@ -384,7 +384,7 @@
 def cxxBridgeCommonDir = "${nativeRustLibraryDir}/target/cxxbridge/rust"
 
 task buildNativeRustLibrary(type: Exec) {
-  commandLine "cargo", "build", "--features", "android", "--manifest-path", nativeRustLibraryManifestPath
+  commandLine "cargo", "build", "--manifest-path", nativeRustLibraryManifestPath
 }
 
 task copyNativeRustLibraryFiles(dependsOn: buildNativeRustLibrary, type: Copy) {
diff --git a/native/native_rust_library/Cargo.toml b/native/native_rust_library/Cargo.toml
--- a/native/native_rust_library/Cargo.toml
+++ b/native/native_rust_library/Cargo.toml
@@ -36,6 +36,3 @@
 
 [lib]
 crate-type = ["staticlib"]
-
-[features]
-android = []
diff --git a/native/native_rust_library/src/lib.rs b/native/native_rust_library/src/lib.rs
--- a/native/native_rust_library/src/lib.rs
+++ b/native/native_rust_library/src/lib.rs
@@ -1,9 +1,7 @@
 use backup::ffi::*;
 use comm_opaque2::client::{Login, Registration};
 use comm_opaque2::grpc::opaque_error_to_grpc_status as handle_error;
-use ffi::{
-  bool_callback, send_auth_metadata_to_js, string_callback, void_callback,
-};
+use ffi::{bool_callback, string_callback, void_callback};
 use grpc_clients::identity::protos::authenticated::{
   OutboundKeyInfo, OutboundKeysForUserRequest, UpdateUserPasswordFinishRequest,
   UpdateUserPasswordStartRequest,
@@ -40,9 +38,9 @@
 pub use generated::CODE_VERSION;
 pub use generated::{BACKUP_SOCKET_ADDR, IDENTITY_SOCKET_ADDR};
 
-#[cfg(not(feature = "android"))]
+#[cfg(not(target_os = "android"))]
 pub const DEVICE_TYPE: DeviceType = DeviceType::Ios;
-#[cfg(feature = "android")]
+#[cfg(target_os = "android")]
 pub const DEVICE_TYPE: DeviceType = DeviceType::Android;
 
 lazy_static! {
@@ -913,8 +911,7 @@
 
 #[cfg(test)]
 mod tests {
-  use super::CODE_VERSION;
-  use super::{BACKUP_SOCKET_ADDR, IDENTITY_SOCKET_ADDR};
+  use super::{BACKUP_SOCKET_ADDR, CODE_VERSION, IDENTITY_SOCKET_ADDR};
 
   #[test]
   fn test_code_version_exists() {
diff --git a/shared/cmake/corrosion-cxx.cmake b/shared/cmake/corrosion-cxx.cmake
--- a/shared/cmake/corrosion-cxx.cmake
+++ b/shared/cmake/corrosion-cxx.cmake
@@ -3,7 +3,7 @@
 # <_LIB_PATH_STEM> must match the crate name:
 # "path/to/myrustcrate" -> "libmyrustcrate.a"
 function(add_library_rust)
-  set(value_keywords PATH NAMESPACE FEATURES CXX_BRIDGE_SOURCE_FILE)
+  set(value_keywords PATH NAMESPACE CXX_BRIDGE_SOURCE_FILE)
   cmake_parse_arguments(
     rust_lib
     "${OPTIONS}"
@@ -42,10 +42,7 @@
   set(namespace ${rust_lib_NAMESPACE})
   set(cxx_bridge_source_file "${rust_lib_SOURCE_FOLDER}/lib.rs")
 
-  corrosion_import_crate(
-    MANIFEST_PATH "${lib_path}/Cargo.toml"
-    FEATURES "${rust_lib_FEATURES}"
-  )
+  corrosion_import_crate(MANIFEST_PATH "${lib_path}/Cargo.toml")
 
   get_filename_component(_LIB_PATH_STEM ${lib_path} NAME)
   message(STATUS "Library stem path: ${_LIB_PATH_STEM}")