home - Smart TV
How to make an SD card the main memory on Android. How to replace internal Android memory with a memory card What to do if there is no vold fstab folder

The problem of lack of memory is one of the fundamental ones for both PCs and mobile devices. With a small amount of free memory, the system usually begins to slow down, freeze, and is unstable and unreliable. This is especially true for Android devices, many of which initially have a rather small amount of main memory (the so-called “Internal Storage”). In such a situation, some users may have the idea of ​​trying to use an external SD card as the main memory on their Android device. In this material, I will tell you how to make an SD card the main memory on Android gadgets, and what methods will help us with this.

Let's look at how to make an SD card the main memory on Android

To accomplish this task, you will need a high-speed SD card (preferably class 10 or faster). Cards of 6, and especially 4 and 2 classes are not suitable for such purposes; your system, due to their use, will significantly slow down its operation, which is unlikely to please any of the users.

It is also important to understand that the lifespan of such an SD card due to the active load on it will be significantly less than if the load on the card was in standard mode.


Method number 1. Changing the contents of the Vold.fstab file

The first of the described methods involves changing the contents of the system settings file “Vold.fstab”. After making these changes, the Android OS will consider your SD card as the internal memory of the device, but keep in mind that a number of previously installed applications may stop working.

It is important to know that this method only works on rooted devices running Android OS below (!) than version 4.4.2. In Android OS versions 4.4.2 and higher, most likely you simply will not find the specified file.

Also keep in mind that an error in the implementation of this method (in particular, adding extra characters to the required lines) can have a tragic effect on the performance of your device. Therefore, carefully weigh the possible risks, and if, after all, you have made a decision, then proceed to implement it.

So, to implement this method, do the following:

For example, these could be lines like this:

  • dev_mount sdcard/storage/sdcard0 emmc@xxxxxx
  • dev_mount sdcard2/storage/sdcard1 auto/xxxxxx

To make the necessary changes, we need to swap the path in the specified lines, that is, simply put, instead of 0, put a 1 in the first line, and in the second, instead of 1, put a 0.

After the changes, these lines will look like:

  • dev_mount sdcard/storage/sdcard1 emmc@xxxxxx
  • dev_mount sdcard2/storage/sdcard0 auto/xxxxx

Save the changes you have made, and then reboot the gadget.

Another option on how to make a memory card the main one on Android:


Method number 2. We use the settings of Android OS 6.0 and higher

In addition to the first method, in which I looked at how to switch the phone's memory to a memory card, there is another method that works only on the settings of Android OS 6.0 (Marshmallow) or higher, and allows you to use the SD card as the main one for saving files and working with them . To implement it, I recommend making a copy of the data from your SD card (if any on it), since this card will be formatted by the system.

As promised in the comments to the post “Deployment Manager or where else can you deploy files,” I dug a little more into the file system (or rather, into the Directory Hierarchy). The basis for this article was a question from Dmitry Kuzmenko, I really hope that I was able to answer it to the required extent. Let's talk a little about the Android OS, manufacturers of devices running this operating system, and I will also show several options for obtaining a list of available storage devices.


Continuation for Android 4.4.* here: Android 4.4 and recording to an external memory card...

Upd (17.02.14). Based on the comments, changes were made to the appendices.
Upd2 (02/17/14). A false positive of the 3rd option was detected, the feature was fixed. Improved the search a bit.

Upd (30.03.14). The third method works on Android versions below 4.3. I won’t write code for versions higher than 4.3, because I don’t have devices with this version of Android to analyze the new structure.
Upd (21.04.14). Tested the code on Delphi XE6

Upd3 (07/15/14). Source code update, incorrect operation detected (AV error) on some devices

I will try to present the whole point briefly so that it does not turn out to be 10 pages of text.

Let's start with the basics.

The Android operating system is based on the Linux kernel. In Unix-like operating systems, there is only one root directory, and all other files and directories are nested under it. On most UNIX-like systems, removable disks, flash drives, and other external storage devices are mounted in the /mnt, /mount, or /media directory (in our case, the /mnt folder). UNIX-like operating systems also allow disks to be mounted automatically when the operating system boots.

We determine the list of available storage devices.

I must say right away that I did not find a method in the Android API that allows me to define such a list. Therefore, the first thing that comes to mind is checking possible paths on your own, and here the first “BUT” appears. Everything would be simple if it weren’t for device manufacturers who just want to change something in Android, and in this case they tried. I experimented and found out that the number of possible path options is quite large and it is almost impossible to find out all of them, unless you start collecting a common database of such options from all owners of Android devices.

