Android Hardware Reverse Engineering

From NAND to Data: A Step-by-Step eMMC Physical Acquisition Tutorial for Android

Google AdSense Native Placement - Horizontal Top-Post banner

Introduction to eMMC Physical Acquisition

In the realm of digital forensics and reverse engineering, accessing raw memory data from mobile devices is paramount. Embedded MultiMediaCard (eMMC) storage is the primary internal storage solution for most Android smartphones and tablets. Unlike traditional hard drives or SSDs that can be easily removed, eMMC chips are typically soldered directly onto the device’s Printed Circuit Board (PCB). This presents a unique challenge for investigators aiming for a ‘physical acquisition’ – a byte-for-byte copy of the entire memory.

Physical acquisition of eMMC provides the deepest level of data recovery, allowing access to deleted files, remnants of applications, and system artifacts that might be inaccessible through logical or file-system level extractions. This tutorial focuses on the In-System Programming (ISP) method, which allows data extraction without desoldering the eMMC chip, minimizing the risk of damage to the evidence.

Essential Prerequisites and Tools

Hardware Requirements

  • eMMC Flasher Box: Tools like Easy JTAG Plus Box, UFI Box, Medusa Pro II Box, or Z3X EasyJTAG Plus Box are essential. These provide the interface and voltage control necessary to communicate with the eMMC chip.
  • Fine-Tip Soldering Iron & Solder: For making precise connections to test points or eMMC pads.
  • Thin Wires: Fine gauge (e.g., 30 AWG Kynar wire) for connecting the flasher box to the device’s eMMC test points.
  • Flux: No-clean flux paste aids in clean solder joints.
  • Multimeter: For verifying connections and voltage levels.
  • Magnification Device: A microscope or a strong magnifying lamp is crucial for working with tiny components.
  • Heat Gun/Hot Air Station (Optional, for Chip-Off): If ISP fails, chip-off might be an alternative, but it’s more invasive.
  • Anti-static Mat and Wrist Strap: To prevent electrostatic discharge (ESD) damage.

Software Requirements

  • Flasher Box Software: Proprietary software provided by the flasher box manufacturer (e.g., EasyJTAG Plus software, UFI Software).
  • Forensic Analysis Tools: Autopsy, FTK Imager, X-Ways Forensics, or custom Python scripts for parsing raw disk images.
  • Disk Image Mounting Tools: OS-specific tools (e.g., mount on Linux, ImDisk on Windows) for examining partitions.

Skills Required

  • Micro-Soldering: Proficiency in soldering very fine wires to small contact points.
  • Basic Electronics Knowledge: Understanding voltage, ground, and signal lines.
  • Android Architecture: Familiarity with Android’s partition layout (boot, system, userdata, cache, etc.).
  • Patience and Precision: Essential for successful physical acquisition.

Locating and Preparing the eMMC Chip

Device Disassembly

The first step is to carefully disassemble the Android device. This typically involves:

  1. Removing the SIM/SD card tray.
  2. Heating the screen edges gently to soften adhesive (if applicable) and using suction cups/prying tools to lift the screen assembly.
  3. Unscrewing internal components and disconnecting flex cables (battery, display, camera).
  4. Carefully removing the main PCB from the device chassis. Document each step with photos for reassembly, if needed.

Identifying the eMMC Module

Once the PCB is accessible, locate the eMMC chip. It’s usually a square-shaped BGA (Ball Grid Array) package, often shielded, and manufactured by companies like Samsung, SanDisk, Hynix, or Micron. The chip will have markings indicating its manufacturer and capacity (e.g., KMQLM000WM-B413 for a Samsung 32GB eMMC).

Pinout Identification (ISP Method Focus)

