Post Reply

[INIT.D][10-05-2012]Super APP2SD Script [MAJOR UPDATE][BETA]

OP TweakerL

16th September 2012, 12:57 AM   |  #1  
OP Senior Member
Flag Rosedale, MD
Thanks Meter: 325
 
234 posts
Join Date:Joined: Oct 2010
Donate to Me
More
UPDATES, WARNINGS, AND INSTALLATION STEPS ARE AVAILABLE IN THE 2ND POST

WHAT DOES THIS SCRIPT DO?

* It is the only method, that I am aware of to have apps trully run, and be installed directly to the external storage without completely switching the internal storage with the external storage.

This bings different benefits to different people:
1 - If you have a device that comes from factory with only a small amount of storage available, you can now install as many apps, and apps as big as the partition you setup to use with this script. For example, if you have a phone with only 512 MB of app storage, you can now install games that take over 1GB of app storage so long as your external partition has the space available.

2 - If you bought a 16GB device and wish you had bought a 32GB device, this is great for you as well (I'm one of these). With this script, your apps will not take up any space in your internal storage, which means that your 16GB (or whatever is left of it after factory partitioning, 11.66 GB in my case) is now available for pictures, videos, downloads, backups, or whatever else you might want to put there or have easy access to when you connect your device to your computer.

3 - If you have a lot of Android games, this is great for you too, specially if you're playing games that take a lot of space. Just get a large MicroSD (I have a 64GB partitioned to 32/32) and put as much space as you need in the second partition, and now you can have all your games intalled at the same time. No need to keep uninstalling games so that you can install other ones.

* Once and Done, across the board setup. That's right, launchers, keyboards and widgets will run from the external storage natively, something never done before in Android as far as I know.

This means that once you have the script up and running, you're good to go until the next time you reflash your /system partition. No need to choose what apps to move. No symlinks or anything. Your apps now belong in the external storage, plain and simple.

* No need to backup all your stuff before running the script (and eventually no need to back up your stuff when you want to disable it either).

That's right, the script does the hard work for you. All your stuff gets safely moved to the external storage, with all ownerships and permissions intact. It all happens so smoothly that some people have a hard time telling that the script is already at work. Nothing gets deleted from the internal storage until you're certain that everything is working as expected either. So even if something goes wrong, as long as you have ADB, all your stuff can go back to normal without a problem

(Even though you don't have to backup and restore in order to get the script going, it's always greatly recommended that you keep a backup of your apps).

* Simple intallation:

To get the script going all you have to do is download it, extract it, and run 3 commands in the terminal. It will then ask you a couple of questions, and then you'll be all set. The one downfall is that because the script requires user input (no, the required information cannot be picked from a list), the script cannot be run from a recovery zip. However, I'll emphasize once again that it only takes 3 commands to get the script going.

Also, the script comes with an options file that allows you to setup device specific variables, making the script malleable to work on just about any Android device. Just open the USER_OPTIONS file before runing the install script, and as long as you have the variables there set correctly, the script should be compatible with your device.

* You can still use the external partition for other stuff if you want to. Just remember that it's mounted to /mnt/sd-ext (or /storage/sd-ext in JB). So if you still have a ton of space left in the partition and need the space, you can still use it. Just ensure not to touch the folders Android, app and data.

* Now this is a bit more technically, but in theory, you could a third partition for this script instead of the second partition, and then still be able to use app2sd solutions, though personally I don't see what advantage there would be to doing this since apps would still be in the external storage no matter what.

WHAT DOES THIS SCRIPT NOT DO?

*** IT CANNOT BE CONVERTED INTO A RECOVERY ZIP DUE TO USER INPUT REQUIREMENT ***

*** YOU CANNOT PICK AND CHOOSE WHAT APPS TO MOVE, THAT'S PLAIN AND SIMPLE NOT THE PURPOSE OF THIS SCRIPT ***

SCREENSHOTS



Above you can see my storage screen. If you add the amount of used space and the amount of available space, it's ~18 GB, well over the available 11.66GB in the internal storage. Also note that when the script is enabled, the bar displaying storage usage is unreliable. All other information is reliable, including, and most importantly, the amount of available free space.



Above you can see the output of some commands in the terminal. The most important part of the output for mount above are
Code:
/dev/block/mmcblk0p12 on /mnt/temp/data type ext4 (rw,relatime,barrier=1,journal_async_commit,data=ordered,noauto_da_alloc,discard)
/dev/block/mmcblk1p2 on /mnt/sd-ext/data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/media/Android type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/app type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
As you can see, mmcblk1p2, the external storage, is mounted to /data/app, /data/data and /data/media/Android, which means that as far as Android is concerned, those folders are in the external storage. Also note that all these mounts took place before /sdcard itself was mounted, meaning that the script is ensuring that these mounts take place soon enough in the boot process to avoid problems related to mounting the app storage locations after Android has loaded the available apps.

Finally, the fact that mmcblk0p12 is mounted to /mnt/temp/data is important because of the next two commands

The output of du -sh shows the amount of storage used by a folder, and as such because the internal storage is mounted to /mnt/temp/data;
/mnt/temp/data/app = internal /data/app = 8KB
/mnt/temp/data/data = internal /data/data = 72KB
/mnt/temp/data/media/Android = internal /data/media/Android = 4KB

whereas
/data/app = 1GB
/data/data = 624.3 MB
/data/media/Android = 5.6 GB

For a grand total of 7.22 GB of used app storage in the external storage as opposed to 84 KB in the internal storage.

CREDITS
*smaw51 - Testing
*ArangeLTX - Testing and Debugging
*Laggan - Testing
*aadiflesher - Testing

*Others who tested the script but weren't in direct contact with me.
*People who said it wasn't possible to run widgets, launchers and keyboards from External Storage (They provided the challenge I needed to make this work)

If anybody needs help or if anything doesn't work, I'll help through irc (much quicker than posting here) on freenode - #and-host
Attached Thumbnails
Click image for larger version

Name:	Screenshot_2012-10-05-13-52-42.jpg
Views:	37380
Size:	30.4 KB
ID:	1378419   Click image for larger version

Name:	Screenshot_2012-10-05-14-04-30.jpg
Views:	37649
Size:	33.9 KB
ID:	1378420  
Last edited by TweakerL; 16th October 2012 at 08:36 PM.
The Following 40 Users Say Thank You to TweakerL For This Useful Post: [ View ]
16th September 2012, 12:57 AM   |  #2  
OP Senior Member
Flag Rosedale, MD
Thanks Meter: 325
 
234 posts
Join Date:Joined: Oct 2010
Donate to Me
More
UPDATES:

09-26-2012: Major Update, Overhauled most of previous code.
09-27-2012: Found badass typo in one of the files, fixed and uploaded correction.
09-27-2012: Added install Script.
10-02-2012: Corrected install script so that things now run properly. Don't forget to double check USER_OPTIONS and set ENABLED=true
10-02-2012: Added MMCBLKXPX variable to user options so now devices that mount SD-EXT to different block can use script easily.
10-03-2012: More fixes to the install script, also added check for storage location as well as user input. Started working on compatibility for devices where /sdcard/Android is in different partition from /data
10-03-2012: Updated this post with more organized information.
10-04-2012: Modified script so that debugging output works properly in JB
10-05-2012: Finished working on compatibility for devices with /sdcard and /data in different partitions (PENDING TESTING)
10-05-2012: Added automatic detection for such devices ^ (New variable is automatically created in USER_OPTIONS, called fukedupFS)
10-05-2012: Added extra security for $deletepostmove (Will not take effect until stage 3 is detected)
10-05-2012: Added switch on install script to do a clean install, (using sh ./install-a2sd -clean) which will erase all current options/vars and reset stage to 0.

WARNINGS:


1 - PROCEED WITH THE FOLLOWING STEPS AT YOUR OWN RISK. IF ANYTHING BREAKS I'LL GLADLY TRY TO HELP (IF I CAN), BUT YOU DO WHAT YOU DO AT YOUR OWN RESPONSIBILITY.

2 - THE INSTALLATION SCRIPT REQUIRES USER INPUT, WHICH MEANS THAT IT CANNOT BE MADE INTO A RECOVERY ZIP. DO NOT BOTHER TO ASK FOR ONE. IF YOU CAN'T LEARN HOW TO USE THE TERMINAL, THEN JUST STICK TO OTHER SUCKY APP2SD SOLUTIONS.

3 - THIS SCRIPT IMPLEMENTS INIT.D BY DEFAULT, IF YOU ALREADY HAVE INIT.D FUNCTIONALITY MAKE SURE TO CHANGE:

Code:
/system/bin/logwrapper busybox run-parts /system/etc/init.d
TO
Code:
# /system/bin/logwrapper busybox run-parts /system/etc/init.d
IN THE B]sysinit[/B] FILE.