Participants in my experiments (my only one is SGS2:):

  • Samsung Galaxy S Plus – Android 2.3.6
  • Samsung Galaxy S2 – Android 4.1.2
  • HTC Sensation Z710e – Android 4.0.3
  • HTC One X – Android 4.2.2
  • HTC Rhyme – Android 4.0.3

Now let's look at what paths are available on these devices, what is important to us is the path to the internal card (if any), external card (if any) and usb devices (if any).

As you can see, the paths are different everywhere.

Option 1.

We compose an array of possible values ​​and in a loop we check each one for availability using the usual check for the existence of a folder ( TDirectory.Exists), as well as the emptiness of the folder ( TDirectory.IsEmpty).

I compiled a general list for these devices and wrote a small application for testing.

My list (based on 5 popular devices):

  • /mnt/sdcard
  • /mnt/sdcard/external_sd
  • /mnt/extSdCard
  • /mnt/usb
  • /mnt/UsbDriveA
  • /mnt/UsbDriveB
  • /mnt/UsbDriveC
  • /mnt/UsbDriveD
  • /mnt/UsbDriveE
  • /mnt/UsbDriveF

Having searched for similar paths on the Internet, I found 3 more possible points:

  • /mnt/external_sd
  • /mnt/usb_storage
  • /mnt/external

Addition fromDmitry Kuzmenko:

Sony Xperia V - 4.1.2

  • /mnt/sdcard
  • /mnt/ext_card
  • /mnt/usbdisk

A bit more:
Sony Xperia Go - 4.1.2

  • /mnt/sdcard
  • /mnt/ext_card
  • /mnt/usbdisk
Samsung Galaxy S4 - 4.2.2
  • /mnt/sdcard
  • /mnt/extSdCard
  • /mnt/UsbDriveA
  • /mnt/UsbDriveB
  • /mnt/UsbDriveC
  • /mnt/UsbDriveD
  • /mnt/UsbDriveE
  • /mnt/UsbDriveF
You will find the finished array in the code below. You can leave in the comments information about the paths on your devices in the following form:

Device name – Android version

Direct path to internal memory

Direct path to external memory card

Direct paths to USB devices

All paths start from the /mnt/ folder.


Or copy and send me the file "/etc/vold.fstab" to infocean @ gmail.com or in the comments (don't forget to indicate the device model and Android version). Please also indicate all the folders that are in the /mnt directory /, it is very important.

Application:

UsesSystem.IOUtils; const pathmnt: Array of String = ("/mnt/sdcard", "/mnt/sdcard/external_sd", "/mnt/extSdCard", "/mnt/usb", "/mnt/UsbDriveA", "/mnt/UsbDriveB ", "/mnt/UsbDriveC", "/mnt/UsbDriveD", "/mnt/UsbDriveE", "/mnt/UsbDriveF", "/mnt/external_sd", "/mnt/usb_storage", "/mnt/external" , "/mnt/ext_card", "/mnt/usbdisk"); procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin Memo1.Lines.Clear;

Memo2.Lines.Clear;

for i:= 0 to Length(pathmnt) - 1 do begin if TDirectory.Exists(pathmnt[i]) AND not TDirectory.IsEmpty(pathmnt[i]) then begin Memo1.Lines.Add(pathmnt[i]);

Memo2.Lines.Add("True"); end else begin Memo1.Lines.Add(pathmnt[i]); Memo2.Lines.Add("False");

end; end; end;", lies here "/proc/". Contains information about all mount points used in the device. It is important to understand that if the memory card is not mentioned in this file, then it is not connected. This means that the file is constantly updated.

Step by step:

  1. Reading the file " end else begin Memo1.Lines.Add(pathmnt[i]);»
  2. We check each device for accessibility by reading the file “ end; end;» and search for the required string in it.

There will be no code in this version yet, because... For some reason unknown to me, I can't read the "mounts" file. In this regard, I propose a third option.


Option #3.

We combine the first and second options. We will take the list from the file " end else begin Memo1.Lines.Add(pathmnt[i]);", and check it yourself, without opening the file " end; end;" Why bother with two files every time when you can work with only one.

Step by step:

  1. Reading the file " end else begin Memo1.Lines.Add(pathmnt[i]);»
  2. Making a list of storage devices (half of the work done)
  3. Now we go through the list in a loop and check each path using “ TDirectory.Exists" And " TDirectory.IsEmpty»
  4. We are compiling a list of actually available storage devices

Update-17.02.14: Thanks to Dmitry Kuzmenko and common efforts, we found out that the file “/etc/vold.fstab” in Sony Xperia V is slightly different from the others, so changes were made to the source code of the application. Everything checked, it works! :) The sources have been updated everywhere.