For ISP, we need to connect to specific eMMC pins: CMD, CLK, DAT0, VCC, VCCQ, and GND. These are often exposed as ‘test points’ or vias near the eMMC chip on the PCB, designed for factory testing or flashing. If direct test points are not available, you might need to find datasheets or schematics for the specific device model to identify alternative access points, or in extreme cases, solder directly to the eMMC chip’s BGA pads.

  • CMD (Command): Carries commands from the host (flasher box) to the eMMC.
  • CLK (Clock): Synchronizes data transfer.
  • DAT0 (Data Line 0): The primary data line. Some eMMCs support 4 or 8 data lines, but DAT0 is sufficient for basic communication.
  • VCC (Core Voltage): Powers the eMMC’s internal logic (typically 2.8V-3.3V).
  • VCCQ (I/O Voltage): Powers the eMMC’s I/O interface (typically 1.8V or 2.8V).
  • GND (Ground): Reference ground for all signals.

Connecting for In-System Programming (ISP)

Soldering Techniques for ISP Wires

Precision is key. Use a fine-tip soldering iron, applying a tiny amount of flux to the test point before tinning it with a small amount of solder. Then, carefully solder the pre-tinned fine gauge wire to the test point. Ensure each solder joint is clean, secure, and free from bridges to adjacent points. Use a microscope to verify connections.

Typical ISP Connections

Connect your flasher box’s corresponding pins to the identified eMMC points on the Android device’s PCB. Always double-check your connections with a multimeter to ensure continuity and prevent shorts.

Flasher Box  Android Device eMMC Pads/Test PointsCMD (Command)                         CMD (Command Line)CLK (Clock)                           CLK (Clock Line)DAT0 (Data Line 0)                    DAT0 (Data Line 0)VCC (Core Voltage)                    VCC (eMMC Core Power)VCCQ (I/O Voltage)                    VCCQ (eMMC I/O Power)GND (Ground)                          GND (Ground)

It is crucial to correctly identify and supply the correct VCC and VCCQ voltages for the eMMC chip. Incorrect voltages can damage the chip or prevent communication. Most flasher boxes allow you to set these voltages (e.g., 1.8V, 2.8V, 3.3V).

Performing the eMMC Acquisition

Software Setup and Configuration

Launch the software for your eMMC flasher box (e.g., EasyJTAG Plus Software). Within the software, you’ll typically configure settings such as:

  • eMMC Interface: Select ‘eMMC’ or ‘ISP’.
  • Voltage Settings: Set VCC and VCCQ according to your eMMC specifications (e.g., 2.8V VCC, 1.8V VCCQ).
  • Clock Speed: Start with a lower clock speed (e.g., 4-8MHz) for stability, then increase if the connection is reliable.

Device Connection and Identification

Power on your flasher box. In the software, initiate the ‘Connect’ or ‘Identify eMMC’ process. If successful, the software will detect the eMMC, display its CID (Card ID), manufacturer, model, and capacity. It should also report the health status of the eMMC.

Detecting eMMC via ISP...eMMC Found: SanDisk SEM16G (FW: 0001)       CID: 1501004D54324D3030       Boot Partition Size: 4 MB       RPMB Partition Size: 4 MB       User Area Size: 14.8 GB       eMMC Health: 0% Life Used (Good)       Voltage Detected: VCC: 2.8V, VCCQ: 1.8V

If the detection fails, re-check your soldering, wire connections, and voltage settings. Loose connections are a common culprit.

Reading the eMMC Dump

Once the eMMC is successfully identified, navigate to the ‘Read’ or ‘Dump’ section of your software. You’ll typically have options to dump specific partitions (boot1, boot2, RPMB) or the entire user area. For a full physical acquisition, select the option to dump the entire eMMC, including boot partitions and the user data area. Specify a destination path on your analysis workstation for the raw image file (e.g., C:orensics arget_device_emmc.bin).

1.  Go to the

Android Mobile Specs & Compare Directory

Are you researching mobile hardware properties, processor SoCs, GPU chipsets, or RAM configurations? Access our complete specs catalog to compare up to 5 devices side-by-side!

Compare Devices Specs →
Google AdSense Inline Placement - Content Footer banner