4 - THIS SCRIPT IMPLEMENTS INIT.A, WHICH IS ESSENTIALLY LIKE INIT.D, BUT HAPPENS EXTREMELY EARLY AT BOOT TIME, IT IS SUGGESTED THAT REGULAR USERS DO NOT PUT ANY SCRIPTS IN INIT.A UNLESS THEY KNOW WHAT THEY'RE DOING, JUST USE INIT.D FOR OTHER SCRIPTS.

5 - UPDATE YOUR BUSYBOX TO THE LATEST VERSION (1.20.2 AT THE WRITING OF THIS). SOME EARLIER VERSIONS OF BUSYBOX ARE KNOWN TO NOT HAVE SOME OF THE REQUIRED SWITCHES FOR THE COMMANDS USED IN THE SCRIPT.

6 - AT THIS POINT THE SCRIPT REQUIRES THAT YOU HAVE A SECOND PARTITION IN YOUR MICROSD FORMATTED TO EXT4, ANYTHING ELSE WILL NOT WORK. THIS MAY CHANGE IN THE FUTURE, BUT AT THIS POINT IT'S A REQUIREMENT.

7 - FULLY READ THE INSTALLATION INSTRUCTIONS, MORE THAN ONCE IF POSSIBLE, BEFORE RUNNING THE SCRIPT. FAILING TO COMPREHEND WHAT'S GOING ON CAN POSSIBLY LEAVE YOUR DEVICE SEMI-BRICKED/CAUSE MAJOR HAVOC AND FORCE-CLOSES AND YOU'LL HAVE TO RESTORE A BACKUP. MORE THAN ANYTHING MAKE SURE TO BACKUP YOUR APPS.