Update2-17.02.14: In the file "/etc/vold.fstab" there are sometimes (on some devices) commented lines that are very similar to those found in my code, and therefore a false positive occurred. I fixed this feature in the new version of the code.
I also fixed the search for the required lines, now it is more universal!

In general, the code should now work fine on different devices. Try it, write in the comments, attach your file “/etc/vold.fstab” (don’t forget to indicate your device model and Android version).

Update3 - 07/15/14:
Blog reader Sergey Yakimenko discovered that the third option (file reading) did not work correctly on devices Huawei Ascend P6 And Reellex TAB-07, as reported in the comments.

After personal correspondence and some analysis, I found out what problems were interfering with the work.

Issues found and fixed:

  1. Spaces at the beginning of each found line. Fixed with "Trim"
  2. The found lines use tabs instead of spaces. Fixed by replacing tab characters with spaces.
The code has been updated. Thank you very much to Sergei.

Application:

Uses System.StrUtils, System.IOUtils; procedure TForm1.Button1Click(Sender: TObject); var OpenFileVold: TStringList;<>i: Integer;<>pathtemp: TStringDynArray; begin OpenFileVold:= TStringList.Create;

try // Read the file OpenFileVold.LoadFromFile("/etc/vold.fstab"); for i:= 0 to OpenFileVold.Count - 1 do begin if (Pos("dev_mount", OpenFileVold.Strings[i]) > 0) OR (Pos("fuse_mount", OpenFileVold.Strings[i]) > 0) then begin // Update(07/15/14) // 1 - Remove spaces at the beginning and end of the line (get rid of AV) // 2 - Replace tab characters with spaces pathtemp:= SplitString(StringReplace(Trim(OpenFileVold.Strings[i] ), #9, " ", ), " "); // Check the first character of the line to see if it matches the character "#" or "##", // so that there are no false positives if (pathtemp "#") AND (pathtemp

"##") then begin if TDirectory.Exists(pathtemp) AND not TDirectory.IsEmpty(pathtemp) then begin Memo1.Lines.Add(pathtemp);

end;
end;
end;

end; 5274 finally OpenFileVold.Free; // FreeAndNil(SourceFile); This device in appearance and technical characteristics is not much different from the previous hero of the day, Enot E102, so you will not find a detailed description here. As always with Prestigio, the frankly Chinese origin of the device is masterfully enhanced by well-thought-out firmware - there is nothing superfluous in it and everything you need for the first time works out of the box. That is, ICQKontakte clients, readers and video players exist and do not require thoughtful configuration after the first turn on. Tablets based on the 2926 chipset will become widespread in the coming months, replacing outdated components such as the Allwinner A13 in the niche of budget Android devices. The limitations of the cheap device remain the same as the others - 4 GB of memory, barbarically divided into two halves, and a memory card that works as a media content warehouse, not used for application cache. When will firmware developers remember that memory cards are now very, very cheap and early aspirations to ensure the tablet will work without a card in these conditions look, at the very least, anachronistic. Why not equip devices with at least two-gigabit cards, leaving them in the firmware like sdcard, and not a crooked external_sd, without forcing users to look for ways to correct the injustice by unconventional means?

