If you're interested in
- getting init.d support (to run various scripts at boot) as well as
- recursive, full access to external SD card through media_rw, read posts #4 and 6 (addresses the inability to protect backups in Titanium Backup)
Related
HI all
I already have my mini x10 pro U20i rooted with CWM and Busybox and I have been looking for the latest most stable ROM to run on the stock kernel.
Preferably something that can install the apps onto SDCard
And
Works well in low signal strength areas
I use apps mainly for PC Repair if that helps
X10 specs
Model U20i
Firmware version 2.1 update 1 no other updates available
Baseband Version M76XX-TSNCJOYLM-5340-4015
Kernel Version 2.2.29 [email protected] #1
Build Number 2.1.1.A0.6
If you need any more info please let me know what you need
many thanks in advance
The most stable Rom that I found:
http://forum.xda-developers.com/showthread.php?t=1415026
http://forum.xda-developers.com/showthread.php?t=1576160
http://forum.xda-developers.com/showthread.php?t=1911317
polimeno said:
The most stable Rom that I found:
http://forum.xda-developers.com/showthread.php?t=1415026
http://forum.xda-developers.com/showthread.php?t=1576160
http://forum.xda-developers.com/showthread.php?t=1911317
Click to expand...
Click to collapse
Hi polimeno
Thank you for your suggestions much appreciated
Since doing research into all this I have discovered that now the phone is rooted there is an app called Link2sd that will do the job I require without installing a new ROM.
All I have to do is is backup the SDcard and make 2 partitions
Features:
- Create and remove link for apk, dex and lib files of the applications you select
- Automatically link newly installed apps (optional)
- Move any user apps to SD even though the app does not support moving to SD (a.k.a. "force move", for Android 2.2 and higher)
- Shows the apps that support moving to SD with native apps2sd (for Android 2.2 and higher)
- Set the default install location of the apps; auto, internal, or external (for Android 2.2 and higher)
- Batch link, unlink, reinstall, uninstall, "move to SD", "move to phone" functions (multi-select mode)
- Uninstall system applications (bloatware removal)
- Freeze and un-freeze system and users applications
- Convert system apps into user apps
- Convert user apps into system apps
- Integrate "Updated" system apps into system (ROM)
- Clear data and cache of the application
- Clear all apps cache at once (1-tap cache cleaner without being root)
- List applications, show detailed size information and link status
- Sort and filter applications
- Search applications by name
- Display available space information of internal storage, SD card and SD card 2nd partition
What you need:
- root permission.
- a second partition on your SD card.
You should have two partitions on SD card and both should be primary.
The first FAT partition is your standard SD card storage. The second partition is used for application files and can be ext2, ext3, ext4 or FAT32.
Some phones lack the ext2, ext3 or ext4 file system support and you may get mount errors like "no such device", "invalid argument". These phones need ext2.ko or ext3.ko modules and even some additional modules to be able to mount. Using FAT32 on the second partition will eleminate such problems, because FAT32 is supported on all phones.
Link2SD does not create the second partition, you need to create it yourself. You can use any partition manager such as Minitool, Paragon, Easeus etc. for this.
Hello all .
I have a Android Phone that has very low Internal Storage. (After STOCK mod restore, there is only 100 MB internal storage free .).
So, naturally I want to put all the apps that I install now to External SD Card.
I've tried App2SD and Link2SD already.
But, when i used App2SD, the internal storage was still dropping as I installed more and more apps. (App2SD was working, meaning app2sd did move the apps to SD, but still there was decrease in free Internal Memory).
Then, I tried Link2SD. This gave me the same result as App2SD. This was better than App2SD though, meaning the decrease in Internal Memory was slower compared to App2SD.
Now, here's my question : I want a proper technique to move EVERYTHING app related to SD card when i install an app.
Here is an Idea :
Can i create links to Directories in Internal Memory and move the Directories to external SD card ?
i know i can create links to files. but is it possible to link whole directories ? (If the app tries to create new files or directories, the link must work in such a way that new files and directories are created in External SD....... this must be invincible or transparent to the App..)
Some more of my Ideas :
Recently, I came across this : [TOOL] DirectoryBind - move data to external_sd (GameLoft, Shadowgun etc.) ROOT req. - xda-developers
Can I Bind the whole "/data/app" and "/data/data" and "/data/dalvik-cache" to External SD Card ?
Will it cause any OS instability ? or any other problems ?
And i have 1 more question :
When i install a new Application, I wanna know all the directories that it uses.
These i know : /data/app (for apk), /data/data (for data) and /data/dalvik-cache (for odex) ... Where else does the application use storage space ?
This i wanna know coz, im going to try to Bind the Directories using the tool i mentioned above. Or try to create Links...
Thanks a lot fellow XDA-Developers.... :highfive:.
If its of any help, my android device is "Karbonn A5i" .
Bump
.:Death_Angel:. said:
Bump
Click to expand...
Click to collapse
Int2Ext sript is what you're looking for You will have to partition your sdcard. First partition Fat(32), second partition Ext2/3/4. The scripts are meant to flash immediately after flashing the rom via cwm as other recoveries are not doing well with the scripts.
Int2Ext scripts move all app data to the Ext partition on your sdcard
Int2Ext+ scripts will move most of the data to Ext partition but will still use some of the internal storage as its faster this way.
Keep in mind that moving all data to sdcard will slow down your device
Thanks a lot LS.xD for your reply. I hit a few bumps along the road, but its working like charm now .
Here are the problems that I faced :
1) I didn't have Init.d Support in my Phone.
Solution : Universal Init.d - Android Apps on Google Play
This Doesn't work at all : [GUIDE][XSP]Easy init.d support for Stock ROMs - xda-developers
2) The Int2Ext script installation resulted in an Error (in ClockworkMod) (Status 0 Error.).
Solution : http://forum.xda-developers.com/showpost.php?p=29421274&postcount=66
After getting past those things, everything is working just fine now (I'm using INT2EXT) .
Again, Thanks a lot LS.xD for you help.
Hi.
I own Chinese tablet based on MTK6582 and Android 4.4.2, I somehow managed to install drivers and root it. The device has only 8GB of internal storge and is so horribly partitioned that I can install apps only in 1GB and 4,62GB is internal storage. I tried repartioning - it was horrible idea, worked for only 1 week, tablet was crashing and I wasn't able to open any stock app. I had to restore original EBR files. Then I tried Link2SD (after using SDFix) and it works. However, my sdcard is quite slow (write speed 8 mb/s) so apps are quite slow too. I thought that I can use this internal SD Card as second partition and googled something about it. I tried to follow this tutorial http://www.modaco.com/topic/356349-using-link2sd-to-use-internal-sd-as-extsd but my install-recovery.sh contains only this
#!/system/bin/sh
# If you're implementing this in a custom kernel/firmware,
# I suggest you use a different script name, and add a service
# to launch it from init.rc
# Launches SuperSU in daemon mode only on Android 4.3+.
# Nothing will happen on 4.2.x or older, unless SELinux+Enforcing.
# If you want to force loading the daemon, use "--daemon" instead
/system/xbin/daemonsu --auto-daemon &
# Some apps like to run stuff from this script as well, that will
# obviously break root - in your code, just search this file
# for "install-recovery-2.sh", and if present, write there instead.
/system/etc/install-recovery-2.sh
(I have two install-recovery.sh files BTW)
This tutorial looks good too but probably my ROM does not support init.d scripts http://forum.xda-developers.com/showthread.php?t=2201192
So any ideas how to make Link2SD see my internal SD card as second partition of physical SD card?
Hey.
I am no stranger to Android hacking so I downloaded newest ROM for my Doogee DG280 (mt6582).
I flashed it, then backed up using SPFlashTool, processed using MTKDroidTools to mod boot and recovery
and from this new CWM I installed SuperSU update from ZIP file.
So far so good, BUT:
Once any application requests root (i.e. calls "su"), it loses the rights to READ from sdcard (actual or emulated, doesn't matter).
I am emphasising READ because common problem on Kitkat is that the apps cannot write on SD card, which is easily
fixed by the SDFix app (tried it - no help).
So basically, all my apps can now read/write sdcard, but once an app requests root access, from that moment it can only write
to the SD, but not read from it. This creates lots of ****ty situations - for example, I download a file to an SD card and want to
copy it to /system/media/audio using Total Commander. So I do this, Total Commander says it needs to remount the partition.
I click Yes, it requests the root, remounts the partition (success) to rw and then tries to copy the file from SD but because it now
has root, it has lost the rights to actually read the file I want to copy.
Funny thing is, when I connect USB debugging and use ADB, the ADB is rooted as well and it CAN read from the sd card.
So there is a workaround for me now to use Android terminal, connect to the adbd on localhost and execute all the commands
I need but that is VERY nasty and of course it only works for manual operations.
Many root apps use sdcard to store data, for example Lucky Patcher stores downloaded patches on SD card. But with this bug
it cannot.
Anyone encountered this problem? Any solutions?
Try flashing this zip in recovery. Remember to take a backup before flashing. Did wonders for my phone running on MTK6582 chipset on KK ROM.
https://mega.co.nz/#!200y1KbA!-Z9tBbQrOAOCxP3Kis_c1idJQAMytR0O7AgGsuW3osY
no help
Unfortunately, didn't help. I examined the package and it does the same as SDFix app (which I already tried). But all these apps focus on giving write access to SD cards for ordinary apps.
I have a different problem - my apps actualy CAN read/write SD card right to the moment when they request root (call "su" binary). After that, they lose read access to the card.
Have you tried installing Busybox?
Maybe this helps: use SuperSU, disable the "mount namespace separation" option in SuperSU's settings. Reboot.
ABOUT
This is a solution for the dreaded warning about running low on internal memory on 2011 Xperia phones. My own Xperia Mini Pro has only 420MB of internal storage and this fills up quickly when installing apps. In this post I provide instructions and scripts to use the external SD card to extend the available internal storage, a so called “int2ext” solution which there are many flavours of.
The goal has been to solve the storage problem while at the same doing as small changes as possible to the system as possible (not unlocking bootloader, not installing custom recovery, etc).
Note that when the SD card is used to extend internal storage you should never power on the phone without the SD card inserted. Failing that you will probably need to factory reset and start over with the installation.
The whole 2011 Xperia range should be compatible, maybe other devices too.
BACKGROUND
After trying (and failing) with a number of the other solutions for enlarging internal storage with the external SD card, I've made my own solution that works on the Xperia Mini Pro (XMP) stock ICS ROM. In the second post I describe some properties of my implementation that may count as advantages for some, YMMV though.
COMPARED TO OTHER SOLUTIONS
See second post for technical description.
PREREQUISITES
Sony-Ericsson stock ICS ROM installed on your phone (you don’t need unlocked bootloader, recovery or any other mods)
Remove any other similar apps or tweaks (Link2SD, Apps2SD, INT2EXT etc) as they may interfere with this implementation. The installation script will abort if any of these are found.
USB Debugging enabled in your phone’s Developer settings.
Micro-SD card to install in the phone’s SD slot.
Cydia Impactor (optional)
Download from http://www.cydiaimpactor.com/.
Flashtool (optional)
Download from http://www.flashtool.net/. I have used version 0.9.18.6 which worked fine for the XMP while 0.9.20.0 had some problems. I have been told this has been fixed in 0.9.21.0 but have not verified it myself.
DOWNLOAD SCRIPTS
You find zip files as attachments at the bottom of this post.
INSTALLING
Check current firmware CDA (optional)
It is good to have a record of the exact firmware variant and version currently installed in case you need to flash back the stock ROM.
Go to the right place in the phone’s service menu:
open Phone Dialer
dial the secret code appropriate for your phone (for XMP it is *#*#7378423#*#*)
go into Service Info
go into Software Info
Note down the CDA number shown under the Customization Number heading
(see also http://www.hanfei.name/what-is-cust...xperia-device-and-how-to-view-or-find-it.html)
Partition your SD card
Your SD card should be partitioned as an MBR disk with (at least) two primary partitions:
The first partition should be formatted as FAT32 and will become your new (and smaller) SD card storage that you seen when connecting the phone to a computer.
The second partition should be formatted as Linux Ext2 and will become your extended internal storage.
You can have more partitions after these but these scripts will only care about the first two. I use a 16GB SD card and split even with 8GB to each partition.
There are many ways to perform the partitioning; I put the card in the SD slot on my computer and use the Minitool Partition Wizard Free Edition (http://www.minitool.com/partition-manager/partition-wizard-home.html) under Windows. For kicks you can install it using the Chocolatey auto-installer (https://chocolatey.org/packages/partitionwizard) if you like. You have more info about Minitool and other tools here:
http://forum.xda-developers.com/wiki/index.php?title=SD_card_partitioning
Note 1: Remember to set that partitions should be primary as some tools may default to logical and not primary partitions.
Note 2: You probably want to copy all your SD card files to your computer while partitioning and formatting, and copy them back after, as all data will be erased on the SD card.
Prepare your phone
Insert the partitioned SD card.
Enable USB debugging in Developer settings.
Have a USB cable ready for connecting between your phone and computer.
Root
If you have already rooted you can skip this step. All you need is the su binary on the system - you don't need the SuperSU app installed.
I use Cydia Impactor to root:
connect phone
select "# drop SuperSU su to /system/xbin/su"
click Start
(see also http://forum.xda-developers.com/showthread.php?t=2399464)
You can verify that it worked by opening a root shell.
I do this from Cydia Impactor:
menu Device > Open Shell…
type “su” at the prompt
type “id”
“uid=0(root)” should be shown
Update Busybox
The existing Busybox on the XMP is too old and will not support the way directories are mounted here. I have used Busybox 1.22.1 so I highly recommend that you install this version using the procedure below. If you already have this or a higher version installed you can skip this step but please verify that you have all the needed applets in your Busybox binary by checking against all the busybox aliases at the top of my scripts.
I use Flashtool to upgrade Busybox:
connect phone
Device menu > Install busybox
choose version 1.22.1
Install init.d support
The stock ROM does not have init.d support so we need to add it. If you have already added init.d support using some other software then you can skip this step.
Unpack the init.d.mikewse-<nn>.zip file to a directory (f ex init.d.mikewse) on your SD card.
Open a root shell on the phone using Cydia Impactor:
menu Device > Open Shell…
su
Install by running the install script:
Code:
sh /sdcard/init.d.mikewse/install.sh
You can verify the installation by checking the existence of the init.d directory:
Code:
ls -d /system/etc/init.d
The init.d function will be active after the next reboot and you can see messages from it in the kernel log:
Code:
dmesg | grep init.d
Install int2ext support
Unpack the int2ext.mikewse-<nn>.zip file to a directory (f ex int2ext.mikewse) on your SD card.
Open a root shell on the phone using Cydia Impactor:
menu Device > Open Shell…
su
Install by running the install script:
Code:
sh /sdcard/int2ext.mikewse/install.sh
You can verify the installation by checking the existence of the int2ext boot file:
Code:
ls /system/etc/init.d/40int2ext
The int2ext function will be active after the next reboot and you can see messages from it in the kernel log:
Code:
dmesg | grep int2ext
You should also be able to see the new larger size of your storage in the Storage menu of system settings.
Tweak what’s put on the SD card
The default int2ext script is set up with a good compromise between what files are delegated to the SD card vs are kept in the original location in internal storage. Apk files and app data are delegated to the SD card while unpacked app code (dalvik-cache) is kept on internal storage for speed and availability.
If you are installing a large number of apps your dalvik-cache may grow too large for internal storage. You can check how much it has filled up from a root shell:
Code:
df /mnt/int-stor
and also see how much of this is due to files in dalvik-cache:
Code:
du -s /mnt/int-stor/dalvik-cache
If you are hitting the limit then you can configure delegation of dalvik-cache to the SD card:
open a text editor with the 40int2ext file that you unzipped to the SD card in the int2ext.mikewse directory
edit the line
Code:
EXTDIRS="app app-private data"
so it becomes
Code:
EXTDIRS="app app-private data dalvik-cache"
then reinstall int2ext by running the install script again
REFLASH STOCK ROM
If you want to start from fresh or need to recover from some failure in the installation then you can flash back the stock ROM using Flashtool.
First let Flashtool download and assemble the appropriate stock ROM for you:
click XperiFirm icon in toolbar (furthest to right)
select your phone model
select the appropriate CDA (collected at the beginning of this post)
click the release info in the right pane to start download
Then flash it to the phone:
click Flash icon in toolbar (furthest to left)
choose Flashmode
follow instructions (for XMP press Volume Down)
If you have any questions or problems regarding Flashtool there are lots of threads on XDA were you can find solutions about drivers etc.
CREDIT / INSPIRATION / OTHER ALTERNATIVES
Extend internal storage
CronMod-INT2EXT http://forum.xda-developers.com/showthread.php?t=1716124
Int2ext fixed for Xperia mini http://forum.xda-developers.com/xpe...fix-loosing-network-flashing-int2ext-t3039205
Link2SD http://forum.xda-developers.com/showthread.php?t=919326
Apps2SD http://forum.xda-developers.com/android/apps-games/apps2sd-partition-sd-card-link-apps-to-t3122919
Mounts2SD http://forum.xda-developers.com/showthread.php?t=2432479
init.d support
init.d Terminit http://forum.xda-developers.com/showthread.php?t=1933849
init.d for stock ROM http://forum.xda-developers.com/showthread.php?t=1417375
Bye now and hope it works well for you
DEVELOPER INFO
If you publish a modified version of these scripts or include them in a ROM then please give credit by linking to this thread.
GOALS AND TECHNICAL DESCRIPTION
Here's a few thoughts that have influenced the implementation:
Working for autostart apps, widgets etc
I have seen mentions that Link2SD and others have problems with redirecting widgets and other types of early-start apps. I have not seen this myself and suspect this may have to do with other factors (f ex doing install steps in the wrong sequence may bork your installed apps).
Anyway, I have verified that my solution works with all apps (early-start, system and downloaded) on the XMP.
No extra bells and whistles
Many of the available solutions add extra "nice to have" features to make scripts more universal or maybe optimize speed on some devices. I actually ran into problems with some of these optimizations on the XMP so deciced to only perform what is exactly necessary on the XMP and nothing else. This script only performs mounting of partitions and moving of files therein.
Mount the /data base directory on external SD card
Several other solutions keep /data mounted on internal storage and just redirects /data/app and others to the SD card. That is good in theory but at least on the XMP this causes you to still get warnings that storage is full as the phone detects that your apps take up more space than fits in /data. With my solution the phone will see the enlarged /data partition and will f ex report this correctly in the Storage menu.
Keep most /data subdirs uninterrupted on internal storage
There are some critical directories on /data that should be available without interruption from boot and onwards. Having these come and go during startup can lead to different problems such as signal loss (correlated to /data/radio). To avoid surprises this script only keeps the typical hogger directories app, app-private and data on the SD card and rebinds everything else back to internal storage in one rbind-mount command that eliminates interruption of these subdirs.
If you want you can customize which /data subdirectories are used on the SD card by simply editing the EXTDIRS variable in the 40int2ext script. Existing files will be moved accordingly on the next boot.
Simple install script run from terminal instead of flashing from recovery
Stock ROM doesn't have recovery with flash function so I have instead made simple install scripts that you run from the Android shell.
Follow standard principles
Like several other solutions this script hooks the debuggerd binary as that seem to be triggered earliest during startup. I also look for installations of other solutions and will abort if any are found as that could lead to problems.
Naming is kept similar to other solutions apart from the strange habit to use "sd-ext" as the name for internal storage. In my implementation internal storage is mounted to /mnt/int-stor and the external SD card to /mnt/sd-ext.
CHANGE LOG
1.0 (2016-05-03)
Inital version