INSTALLATION:

1 - Download the attached file on your device or PC.

2 - Extract the files and move it to an easy to access location in your device, such as /sdcard. Open USER_OPTIONS and ensure that all variables correctly apply to your device, LEAVE deletepostmove='false' until later. Set ENABLED='true' once you're reviewed everything.

3 - Open a terminal app (Rom Toolbox and such probably won't work because the script requires user input)

4 - Assuming that you moved all 6 files to /sdcard, execute the following commands in the terminal:
Code:
su
cd /sdcard
sh ./install-a2sd
You can also perform a clean install by using the command:
Code:
sh ./install-a2sd -clean
5 - The script will ask a couple of questions, answer them (ask someone for help if you're not sure).

6 - If all went well (The script will tell you that folders were created, files were copied and permissions were set) you'll be told that upon pressing enter your device will be rebooted. Press ENTER when ready or reboot manually if it fails to reboot on its own.

7 - STAGE 1 - NOTHING WILL HAVE NOTICIABLY CHANGED UPON THE FIRST REBOOT. This is normal. The first reboot will only garther many variables needed for the script to run properly, it will also give the opportunity to review the variables and ensure that everything is ok, so that you can disable the script in case the gathered variables are not correct, so that things don't get broken unecessarily. Please take a look at:
Code:
/sdcard/Tweaked.Scripts/A2SD/options/vars
If all looks good in there (even if you don't understand what the variables are for, ensure that the paths make sense, don't worry if you don't have /mnt/sd-ext and /mnt/temp, or /storage/sd-ext and /storage/temp as these will be created).
Reboot again after reviewing the variables.

8 - STAGE 2 - ONCE AGAIN, WHEN YOU REBOOT, NOTHING WILL APPEAR TO HAVE HAPPENED. In fact, this is not the case this time. If all variables were correct in STAGE 1, every app along with their data and files will have started to be copied over to the external storage as soon as the device finished booting. You should be able to see the process for this by opening the terminal and running the command:
Code:
logcat | busybox grep "01a2sd"
You can also run the following command in the terminal to ensure that there are extra mounts that did not exist prior:
Code:
mount
***THIS IS THE MOST IMPORTANT STEP IN THE PROCESS. MAKE SURE THAT YOU DO NOT REBOOT YOUR DEVICE UNTILL THE FOLLOWING FILE IS CREATED:
Code:
/sdcard/Tweaked.Scripts/A2SD/DEVICE_IS_READY

Failing to do so is the single worst mistake that you can do. Rebooting the device before the copying is done might cause all your apps to look like they're not installed, as well as major FCs, to the point where stuff is unusable and you have to restore a backup.

Just be patient during this step, specially if you already have a lot of apps installed, even more so if you have games that use a large amount of space.

9 - STAGE 3 - After rebooting from STAGE 2, the device will mount the external storage in every location where apps would reside in the internal storage. This is why it's extremely important that STAGE 2 is completed properly, because unless everything has been moved properly, files that were not copied will seem like they don't exist, possibly causing FCs and major havoc.

If everything went ok, it will actually look like nothing happened, but in fact, everything should be running from the external storage. You can confirm this by running the following command in the terminal:
Code:
mount
You should see three mounts that weren't there before that look like
Code:
/dev/block/mmcblk1p2 on /data/media/Android type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/app type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
At this point, it should be safe to open USER_OPTIONS in /sdcard/Tweaked.Scripts/A2SD/options and change deletepostmove='true'. Just remember that with this variable set on, all your apps will be wiped from external storage. This means that if you reboot without your MicroSD or if you lose the stuff in the MicroSD your alls will be gone. Becase of this, ensure that you have your apps backed up somewhere.
Attached Files
File Type: zip install-a2sd.zip - [Click for QR Code] (5.2 KB, 3170 views)
Last edited by TweakerL; 5th October 2012 at 05:01 PM.
The Following 21 Users Say Thank You to TweakerL For This Useful Post: [ View ]
16th September 2012, 05:41 AM   |  #3  
Junior Member
Thanks Meter: 1
 
24 posts
Join Date:Joined: May 2012
Quote:
Originally Posted by TweakerL

To install, download attached file (then rename it to 01a2sd) or copy code and save it to (01a2sd).

Copy the file to /system/etc/init.d (Can be done with any file manager that has root access)
Change permission to 755 (Can be done with most file managers with root access)
Change Options in script to your liking.
Enjoy the extra storage after reboot.

Code:
#! /system/bin/sh
########################################################################################################
########################################################################################################
##                                                                                                    ##
##                                Super APP2SD by TweakerL                                            ##
##                             Visit us at http://and-host.com                                        ##
##                           Chat with us on freenot at #and-host                                     ##
##                                                                                                    ##
########################################################################################################
########################################################################################################

export PATH=/sbin:/system/sbin:/system/bin:/system/xbin

########################################################################################################
## Options #############################################################################################
##                                                                                                    ##
## Feel free to change these:                                                                         ##
##                                                                                                    ##
## moveAndroid: Moves /sdcard/Android to external storage.                                            ##
## moveApps: Not yet implemented                                                                      ##
## moveData: Not yet implemented                                                                      ##
##                                                                                                    ##
## deletepostmove: If 'true ' Deletes files from internal storage after they have been moved.         ##
##                                                                                                    ##
## pruneoldlogs: If 'true' Deletes logs older than X hours set in prunehoursold.                      ##
## prunehoursold: If 'X' greater than 0 logs older than X hours will be deleted                       ##
##                If 'X' equal 0 all logs will be deleted                                             ##
##                                                                                                    ##
## debugging: If 'true' files will be created in /sdcard for debugging purposes                       ##
##                                                                                                    ##
moveAndroid='true'                                                                                    ##
                                                                                                  ##
deletepostmove='true'                                                                                 ##
                                                                                                  ##
pruneoldlogs='true'                                                                                   ##
prunehoursold='1'                                                                                     ##
                                                                                                  ##
debugging='false'                                                                                     ##
########################################################################################################

########################################################################################################
## Constants ###########################################################################################
##                                                                                                    ##
## Don't touch these unless you're told to by someone who knows what they're doing:                   ##
##                                                                                                    ##
append_android='/Android'                                                                             ##
append_data='/data'                                                                                   ##
append_obb='/obb'                                                                                     ##
append_ext4='/ext4'                                                                                   ##
append_tweaked='/Tweaked.Scripts'                                                                     ##
append_movethis='/movethis.txt'                                                                       ##
append_temp='/temp'                                                                                   ##
append_media='/media'                                                                                 ##
append_A='A'                                                                                          ##
append_logs='/logs'                                                                                   ##
                                                                                                      ##
data='/data'                                                                                          ##
########################################################################################################
########################################################################################################

if [ -f /sbin/busybox -o -f /system/sbin/busybox -o -f /system/xbin/busybox -o -f /system/bin/busybox ]
then
has_busybox='true'
fi
if busybox blkid | busybox egrep -i "mmcblk1p2" > /dev/null
then
has_mmcblk1p2='true'
fi
if busybox blkid | busybox egrep -i "mmcblk1p2" | busybox awk '{print $4}' | busybox cut -f2 -d'"' > /dev/null
then
is_ext4='true'
fi

if [ $has_busybox == 'true' -a $has_mmcblk1p2 == 'true' -a $is_ext4 == 'true' ]
then
# DEBUGGING
# Get vars part 1
if [ $debugging == 'true' ]
then
set > /sdcard/vars.1
fi
# END DEBUGGING

# Start defining functions

makedir () {
if [ ! -d $1 ]
then
busybox mkdir -p $1
fi
busybox chmod $2 $1
busybox chown $3:$4 $1
}

# End defining functions

mnt_sd=$( busybox mount | busybox egrep -i '/sdcard' | busybox awk '{print $3}' )
mnt=$( busybox dirname $mnt_sd )
sd_uid=$( busybox ls -ln $mnt_sd | busybox egrep -i "Android" |  busybox awk '{print $3}' )
sd_gid=$( busybox ls -ln $mnt_sd | busybox egrep -i "Android" |  busybox awk '{print $4}' )

blk_ext4=$( busybox ls -lR /dev | busybox egrep -i "mmcblk1p2 ->" | busybox awk '{print $11}' )
blk_data=$( busybox mount | busybox egrep -m 1 '/data' | busybox awk '{print $1}' )
mnt_ext4=$mnt$append_ext4
ext_data=$mnt_ext4$data
ext_android=$ext_data$append_android

mnt_temp=$mnt_ext4$append_temp
temp_android=$mnt_temp$append_media$append_android

datetime=$( busybox date -Iseconds )

sd_android=$mnt_sd$append_android
sd_tweaked=$mnt_sd$append_tweaked
tweaked_logs=$sd_tweaked$append_logs

txt_movethis=$sd_tweaked$append_movethis

makedir $sd_tweaked 775 $sd_uid $sd_gid

data_media=$( busybox dirname $( busybox find /data -type d -follow -name 'Tweaked.Scripts' ) )
data_android=$data_media$append_android

data_uid=$( busybox ls -lnd $data | busybox awk '{print $3}' )
data_gid=$( busybox ls -lnd $data | busybox awk '{print $4}' )
android_uid=$( busybox ls -ln $data_media | busybox egrep -i "Android" | busybox awk '{print $3}' )
android_gid=$( busybox ls -ln $data_media | busybox egrep -i "Android" | busybox awk '{print $4}' )

# DEBUGGING
# Get vars part 2
if [ $debugging == 'true' ]
then
set > /sdcard/vars.2
busybox diff /sdcard/vars.1 /sdcard/vars.2 | busybox grep "+" | busybox egrep -v "@|_=" > /sdcard/vars.txt
fi
# END DEBUGGING

busybox chmod 775 $sd_tweaked
busybox chown  $android_uid:$android_gid $sd_tweaked

makedir $tweaked_logs 775 $sd_uid $sd_gid
echo 'Logging Started' > $tweaked_logs/a2sd-$datetime.log
echo '' >> $tweaked_logs/a2sd-$datetime.log

busybox mount -o remount,rw /

makedir $mnt_ext4 775 $data_uid $data_gid
busybox mount $blk_ext4 $mnt_ext4
sleep 1

makedir $mnt_temp 775 $data_uid $data_gid
busybox mount $blk_data $mnt_temp
sleep 1

makedir $ext_data 775 $data_uid $data_gid
makedir $ext_android 775 $android_uid $android_gid

busybox mount -o bind $ext_android $data_android
sleep 3

busybox mount -o remount,ro /

if [ $moveAndroid == 'true' ]
then
busybox find $temp_android -type f -follow -print > $txt_movethis
fi

if [ $moveAndroid == 'true' ]
then
echo 'Copying files from internal storage to external storage\n' >> $tweaked_logs/a2sd-$datetime.log
while read line
do
source=$line
destappend=$append_A$( echo "$line" | busybox cut -f2-100 -d'A' )
dest=$ext_android/$destappend
destfolder=$( busybox dirname $dest )
if [ ! -f "$dest" ]
then
if [ ! -d "$destfolder" ]
then
busybox mkdir -p "$destfolder"
fi
busybox cp -pdf "$source" "$dest"
if [ -f "$dest" ]
then
echo -e $source'\ncopied to\n'$dest'\n' >> $tweaked_logs/a2sd-$datetime.log
else
echo -e 'Failed to copy: '$source'\n' >> $tweaked_logs/a2sd-$datetime.log
fi
else
echo -e 'Already exists: '$dest'\n' >> $tweaked_logs/a2sd-$datetime.log
fi
if [ $deletepostmove == 'true' ]
then
if [ -f "$dest" ]
then
busybox rm -f "$line"
if [ ! -f "$line" ]
then
echo -e 'deletepostmove = true - Deleted: '$source'\n' >> $tweaked_logs/a2sd-$datetime.log
echo -e '____________________________________________________________ ' >> $tweaked_logs/a2sd-$datetime.log
else
echo -e 'Failed to delete: '$source'\n' >> $tweaked_logs/a2sd-$datetime.log
echo -e '____________________________________________________________ ' >> $tweaked_logs/a2sd-$datetime.log
fi
fi
fi
done < $txt_movethis
busybox rm -f $txt_movethis
busybox chmod -R 775 $ext_android/*
busybox chown -R $android_uid:$android_gid $ext_android/*
fi
busybox umount $mnt_temp
if [ $pruneoldlogs == 'true' ]
then
(( prunehours = ($prunehoursold * 60) ))
find $tweaked_logs -mmin +$prunehours -exec rm {} \;
echo "All logs older than "$prunehoursold" hours old have been deleted"
fi
echo -e '\nEnd of Log' >> $tweaked_logs/a2sd-$datetime.log
fi

Where to find premission? Please advice.

Sent from my GT-N8000 using xda app-developers app
The Following User Says Thank You to andylam16 For This Useful Post: [ View ]
16th September 2012, 06:23 AM   |  #4  
Senior Member
Thanks Meter: 282
 
651 posts
Join Date:Joined: Jan 2012
More
Quote:
Originally Posted by andylam16

Where to find premission? Please advice.

Sent from my GT-N8000 using xda app-developers app

use a root file browser then press and hold on the file, select permissions. Change to: Owner (rwx), group and other (rx)



Sent from my GT-N8013 using Tapatalk 2
The Following User Says Thank You to lm that guy For This Useful Post: [ View ]
16th September 2012, 06:40 AM   |  #5  
kaipro's Avatar
Senior Member
Thanks Meter: 10
 
119 posts
Join Date:Joined: Jan 2008
My device doesn't have intI. D folder in system/Etc
I have to create new folder?
Rename the file without . Txt?

Sent from my GT-N8000 using Tapatalk 2
16th September 2012, 07:03 AM   |  #6  
Junior Member
Thanks Meter: 1
 
24 posts
Join Date:Joined: May 2012
Quote:
Originally Posted by lm that guy

use a root file browser then press and hold on the file, select permissions. Change to: Owner (rwx), group and other (rx)



Sent from my GT-N8013 using Tapatalk 2

Thanks bro, is r = read , w = write , x = ???
Please advice.

Sent from my GT-N8000 using xda app-developers app
16th September 2012, 07:14 AM   |  #7  
Senior Member
Thanks Meter: 282
 
651 posts
Join Date:Joined: Jan 2012
More
Quote:
Originally Posted by andylam16

Thanks bro, is r = read , w = write , x = ???
Please advice.

Sent from my GT-N8000 using xda app-developers app

Execute

Sent from my GT-N8013 using Tapatalk 2
The Following User Says Thank You to lm that guy For This Useful Post: [ View ]
16th September 2012, 07:37 AM   |  #8  
Junior Member
Thanks Meter: 1
 
24 posts
Join Date:Joined: May 2012
Quote:
Originally Posted by lm that guy

Execute

Sent from my GT-N8013 using Tapatalk 2

Got it, thanks!:thumbup:

Sent from my GT-N8000 using xda app-developers app
16th September 2012, 07:45 AM   |  #9  
Junior Member
Thanks Meter: 0
 
14 posts
Join Date:Joined: Jan 2009
Quote:
Originally Posted by kaipro

My device doesn't have intI. D folder in system/Etc
I have to create new folder?
Rename the file without . Txt?

Sent from my GT-N8000 using Tapatalk 2

+1
16th September 2012, 07:59 AM   |  #10  
Senior Member
Thanks Meter: 282
 
651 posts
Join Date:Joined: Jan 2012
More
Quote:
Originally Posted by fauzin

+1

I suggest this thread: http://forum.xda-developers.com/show....php?t=1883125

Sent from my GT-N8013 using Tapatalk 2

Post Reply Subscribe to Thread

Tags
app2ext, app2sd, data2sd, init, script
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Top Threads in Galaxy Note 10.1 Android Development by ThreadRank