Android 4.4 Virtual Device Internal Storage Will Not Resize
Asked Answered
P

10

45

When creating a new Android 4.4 Virtual Device using the AVD Manager, I cannot get the internal storage to be anything larger than 200MB.

512MB is the internal storage size I would like to set.

I've tried:

  • Setting the internal storage of the device in the AVD Manager to 512MB.
  • In Eclipse project Debug Configurations, under the Target tab, setting Additional Emulator Command Line Options to -partition-size 512.
  • In the Eclipse Preferences, under Android, I set the Default emulator options to -partition-size 512.
  • Editing the config file for my virtual device under (User)/.android/avd/(device).avd/config.ini
    • Then setting disk.dataPartition.size to disk.dataPartition.size=512M
    • Also tried setting it to disk.dataPartition.size=512MB
    • Also tried setting it to data.dataPartition.size=512M

This happens on both ARM and Intel Atom x86 CPUs.

Now when I switch over to Android 3.0 (ARM), I can resize it simply using the AVD Manager to my hearts content. Is there an issue with Android 4.4? Is there something I missed? Or a possible work around?

Partlet answered 14/12, 2013 at 4:15 Comment(1)
The following Android issue is open for this bug. Current status as of 9/15/2014 is assigned / triaged. code.google.com/p/android/issues/detail?id=75141Headstone
P
57

Now that the emulator file system is ext4 I was able to re-size the userdata.img using standard Linux tools.

# Navigate to AVD
cd ~/.android/avd/Nexus5
# Delete old image
rm userdata-qemu.*
# Re-size the image
resize2fs userdata.img 512M
# Start the emulator and enjoy
emulator @Nexus5

Edit I was also able to re-size userdata-qemu.img directly but I had to run e2fsck first.

 e2fsck -f userdata-qemu.img
 resize2fs userdata-qemu.img 512M