However, the topic of loyalty to users and turning your face to them rather than your seat is vast and does not have a place here. We are starting execution work on the reader, making it more convenient in everyday life. Let's start by getting Root. To make this case extremely successful, download the archive ( https://www.dropbox.com/s/rhsvca9epfv53ld/ROOT_icood70pro.zip), unpack it to drive C, without Russian characters in the path (this way we avoid mistakes). In the tablet, check the box “unknown sources”, “USB debugging” and connect it to the computer. In the unpacked folder we find Root.bat and run it. We are waiting for the tablet to reboot with the appearance of supersu among the installed variety. We need to launch this application, agree to update the binaries and reboot the tablet again. That's it, you have administrator rights - now you can edit system files, remove unnecessary things, add anything. If your device does not want to get Root, there is method 2. Uncheck USB debugging in the device settings. Install PdaNet ( http://pdanet.co/a/), choosing to install other drivers. Install UnlockRoot ( http://yadi.sk/d/awamSlwP2mpgQ). Return the check mark to its place. Launch UnlockRoot and click Root. After it finishes working, restart the tablet and update SuperSu.

If you have a memory card and you are not satisfied with the position of the firmware developers, you need to edit vold.fstab. Install Root Explorer version 2.21 or higher (the previous ones work crookedly with 4.1.1). Quickly agree to the request to allow him access anywhere. Now download the modified vold.fstab ( http://yadi.sk/d/P-SKlRTG4t2Vu), replacing the card and partition of the internal memory, transfer it to the memory card. Rename it by removing the 1 from the name. Using Root Explorer, find this file, long tap on it (press if anyone doesn’t like Anglicisms) and click copy. Now find the etc directory. Above the directory you will find a mount RW button. Click on it. At the bottom of the program window, click “paste”. The tablet will ask whether to replace the file with your custom one. Agree. Long press on the replaced file to bring up a submenu where you select “permissions”. You see in front of you a square with three windows in a row. Check the boxes exactly as in the screenshot and apply the selection. All that remains is to exit the program, restart the tablet and leave it to boot. Depending on the type and quality of the memory card (class 10 from a normal one is best, not a name from the manufacturer), the tablet will boot from 5 minutes to half an hour. If everything went well, then you will find an updated “memory” section, where the card is finally seen like an Sdcard and applications for transferring cache and programs to microSD see it.

Installing CWM recovery is associated with a high risk of killing the bootloader - try not to do it unless you have a strong desire to experiment or need to install custom firmware based on 4.2.2. At the time of writing this text was not found, so at the moment installing CWM on the Prestigio MultiReader 5274 has only theoretical benefit. So, download CWM(). Its installation can be done in several ways. The most correct and almost safe way is to rename the archive to update.zip and respond positively to the tablet’s request to reboot. Now you can enter recovery simply and elegantly by holding down the volume up and power button. When the green robot appears, release the buttons, hold down the sound + and press the power button once. The CWM recovery menu, known to almost everyone, will appear, where everything is available - from mounting partitions to backups and flashing Zen. It is convenient to reboot into recovery and through the Goo Manager application from the market. Other ways to implement CWM at the moment too often ruin the device and I won’t talk about them. Suffice it to say that the installation takes place via adb shell, which will help you look for approximate instructions on how this is done and blame someone else for a non-working device.

And the last thing for today. If this happened and as a result of some unforeseen circumstances (for example, installing CWM recovery) or the incorrect location of the stars in the sky, the tablet refused to work, then we will try to return it to the world of the living by flashing it. Due to the complete identity of the flashing instructions with the previous patient, Enot E102, read about it. I see no reason to repeat it, since the only difference is in the file that you will implement. The firmware image is on the official website ( http://www.prestigio.com/catalogue/MultiReaders/MultiReader_5274/PER5274B#/product-support/firmware ). There is also the program itself.

Remember, by carrying out all sorts of flashing experiments, you can completely lose your warranty and be left without a working device on Android. Therefore, attentiveness, attentiveness and the same word again. On this note full of optimism, let me take my leave. Soon we will meet again, discussing, scolding and re-programming something else.

How to replace Android internal memory with a memory card. The small amount of internal memory on cheap Android smartphones and tablets, the main problem is the inability to install applications. In such cases, replacing the internal Android memory with a memory card can help you.

For those who don’t understand from the title what this article is about: let’s assume you have 400 MB of internal Android memory, which is very little (about 12-20 installed applications), then you can think about replacing the main memory with a memory card.

Risks and what you need to know

Replacing Android internal memory with a memory card occurs only if you have root rights installed (no root, the method does not work)! For those who don’t know what Root is and how to get it:

In addition, you must know the Android file system structure.

Replacing memory is only possible if your Android device has a system file vold.fstab in the /system/etc path, if you don’t have one, then unfortunately this method is not for you! Use alternative methods (link 1, link 2, link 3). Also, if Android does not have its own memory, then this article is also not for you. The article is mostly for devices with a Mediatek (MTK) or Rockchip processor.

Since the system file will be edited, there is a risk that you may make a mistake and the device will not boot, in order to fix this you need to reflash the device, and also the memory card may fail and you will encounter the same problem, firmware will also help.

By replacing the internal memory with a memory card, the latter's lifespan is greatly reduced (due to frequent reading/writing), and the speed of Android may also drop if the class of the MicroSD card is very low.

Instructions for replacing Android internal memory with a memory card

1. Install the file manager Root Browser

2. Launch the Root Broswser file manager and follow the path:

/system/etc/

3. Looking for a file end else begin Memo1.Lines.Add(pathmnt[i]); and open it (click on the file and select Edit)

4. On file end else begin Memo1.Lines.Add(pathmnt[i]); we see something like this:

## Vold 2.0 fstab
##
# Regular device mount
##
##Format: dev_mount
## label - Label for the volume
## mount_point - Where the volume will be mounted
## part - Partition # (1 based), or ‘auto’ for first usable partition.
## - List of sysfs paths to source devices
####################################### # Mounts the first usable partition of the specified device
#/devices/platform/awsmc.3/mmc_host for sdio
dev_mount sdcard /mnt/sdcard auto
dev_mount extsd /mnt/extsd auto
/devices/platform/sunxi-mmc.0/mmc_host
dev_mount usbhost1 /mnt/usbhost1 auto /devices/platform/sw-ehci.1 /devices/platform/sw_hcd_host0 /devices/platform/sw-ehci.2 /devices/platform/sw- ohci.1 /devices/platform/sw- ohci.2

In this example, note that two lines are highlighted; if you carefully read the structure of the Android file system before these, then you already know that /sdcard or /sdcard0 this is internal memory, and /extsd or /external_sdcard, /sdcrad1, /sdcrad2,/external_sd This is external memory, that is, MicroSD.

All you need to do is swap these two lines:

dev_mount extsd /mnt/extsd auto /devices/virtual/block/XXXXXX
dev_mount sdcard /mnt/sdcard auto /devices/platform/XXXXXX/XXXXXXXX

Another example, on a different device:

dev_mount sdcard /storage/sdcard0
dev_mount sdcard2 /storage/sdcard1

Change to the following:

dev_mount sdcard /storage/sdcard1 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard0 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

Save your work and reboot Android! After rebooting, the device will have increased memory!



The capabilities of the device can be seriously expanded if you replace the internal Android memory with a memory card. This will allow you to install many more applications on your tablet or other gadget, but the main requirement for performing this update is to have root rights on the device. Let's look at ways to use an SD card as the device's system memory, as well as the conditions associated with this.

Risks and conditions for replacing the gadget’s internal memory with an SD card

Before repeating the steps below, the user should consider several important points:

  1. The lifespan of the SD card will be greatly reduced due to frequent read/write cycles when running applications.
  2. The speed of the gadget may drop noticeably if you use a low-end MicroSD card.
  3. If you make a mistake when editing a system file, the phone may not boot next time - you will have to reflash it.

In general, the procedure (especially for inexperienced users) is quite risky, so it makes sense to carry it out exclusively for old gadgets with a small amount of their own memory.

Using the Root Browser utility and editing the vold.fstab file

To swap memory, you will need to install Root Browser from Google Play.

Let us repeat that you can only fully work with it on rooted devices. After running the above application:


In Android, sdcard stands for internal memory, and extsd stands for external memory, i.e. SD card. By replacing these lines, we actually swapped these types of memory. On some systems these pieces of code may look different, for example like this:

They need to be replaced as follows:

After completing the described procedure, reboot the gadget. Before doing this, be sure to check that there are no errors in the modified code, so that there is no need for reflashing in the future.

The second way to increase memory using Link2SD

The application is available on the Play Market and only works on devices with root rights. This file manager does not physically replace the device’s internal memory with an external drive, but it is capable of transferring any utilities to an SD card, significantly saving the gadget’s resources.

The peculiarity of the application in question is that the MicroSD itself will have to be split and properly formatted. Therefore, copy everything valuable from your card to your computer and start dividing the drive into sections.

Dividing the device card into sections if there is a custom Recovery

Every Android device has a recovery mode, but the method described below is only suitable for devices with . If you've never heard of CWM, move on to the second drive partitioning option. Next, we’ll tell you how to solve the problem if your device recovery mode has the Partition SD Card item:

Partitioning a MicroSD card via a computer

Connect the card to your laptop or PC. To do this, you can use a card reader or other equipment, the main thing is that it should be defined as a drive and not an MTP media device. Further:




 


Read:



Aeroflot Bonus program: how to accumulate miles and what can you spend them on?

Aeroflot Bonus program: how to accumulate miles and what can you spend them on?

Aeroflot is the leader of Russian civil aviation. It is equated to a national air carrier. The company was founded back in 1923 and...

How to find out which drive is on your computer: SSD or HDD How to find out which ssd is on your computer

How to find out which drive is on your computer: SSD or HDD How to find out which ssd is on your computer

In this article you will learn how to find out the main characteristics of solid-state drives, as well as how to test them. For this operation...

Testing Fractal Design Define R5 Fractal Design Define R5 - Quiet, spacious

Testing Fractal Design Define R5 Fractal Design Define R5 - Quiet, spacious

At the time when the first personal computers began to appear, manufacturers paid almost no attention to their appearance. Then it was required...

How to speed up Android smartphone and tablet?

How to speed up

Good morning to all, dear friends, acquaintances, readers and other individuals. Today we’ll look at how to speed up Android, all sorts of applications for it and...

feed-image RSS