Android phones: Difference between revisions
No edit summary |
(initial page) |
||
Line 1: | Line 1: | ||
[[Category:Mobile]] | |||
Android phones are compatible with Google's Android, and usually also with CyanogenMod or Replicant. They are the most common smartphones. | Android phones are compatible with Google's Android, and usually also with CyanogenMod or Replicant. They are the most common smartphones. | ||
The purpose of this page is about installing [[Free]] software (or at least "less-non-free") to Android devices. | |||
==Compatibility issues== | |||
Most Android handset OEMs provide loadable firmware for various components of the device. This firmware typically comes in the form of binary blobs. In addition, some components use binary-only drivers statically compiled into the kernel. | |||
Replicant does not provide any such binary drivers or firmware images. Cyanogen may or may not provide such. | |||
Both Replicant and Cyanogenmod provide compatibility lists on their respective websites. | |||
http://wiki.cyanogenmod.org/w/Devices | |||
http://redmine.replicant.us/projects/replicant/wiki#Installing-Replicant | |||
Cyanogenmod provides an app-based installer program which presumably performs its own compatibility checks: http://beta.download.cyanogenmod.org/install | |||
==Boot sequence== | ==Boot sequence== | ||
Line 11: | Line 28: | ||
==Accessing and modifying an Android device== | ==Accessing and modifying an Android device== | ||
===Mounting | ===Mounting SD card=== | ||
You can remove the | You can remove the SD card from the device and mount it on a local computer with an adapter box. | ||
IIRC the Android devices I've hacked on used ext2. [[User:Koanhead|Koanhead]] ([[User talk:Koanhead|talk]]) 13:42, 1 October 2014 (PDT) | IIRC the Android devices I've hacked on used ext2. [[User:Koanhead|Koanhead]] ([[User talk:Koanhead|talk]]) 13:42, 1 October 2014 (PDT) |
Latest revision as of 18:06, 1 October 2014
Android phones are compatible with Google's Android, and usually also with CyanogenMod or Replicant. They are the most common smartphones.
The purpose of this page is about installing Free software (or at least "less-non-free") to Android devices.
Compatibility issues[edit]
Most Android handset OEMs provide loadable firmware for various components of the device. This firmware typically comes in the form of binary blobs. In addition, some components use binary-only drivers statically compiled into the kernel.
Replicant does not provide any such binary drivers or firmware images. Cyanogen may or may not provide such.
Both Replicant and Cyanogenmod provide compatibility lists on their respective websites.
http://wiki.cyanogenmod.org/w/Devices
http://redmine.replicant.us/projects/replicant/wiki#Installing-Replicant
Cyanogenmod provides an app-based installer program which presumably performs its own compatibility checks: http://beta.download.cyanogenmod.org/install
Boot sequence[edit]
Android devices have a 3-stage boot.
- The boot loader loads first, finds the Recovery partition, and loads it. Some boot loaders are locked, which means they cannot be modified. Sometimes this also means that no modifications can be done to the Recovery or the OS partitions without bricking the device.
- The Recovery partition finds the OS partition and loads the kernel from it. It's capable of loading various binaries from different partitions. It is filesystem-aware. It can be replaced with user-installed software such as ClockWorkMod.
- Other partitions contain the OS and other software. After the recovery software loads the kernel, the kernel continues the boot process. It's Linux, so from here we mostly follow the Linux boot process.
Accessing and modifying an Android device[edit]
Mounting SD card[edit]
You can remove the SD card from the device and mount it on a local computer with an adapter box.
IIRC the Android devices I've hacked on used ext2. Koanhead (talk) 13:42, 1 October 2014 (PDT)
Some devices have only a SIM card for storage. Other devices have onboard storage. Such non-removable storage can be accessed using ADB.
Android Debug Bridge[edit]
ADB is a method for connecting to an Android device over USB. It is available in Debian's and Ubuntu's repositories.
It provides two main methods for interacting with devices:
The adb command can manipulate the filesystem and can give you a shell on the running device. The fastboot command manipulates the recovery software.