diff --git a/apkverity/src/apksigv4.rs b/apkverity/src/apksigv4.rs
index 7d8f318..fef21a5 100644
--- a/apkverity/src/apksigv4.rs
+++ b/apkverity/src/apksigv4.rs
@@ -153,13 +153,10 @@
 
 #[cfg(test)]
 mod tests {
+    use crate::util::hexstring_from;
     use crate::*;
     use std::io::Cursor;
 
-    fn hexstring_from(s: &[u8]) -> String {
-        s.iter().map(|byte| format!("{:02x}", byte)).reduce(|i, j| i + &j).unwrap_or_default()
-    }
-
     #[test]
     fn parse_idsig_file() {
         let idsig = Cursor::new(include_bytes!("../testdata/test.apk.idsig"));
diff --git a/apkverity/src/dm.rs b/apkverity/src/dm.rs
index 8828b0a..7ac72c8 100644
--- a/apkverity/src/dm.rs
+++ b/apkverity/src/dm.rs
@@ -126,11 +126,21 @@
 /// handle to "/dev/mapper/control".
 pub struct DeviceMapper(File);
 
+#[cfg(not(target_os = "android"))]
+const MAPPER_CONTROL: &str = "/dev/mapper/control";
+#[cfg(not(target_os = "android"))]
+const MAPPER_DEV_ROOT: &str = "/dev/mapper";
+
+#[cfg(target_os = "android")]
+const MAPPER_CONTROL: &str = "/dev/device-mapper";
+#[cfg(target_os = "android")]
+const MAPPER_DEV_ROOT: &str = "/dev/block/mapper";
+
 impl DeviceMapper {
     /// Constructs a new `DeviceMapper` entrypoint. This is essentially the same as opening
     /// "/dev/mapper/control".
     pub fn new() -> Result<DeviceMapper> {
-        let f = OpenOptions::new().read(true).write(true).open("/dev/mapper/control")?;
+        let f = OpenOptions::new().read(true).write(true).open(MAPPER_CONTROL)?;
         Ok(DeviceMapper(f))
     }
 
@@ -162,7 +172,7 @@
         dm_dev_suspend(&self, &mut data)?;
 
         // Step 4: wait unti the device is created and return the device path
-        let path = Path::new("/dev/mapper").join(&name);
+        let path = Path::new(MAPPER_DEV_ROOT).join(&name);
         wait_for_path(&path)?;
         Ok(path)
     }
diff --git a/apkverity/src/loopdevice.rs b/apkverity/src/loopdevice.rs
index 519e3bd..68516d7 100644
--- a/apkverity/src/loopdevice.rs
+++ b/apkverity/src/loopdevice.rs
@@ -85,6 +85,12 @@
     }
 }
 
+#[cfg(not(target_os = "android"))]
+const LOOP_DEV_PREFIX: &str = "/dev/loop";
+
+#[cfg(target_os = "android")]
+const LOOP_DEV_PREFIX: &str = "/dev/block/loop";
+
 fn try_attach<P: AsRef<Path>>(path: P, offset: u64, size_limit: u64) -> Result<PathBuf> {
     // Get a free loop device
     wait_for_path(LOOP_CONTROL)?;
@@ -112,12 +118,12 @@
     // happens only during test. DirectIO-on-loop-over-loop makes the outer loop device
     // unaccessible.
     #[cfg(test)]
-    if path.as_ref().to_str().unwrap().starts_with("/dev/loop") {
+    if path.as_ref().to_str().unwrap().starts_with(LOOP_DEV_PREFIX) {
         config.info.lo_flags.remove(Flag::LO_FLAGS_DIRECT_IO);
     }
 
     // Configure the loop device to attach the backing file
-    let device_path = format!("/dev/loop{}", num);
+    let device_path = format!("{}{}", LOOP_DEV_PREFIX, num);
     wait_for_path(&device_path)?;
     let device_file = OpenOptions::new()
         .read(true)