Polemoniaceous answered 24/12, 2013 at 14:14 Comment(10)
Unfortunately this is the only way that will work for me. I have to switch into Linux, do this, then switch back into Windows. It's quite a pain.Partlet
There is a e2fsprogs package available for Cygwin. Maybe there is a MinGW port.Polemoniaceous
On Mac OS X you can use brew install e2fsprogs when using the homebrew package manager to install these tools. Since they are not being symlinked to /usr/local by default, you should use their full path to run them, e.g. /usr/local/Cellar/e2fsprogs/1.42.9/sbin/resize2fs.Binnacle
I used the above mentioned commands but now my emulator wont boot :(Mallard
This, combined with the tune2fs answer below worked, then got my emulator to boot again!Erkan
Same as Matt, I used this and the tune2fs and it worked just fine. The only thing I had to resize both userdata-qemu.img and also userdata.img.Marquittamarr
One thing - choose to fix any FS errors if e2fsck reports them...then run tune2fsNecrophilism
great workaround! it worked on mac. Thanks also to nerdinand to poiting out how to install the missing command for mac.Unrest
Edit part of answer didn't work for me since it modifies userdata-qemu.img and not userdata.img (the first one did nothing for my AVD). Also: given tools are available in SDK as of september'17, they are in ${MY_SDK_DIR}/emulator/bin64/ folderRosol
Also check for this line disk.dataPartition.size=... in config.ini and make sure it's disk.dataPartition.size=512M instead of something else. I created it with a 2048MB config in AS UI and it was created with disk.dataPartition.size=2G instead of disk.dataPartition.size=2048M and it wouldn't workRag
M
29

Even above suggestion can cause to android emulator hang on boot logo. The reason is that resize2fs do the changes thats are right in general but considered as broken fs by android and prevent it to mount it in rw mode, that hangs up the boot process.

Examening boot logs shows something like that:

EXT4-fs error (device mtdblock1): ext4_mb_generate_buddy:741: group 2, 32366 clusters in bitmap, 32370 in gd

Event e2fsck does not fix it for android and to workaround it i use tune2fs to change the way how android should continue to mount broken fs.

tune2fs -e continue userdata-qemu.img
Multiplechoice answered 25/2, 2014 at 16:46 Comment(3)
Thanks, this in combination with the accepted answer above worked for me!Binnacle
Yeah, I had to do this to get the emulator to boot past the Android boot logo.Teenager
Brilliant! combined with the answer worked for me. Without tun2fs sim was stuck in Android boot image.Necrophilism
B
5

Someone13, this is definitely a Bug in Target: "Android 4.4.2 - API Level 19"

I have the same problem- can’t change the size of internal storage of the device in emulator of Android SDK by no way(even with “disk.dataPartition.size=xxxM” in config.ini or with command-prompt arguments “-partition-size xxx”) when using Android 4.4.2 in the Emulator of Android SDK.

The only way is to set custom size is when using as Target: Android 3.0 - API Level 11.

My hardware: Windows 7 Ultimate SP1, RAM 4GB; Core Duo 2.28GHz; GT630

Burlesque answered 10/5, 2014 at 7:48 Comment(0)
T
4

If you are still having this issue in 2016, try deleting the image from AVD manager, and then add back the emulator.

It seemed like I could not resize the emulator no matter what I do, but it worked when I deleted the image and then recreated image with 1GB internal storage.

Telesthesia answered 11/3, 2016 at 15:48 Comment(0)
A
1

I was able to create this virtual device, maybe change your device type or something?

enter image description here

Acquah answered 23/12, 2013 at 20:26 Comment(2)
Didn't work for me. I used that exact same setup that you displayed in the pic. I also tried updating my Android Developer Tools and updated 4.4 to 4.4.2. Still same issues.Partlet
@Partlet Have you updated tiy sdk manager as well? Download the latest version and test it out.Acquah
A
1

To build up on @Frohnzie's answer, resize2fs and e2fsck are now included in the SDK Tools (you may need to update your SDK tools to see them) so you don't need to install them separately. They are located under yourAndroidSDKFolder/tools/bin (Windows, Linux) or yourAndroidSDKFolder/tools/bin64 (Mac, Linux).

Aldine answered 18/1, 2016 at 11:23 Comment(3)
Not sure why this answer had a downvote. +1, worked for me. Here's an example (with Android SDK installed by Xamarin): ~/Library/Developer/Xamarin/android-sdk-macosx/emulator/bin64/resize2fs ~/.android/avd/avdname.avd/userdata.img 1024M. That's the only command you need if you run after avd create, but before launching the emulator for the first time.Bisset
Path in the anwer is incorrect @NateCook comment helped me to find resize2fsAcus
If you can't find resize2fs, you may also be able to install via homebrew brew install e2fsprogs. More info on that approach here: #20580106Bisset
V
0

Assaf G.'s answer is good. But i have noticed in the following links in the first one user is able to create Emulator with internal storage 500MB. But he is getting some exceptions but not related to internal storage. And in the other link user able to create emulator with internal memory 4096MB. But he is facing speed problems. So i think you have to try with specifications provided in first link.

1.Android 4.4 Emulator

2.android emulator forever launching

Vantage answered 24/12, 2013 at 11:54 Comment(0)
K
0

For me it was an issue when I accidentally chose the AOSP 4.4.2 emulator in Android Studio. The Google Inc. x86 emulator (below) doesn't seem to have this bug.

enter image description here

Kelp answered 22/3, 2015 at 16:8 Comment(0)
K
0

delete /data/data/com.google.android.gms/files will release 200M+

Kile answered 10/5, 2015 at 3:51 Comment(0)
F
0

Here, there seems to be some catch, in older android tools lower than version 22, this does not work. I upgraded the android tools to 23 and this started working.

My configuration was API Level 21 CPU: Intel X86 OS: Ubuntu Linux

Forehanded answered 19/3, 2016 at 13:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.