Internal Storage

The internal storage refers, in a smartphone, to the memory chip, which is tightly connected with the rest of the smartphones hardware and can not be removed. That said, the internal storage is the direct opposite of the external storage.

The specification of the manufacturer about the size of the built-in internal storage of an android device can be confusing compared to the really available storage, which is displayed in the devices settings. This has, amongst other things, the following reasons:

  • The specification of the manufacturer, e.g. 16 Gigabyte, is based, like for other storage devices such as hard drives for the computer, on a calculation with 1000. That means, that the manufacturer assumes, that the conversion rate of, e.g., one Kilobyte is 1000 Bytes. Based on that assumption, 16 Gigabyte would mean, that there're 16 000 000 000 Bytes available. However, computer systems calculates with the binary unit, instead of the decimal (1000) one, 1024, which means that 1 Kilo-Byte are 1024 bytes instead of 1000. Based on the binary calculation, a 16 Gigabyte internal storage effectively provides only 14.9 Gigabyte of storage.
  • The available storage does not hold the user-generated data, only, but also all other data which is required for the system to operate normally. Therefore the storage is normally split into multiple different partitions (over 40, depending of the device). These system components include, but are not limited to, the android system itself, the bootloader, recovery and other firmware-components (AMSS / Baseband / Modem / Phone), the cache etc. These storage components can not be touched and modified by the user (directly) and can not be used to save user-generated data, like images or music. The partition, which is meant to be changed by the user by installing apps or creating images, is the /data partition. Depending on the device, the /data partition can, based on a 16 Gigabyte (14.9 Gigabyte) internal storage, vary between 10 and 12 Gigabyte of available storage.[1][2]
  • The partition, which can be changed by the user, (/data) is mainly used to hold data of installed apps and user-generated data like images and music. This, however, includes, apart from the installation files of apps, the private data generated by these apps. Private means, that, on a device, which is not changed, e.g. rooted, the Android system guarantees that only the app, which is creating the data, is able to access this data, no app, as well as the user, can access the data of another app. The user can normally not manage the data saved by apps, except if the app provides settings to control how the storage is used. The only storage area, which can be fully controlled by the user (creating, renaming, deleting and moving data) is /data/media/0 (where 0 is something like an ID of the currently logged in user, if another user is created on the device, he will get /data/media/1 etc.). This storage is mounted separatedly at /storage/emulated/ and is handled by the system like any other (external) attached SD card and is therefore sometimes refered to as internal sd card or internal storage.

The internal storage is mostly a NAND-(Flash-)Chip, some time back it would be refered to as a ROM later as an EEPROM.

Using the external SD card as internal storage

Since Android 6.0   "Marshmallow" it's possible to use an external SD card in two different modes, either in a portable mode (which was the only mode before) or in the adoptable storage mode.

In the portable mode, the SD card will be mounted at it's own mount point under /storage/ using an ID of the SD card, e.g. /storage/CE5C-0252/. With that, the user can save and read data from the external storage, apps, on the other hand, will normally use the internal storage to save data and can not read from the external sd card, except when the user explicitly allows access to it. This mode can be compared to the use of external storage devices at computers, where the media is also recognized as it's own drive.

In contrast to that, the adoptable storage mode tries to solve exactly that problem. Instead of providing two different storage mount points, where the user always has to ask himself, if the data is now saved on the internal or external storage, in this mode, the external storage device is used as part of the internal storage. As a preparation for that, the SD Card has to be formetted to be used as internal storage. Data, saved on the sd card, can, after formatting the sd card to be used as internal storage, only be read from the Android device and not from any other device anymore as they'll find a non-functioning file system. Furthermore, Android expect the SD card to be present at any time and will not functioning correct anymore, if the sd card is removed. However, the advantage for the user is, that the external sd card will be fully used as internal storage. The device will not have two different storage areas anymore, but onyl one, the internal storage. Effectively, in this mode, the internal storage will be increased by the size of the external storage.[3][4] The option to use the sd card as internal storage can be found in the settings -> "Storage" -> sdcard1 (or the name of the storage device listed unter "mobile storage") -> (the native Android file manager will be opened) menu -> storage settings -> Format as internal storage.

References