NewStorageLayout.pdf

(143 KB) Pobierz
New Storage Layout for HTC One X
 
You were directed here because CyanogenMod builds for the HTC One X (endeavoru), starting 
with Lollipop, change the storage layout in incompatible ways. Let me explain why. 
 
tl;dr: Our /data is too small to handle Dalvik/Art cache if many Apps are installed. A nearly fresh 
Lollipop build with GApps already uses ~750/2196 (34%) Mib of the data partition. It will get 
worse in the future. Fixing this causes incompatibilities with existing ROMs and recoveries. 
Updating the partition layout without losing data is possible but tedious. 
 
 
 
Explanation 
The new layout 
Advantages 
Disadvantages 
Downloads 
Old recoveries 
New recoveries 
Data Migration 
Questions/Alternatives 
Why not move dalvik­cache or /data/app to /sdcard (dalvik2sd, app2sd)? 
What’s the difference between the emulated sdcard and emulated Unix permission? 
More Information 
Getting Help 
 
 
Explanation
 
Traditionally the Android partition layout consisted of the following main partitions: 
● /system for the Android operating system and some pre­installed Apps (read­only), 
● /data for user downloaded Apps, settings and most app related data, 
● /cache for Dalvik and other caches and intermediate data during recovery, 
● /sdcard for photos, movies, music and bigger data downloaded by apps. 
 
HTC followed this layout with all the ROMs they released for the One X (but not the One X+). 
The current sizes of these partitions are /system 1.3 GiB, /data 2.2 Gib, /cache 310 Mib and 
/sdcard 26 Gib.  
 
Things have changed and Android expects a different layout more akin to 
● /system for the Android operating system and some pre­installed Apps (read­only), 
/data for user downloaded Apps, settings, most app related data, ​
Dalvik and other 
caches and the emulated SD card​
/cache for ??? and intermediate data during recovery, 
emulated SD card for photos, movies, music and bigger data downloaded by apps. 
 
The current Android 4.4 ROMs for the One X already had to move the Dalvik cache from /cache 
to /data because /cache is too small. It is not uncommon that the size of the dalvik­cache folder 
exceeds 1 GiB, which means only 1.2 Gib remain for downloaded Apps and their data. With a 
possible switch to the Art runtime it will be even less. 
As a result of this you can install fewer apps and get nagged by the low free space warning. 
Also future updates may cause crashes because Dalvik/Art cache files can not be created since 
no free space is left. Android cannot handle this properly at the moment. 
 
Additionally because the current /sdcard uses a FAT filesystem, which does not support Unix 
file permissions, we need a FUSE daemon (fuse_sdcard0 service) that handles this for us. 
Under some circumstances this daemon can be quite CPU intensive. 
 
Here is another nice explanation from the TWRP developers: ​
http://teamw.in/DataMedia​
The new layout
 
To solve the the problem with the small /data partition 
 
The new partition layout will make the following changes: 
● old /data will become new /cache, more than big enough for Dalvik and Art 
○ /data/app Dalvik/Art cache files will still go to /data/dalvik­cache 
● old /sdcard will become new /data and needs to be re­formatted as ext4 
● sdcard will be emulated and part of /data 
 
Advantages
 
Free disk space problems are largely gone because the sdcard and /data share the 
same place 
Properly supporting UMS and moving Apps to SD is getting harder and harder. This 
change will make both unnecessary 
Disadvantages
2GB (size of the old /data partition) are “lost” 
Breaks compatibility with all existing ROMs, recoveries and boot.imgs 
Hopping between Sense and CM based ROMs will be nearly impossible 
No more UMS, only MTP 
Downloads
Old recoveries
 
Recoveries using the old storage layout. 
 
TWRP 2.8.1.0​
 (by teemo) 
CWM 
● PhilZ 
 
New recoveries
Recoveries using the new storage layout. 
 
TWRP 2.8.4.3​
 (by teemo, thunder07) 
Data Migration
 
This guide uses TWRP 2.8.4.x to convert your phone without losing data. 
 
1. Boot into the TWRP recovery supporting the old layout 
2. Make a backup (only /data needed) 
3. Copy everything (including hidden folders) from the SD card to your pc 
○ You can use UMS or MTP 
○ This will include the backup  
4. Reboot to fastboot and flash the new TWRP recovery for the new layout 
5. Flash the boot.img from the ROM you are using 
6. Reboot to new recovery 
7. Format /data (Wipe ­> Format Data) 
8. Reboot the recovery to create some folders in the new /data partition 
○ MTP should be enabled automatically 
9. Restore your SD card backup to the Internal SD card 
○ Use the “Internal Storage” device
 
10. Execute “​
b s e l c o n ­   e i _ w m d a r   d t / e i / /
 
a  hl hw Rmdar:ei_w/aamda0
d
11. Restore your /data backup from the SD card 
○ If you don’t see any backups then might have to move the TWRP folder from 
/data/media/0/TWRP to /data/media 
12. Flash the new ROM 
○ adb push and flash it or use adb sideload, it’s your choice 
Questions/Alternatives
 
Why not move dalvik‐cache or /data/app to /sdcard (dalvik2sd, app2sd)?
 
This is more a hack than a real solution and requires more hacks to make it work properly. For 
starters the /sdcard is not accessible early enough in the boot process. 
 
More Information
 
http://source.android.com/devices/tech/storage/index.html 
 
Getting Help
 
If you have trouble doing the migration or if you have questions to can post them on our support 
forums. 
 
XDA: 
http://forum.xda­developers.com/htc­one­x/orig­development/storage­layout­hox­endeavoru­t30
22358 
CyanogenMod: ​
http://forum.cyanogenmod.org/forum/699­htc­one­x­endeavoru 
 
Zgłoś jeśli naruszono regulamin