This bachelor thesis describes the implementation of an Android framework to access mass storage devices over the USB interface of a smartphone. First the basics of USB (i.e. interfaces, endpoints and USB On the go) and accessing USB devices via the official Android API are discussed. Next the USB mass storage class is explained, which was designed by the USB-IF to access mobile mass storage like USB pen drives or external HDDs.
For communication with mass storage devices, most important are the bulk-only transfer and the SCSI transparent command set. Furthermore file systems, for accessing directories and files, are described. This thesis focuses on the FAT32 file system from Microsoft, because it is the most commonly used file system on such devices.
After the theory part it is time to look at the implementation of the framework. In this section, the first concern is the purpose in general. Then the architecture of the framework and the actual implementation are presented. Important parts are discussed in detail. The thesis finishes with an overview of the test results on various Android devices, a short conclusion and an outlook to future developments. Moreover the current status of the developed framework is visualized.
Inhaltsverzeichnis (Table of Contents)
- Acknowledgements
- Abstract
- Outline of the Thesis
- Acronyms
- I. Introduction and Theory
- 1. Introduction
- 2. Basics about USB
- 2.1. Client device hierarchy
- 2.2. Endpoints
- 2.3. USB On the go
- 3. USB on Android
- 3.1. USB Host API
- 3.2. Enumerating devices
- 3.3. Requesting permission for communication
- 3.4. Communication
- 3.5. Tearing down the communication
- 3.6. Listening to attach and detach events
- 3.6.1. Via BroadcastReceiver
- 3.6.2. Via AndroidManifest.xml
- 4. USB Mass storage class
- 4.1. Bulk-only Transport
- 4.2. SCSI transparent command set
- 4.3. SCSI commands
- 4.3.1. INQUIRY
- 4.3.2. TEST UNIT READY
- 4.3.3. READ CAPACITY
- 4.3.4. READ(10) and WRITE(10)
- 4.3.5. REQUEST SENSE
- 5. File systems
- 5.1. General
- 5.1.1. Examples
- 5.1.2. Partition table
- 5.2. The FAT32 file system
- 5.2.1. General layout
- 5.2.2. Boot Sector and FS Information Structure
- 5.2.3. File Allocation Table
- 5.2.4. Directories and files
- 5.2.5. Subdirectories
- 5.2.6. Long File Name entries
- II. Implementation
- 6. Purpose and Overview
- 6.1. Using the Framework
- 7. Inside the packages
- 7.1. The driver package
- 7.2. The partition package
- 7.3. The file system package
- III. Quality Management
- 8. Testing
- 8.1. Overview
- 8.1.1. Testing criteria
- 8.2. Results
- 8.2.1. Native support
- 8.2.2. Performance test
- IV. Results
- 9. Summary
- 9.1. Current status
- 9.2. Conclusion
- 10. Outlook
Zielsetzung und Themenschwerpunkte (Objectives and Key Themes)
This bachelor thesis examines the implementation of an Android framework for accessing mass storage devices via the USB interface of a smartphone. The primary objective is to create a framework that enables access to these devices without requiring root privileges on the Android device. The thesis explores the underlying principles of USB communication, including the USB Host API, the USB mass storage class, and the FAT32 file system.
- USB communication protocols and standards
- Android framework development and USB Host API
- USB mass storage class and SCSI commands
- FAT32 file system structure and implementation
- Performance and security considerations for USB storage access
Zusammenfassung der Kapitel (Chapter Summaries)
The thesis begins with an introduction to the subject and a discussion of the fundamental concepts of USB communication, including device hierarchy, endpoints, and USB On the Go. Chapter 3 focuses on the USB Host API in Android, outlining the steps involved in enumerating devices, requesting communication permissions, and managing data transfers. Chapter 4 delves into the USB mass storage class, explaining the bulk-only transport mechanism and the SCSI transparent command set used to interact with mass storage devices. Chapter 5 presents an overview of file systems, with a specific emphasis on the FAT32 file system, its structure, and its role in accessing files and directories on USB storage devices.
Chapter 6 provides a detailed overview of the implemented framework, including its purpose, architecture, and key components. Chapter 7 examines the individual packages within the framework, focusing on the driver, partition, and file system packages. Chapter 8 discusses the testing process, outlining the criteria used to evaluate the framework's performance and functionality. Finally, Chapter 9 presents a summary of the framework's current status, draws conclusions about its effectiveness, and outlines potential areas for future development.
Schlüsselwörter (Keywords)
This bachelor thesis focuses on the development of an Android framework for USB storage access, utilizing the USB Host API, the USB mass storage class, and the FAT32 file system. The key themes include: Android framework development, USB communication protocols, mass storage access, file system management, and security considerations. The thesis investigates methods to provide access to USB mass storage devices without requiring root privileges on the Android device.
- Quote paper
- Magnus Jahnen (Author), 2014, Implementation of an Android Framework for USB storage access without root rights, Munich, GRIN Verlag, https://www.grin.com/document/335634