Related
I tried to loop mount the file, but mount couldn't identify it?
I want to edit it, to manipulate the sd card OS
instead of the emmc OS. I understood I need
to edit /etc/recovery.fstab to point to the
right partitions.
dmesg output from mount command...
VFS: Can't find a valid FAT filesystem on dev loop3.
FAT: bogus number of FAT structure
VFS: Can't find a valid FAT filesystem on dev loop3.
EXT2-fs (loop3): error: can't find an ext2 filesystem on dev loop3.
EXT3-fs (loop3): error: can't find ext3 filesystem on dev loop3.
r8169 0000:14:00.0: eth0: link up
r8169 0000:14:00.0: eth0: link up
eth0: no IPv6 routers present
FAT: bogus number of FAT structure
VFS: Can't find a valid FAT filesystem on dev loop3.
Click to expand...
Click to collapse
Thanks
fuzzynco said:
I tried to loop mount the file, but mount couldn't identify it?
I want to edit it, to manipulate the sd card OS
instead of the emmc OS. I understood I need
to edit /etc/recovery.fstab to point to the
right partitions.
dmesg output from mount command...
Thanks
Click to expand...
Click to collapse
Just follow the directions on this page HERE because you are going to have to know how to recompile it.
Code:
cd /to/ramdisk/directory/where/uRamdisk/is
dd if=uRamdisk of=ramdisk.cpio.gz bs=64 skip=1
gunzip ramdisk.cpio.gz
cpio -i -F ramdisk.cpio
rm uRamdisk
I have been resisting the urge to flash a custom ROM for a bit, but I really miss having init.d support. So I read a few threads for other phones and rolled my own.
Warnings
I borrowed bits and pieces from various places. If you don't know what init.d is, you probably don't want to do this. If you aren't willing to take responsibility for bricking your tablet, don't do this. Seriously, the risk of bricking is very low, but if you aren't comfortable booting into an adb shell from recovery, maybe this is not for you. Strongly suggest a nandroid backup before you get started so if you totally bork things you can just hit rewind.
Note: The latest CWM may prompt you on a reboot that the ROM may overwrite the bootloader and offer to fix it for you. Don't do that. The init.d hack takes over the bootloader install script, but does not change your bootloader! If you accidentally do let it fix things for you, just rebuild the install-bootloader.sh file. The other steps should be fine.
Prerequisites
First, you need root, busybox, and some sort of terminal (either adb, or some terminal you like using on the tablet).
I have found that I like Busybox Installer (from the market; https://play.google.com/store/apps/details?id=com.jrummy.busybox.installer) but for some reason it doesn't create new symlinks unless you click advanced install.
Let's get to it!
In the shell (don't type # or anything after #):
Code:
su # get root
mount -o remount,rw /system # get access to /system (4.04 seems to mount ro as is usual; seems like the original mounted rw)
which run-parts # if you don't see /system/xbin/run-parts you need to install/reinstall busybox; if it is somewhere else, note it
mkdir /system/etc/init.d
Create a file called sysinit -- we are going to put it in /system/bin. You can edit it in place with vi, mount your tablet and edit it on your computer, or create it on the computer and push it via adb. Whatever.
Here's the file (you do need the # and the things after it in the file!):
Code:
#!/system/bin/sh
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
/system/bin/logwrapper /system/xbin/run-parts /system/etc/init.d
Note that if your run-parts is not in /system/xbin (from the which command) then fix the above to reflect your reality.
In the shell, make it executable
Code:
chmod 755 /system/bin/sysinit
Now go in the init.d directory and create some things you want to run at start up. For example:
Code:
cd /system/etc/init.d
echo '#!/system/bin/sh' >99test # note: you do need the first # in this line but not the 2nd!
echo 'date >>/data/tmp/init.d-log.txt' >>99test
chmod 755 99test
Here's a more practical one (yes, you need the # signs). Name it something like 10diskperf -- don't forget to chmod it.
Code:
#!/system/bin/sh
# Set disk read aheads to 1024
chmod 777 /sys/block/mmcblk0/queue/read_ahead_kb
echo "1024" > /sys/block/mmcblk0/queue/read_ahead_kb
chmod 777 /sys/block/mmcblk1/queue/read_ahead_kb
echo "1024" > /sys/block/mmcblk1/queue/read_ahead_kb
chmod 777 /sys/devices/virtual/bdi/179:0/read_ahead_kb
echo "1024" > /sys/devices/virtual/bdi/179:0/read_ahead_kb
Or here is one to tweak some TCP parameters (25sysctl):
Code:
#!/system/bin/sh
sysctl -w net.core.rmem_max=524288
sysctl -w net.core.wmem_max=524288
sysctl -w net.ipv4.tcp_rmem=6144 87380 524288
sysctl -w net.ipv4.tcp_wmem=6144 87380 524288
Whatever files you put in, you need to remember to make them executable (chmod 755).
Finally, you need to kick it all off at start up. The hack for that is we are going to create /system/etc/install-recovery.sh which apparently runs on each boot.
Code:
cd /system/etc
echo '#!/system/bin/sh' >install-recovery.sh
echo '/system/bin/sysinit' >>install-recovery.sh
chmod 755 install-recovery.sh
Tips and troubleshooting
If you are too lazy to cut and paste I have the files here (View attachment init.d-support.zip) that you can just move to the right places and change permission. If you are really lazy there is lightly tested install script below.
I like to try running the whole thing before a reboot to see if I get any errors:
Code:
/system/etc/install-recovery.sh
I'd suggest putting the 99test file in first. Verify that you get the expected file in /data/tmp and then reboot and check again. Then you can remove 99test.
Same goes for adding new scripts. Try running them from the shell to see if they throw errors before you reboot!
If you have trouble, see if this looks right:
Code:
ls -ld /system/etc/install-recovery.sh /system/bin/sysinit /system/etc/init.d /system/xbin/run-parts
-rwxr-xr-x root root 39 2012-07-14 10:00 install-recovery.sh
-rwxr-xr-x root root 140 2012-07-14 10:01 sysinit
drwxrwxrwx root root 2012-07-14 10:10 init.d
lrwxrwxrwx root root 2012-07-14 09:55 run-parts -> /system/xbin/busybox
For the brave
The install-init.d zip file (View attachment install-init.d.zip) contains a lightly tested script that SHOULD do the install steps for you.
Send the file to your android to someplace that can execute code (e.g., /system/xbin; I had to use adb to put it on the sdcard and then move it to /systemxbin in the shell since I don't have the adb root kernel installed).
Code:
cd /system/xbin # or wherever you have it
chmod 755 install-init.d
./install-init.d
It performs rude checks to see if init.d exists, and tries to handle moving or missing busybox. It only installs 99test as a script.
Let me know if this works or doesn't work for you.
For the extra brave: There is no reason this should only work on the Samsung. This ought to work on pretty much most stock ROMs as long as they execute install-recovery.sh on start up.
Scripts
What do you put in your init.d? If you post anything cool I'll put it up here in the op.
One that gave me some real gains in I/O performance required a new version of the tune2fs executable. By default, it is part of busybox but the busybox one only has a few simple options. I've included a stand alone version and the script 10disktune here View attachment disktune.zip. Unpack the zip and put the 10disktune in /system/etc/init.d (don't forget to chmod) and put tune2fs in /system/bin (chmod that too). Note that busybox has one in /system/xbin but the script specifically calls out the one in /system/bin.
Here's one that will zipalign your apks on each boot
Code:
#!/system/bin/sh
for apk in /data/app/*.apk ; do
zipalign -c 4 $apk
ZCHECK=$?
if [ $ZCHECK -eq 1 ]; then
zipalign -f 4 $apk /cache/$(basename $apk)
if [ -e /cache/$(basename $apk) ]; then
cp -p -f /cache/$(basename $apk) $apk
rm /cache/$(basename $apk)
fi;
fi;
done;
Fin
Corrections welcome. I considered using exec or . to load some of this into one shell but given that it runs once at startup, I figured it is fine as is.
All files for reference
View attachment init.d-support.zip
View attachment install-init.d.zip
View attachment disktune.zip
Great guide, gonna try it tonight.
Sent from a GNote, hell yeah!
SirRhor said:
Great guide, gonna try it tonight.
Sent from a GNote, hell yeah!
Click to expand...
Click to collapse
I'm curious how it went. If you ran into any issues, let me know so I can update the op. Thanks!
Hmm did anyone get this to work?
wd5gnr said:
Hmm did anyone get this to work?
Click to expand...
Click to collapse
I did it on my Galaxy Nexus.
It works great, I had a bit of problem with the sysinit file, but when I downloaded your zip file and used your sysinit, it worked, so it must be a problem from my side
Thanks for this, I can finally use "Odex Me"
aavan said:
I did it on my Galaxy Nexus.
It works great, I had a bit of problem with the sysinit file, but when I downloaded your zip file and used your sysinit, it worked, so it must be a problem from my side
Thanks for this, I can finally use "Odex Me"
Click to expand...
Click to collapse
Great, just wanted to be sure I hadn't made any typos/errors in the guide.
A lot of init.d files collected here: http://forum.xda-developers.com/showthread.php?t=1227269
Also build.prop things, etc.
Thanks, I use your guide and worksperfect for my RK3066 devices. Very simple to understand all steps and what we are doing to our system, perfect for me. Thanks again dude
Melch1zedeK said:
Thanks, I use your guide and worksperfect for my RK3066 devices. Very simple to understand all steps and what we are doing to our system, perfect for me. Thanks again dude
Click to expand...
Click to collapse
Glad to help!
What is thhe utility of this?
moliverac8 said:
What is thhe utility of this?
Click to expand...
Click to collapse
Init.d is how Linux and many Android (which is kind of Linux, after all) systems manage executing commands on boot up.
The /etc/init.d files run in numerical order as root and you can do things like change system settings, manipulate the file system, etc.
See the init.d section linked below for some ideas.
http://forum.xda-developers.com/showthread.php?t=1227269
Question? what is the difference in this method and running a script?
wd5gnr said:
Init.d is how Linux and many Android (which is kind of Linux, after all) systems manage executing commands on boot up.
The /etc/init.d files run in numerical order as root and you can do things like change system settings, manipulate the file system, etc.
See the init.d section linked below for some ideas.
http://forum.xda-developers.com/showthread.php?t=1227269
Click to expand...
Click to collapse
I use the "swap memory script" and was wondering if it would also work this way with the init.d If so would there be any benefit this way over the current way of running it one way or the other? One drawback I see running the script as is is that I have to wait once the system has fully booted until the script has run and I see the Smanager screen to let me know that my memory has been remounted.
Thanks for the info and the learning process.
Here is the script and the link.
http://forum.xda-developers.com/showthread.php?t=1961097
Code:
sleep 5
mount -o remount,rw /
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
sleep 5
mount -o bind /data/media /mnt/extSdCard
As long as the device is ready to mount at boot time and doesn't get remounted, ought to work. Backup and try it
External memory wasn't ready
wd5gnr said:
As long as the device is ready to mount at boot time and doesn't get remounted, ought to work. Backup and try it
Click to expand...
Click to collapse
Thanks for the guide, but I think that the external memory was not ready to be mounted at that time. it didn't see the card till after boot. It was worth a shot, Reverted back to the script in /data and all worked again,
Note: I didn't find /system/xbin/run-parts however, I did find /system/bin/run-parts and changed the path to reflect that, I don't think this was an issue but I'm not 100% sure.
Not critical but I'd like to know how to do this. Mounted as /dev/block/loop0 /cust
#mount -o remount,rw /dev/block/loop0 /cust fails. A loop is really a virtual or pseudo device. Looks like this was done in the Movida Gingerbread mod with a "losetup" to prevent hacking.
Any ideas? Anyone?
TIA
OOPS should have mentioned that any effort to disassociate the device "losetup -d" yields a "Device or resource busy" which, I suspect, is the result of it being attached to a block device. Ugh!
eyeconic said:
Not critical but I'd like to know how to do this. Mounted as /dev/block/loop0 /cust
#mount -o remount,rw /dev/block/loop0 /cust fails. A loop is really a virtual or pseudo device. Looks like this was done in the Movida Gingerbread mod with a "losetup" to prevent hacking.
Any ideas? Anyone?
TIA
OOPS should have mentioned that any effort to disassociate the device "losetup -d" yields a "Device or resource busy" which, I suspect, is the result of it being attached to a block device. Ugh!
Click to expand...
Click to collapse
Make sure you get some help from here:
http://forum.xda-developers.com/showthread.php?t=1556019
Hi guys,
A friend of mine recently rooted his I9505 and tried to install a custom Rom.
He made an Nandroid backup of his Stock rom but TWRP wasn't able to mount /efs.
So he ignored it and made a Backup without checking /efs.
As he installed a custom Rom he did something wrong and wasn't able to boot system.
So he went back to stock rom.
The Problem now is that his /efs folder is empty and he has no lockscreen and powermenu.
But the strange thing is that he has no problems with IMEI or Baseband.
Is it somehow possible to get his /efs files back?
Or at least get his lockscreen an powermenu back working?
He would be even happy with and alternative lockscreen and powermenu. maybe a app?
I hope someone can help us
Thank you very much in advance for your answers
SOLVED:
I tried many different methods so i don't really know which one worked.
But here are several methods you can try if you have the same problem:
Method 1:
Code:
su
busybox mount /efs
echo -n ON > /efs/FactoryApp/keystr
echo -n ON > /efs/FactoryApp/factorymode
reboot
Method 2:
Code:
su
mke2fs /dev/block/mmcblk0p10
mount -w -t ext4 /dev/block/mmcblk0p10
echo -n ON > /efs/FactoryApp/keystr
echo -n ON > /efs/FactoryApp/factorymode
reboot
Method 3:
Code:
su
mount -w -t ext4 /dev/block/mmcblk0p10
echo -n ON > /efs/FactoryApp/keystr
echo -n ON > /efs/FactoryApp/factorymode
reboot
Try them all and one of them should work
Try a factory reset. If that doesn't work odin to stock should get you fixed up
Sent from my Nexus 10
9233 said:
Hi guys,
A friend of mine recently rooted his I9505 and tried to install a custom Rom.
He made an Nandroid backup of his Stock rom but TWRP wasn't able to mount /efs.
So he ignored it and made a Backup without checking /efs.
As he installed a custom Rom he did something wrong and wasn't able to boot system.
So he went back to stock rom.
The Problem now is that his /efs folder is empty and he has no lockscreen and powermenu.
But the strange thing is that he has no problems with IMEI or Baseband.
Is it somehow possible to get his /efs files back?
Or at least get his lockscreen an powermenu back working?
He would be even happy with and alternative lockscreen and powermenu. maybe a app?
I hope someone can help us
Thank you very much in advance for your answers
Click to expand...
Click to collapse
efs is not empty. you can not see inside because it is not mounted.
root the device, install terminal emulator. type:
Code:
su
mount /efs
mount -o remount,rw /efs
echo -n ON > /efs/FactoryApp/keystr
echo -n ON > /efs/FactoryApp/factorymode
reboot
samersh72 said:
efs is not empty. you can not see inside because it is not mounted.
root the device, install terminal emulator. type:
Code:
su
mount /efs
mount -o remount,rw /efs
echo -n ON > /efs/FactoryApp/keystr
echo -n ON > /efs/FactoryApp/factorymode
reboot
Click to expand...
Click to collapse
mount /efs is not working. I'm getting this Error Message:
http://dl.xda-developers.com/attachdl/8c9fb4bc3dc504c869fd2aebc109f0df/523b4bef/2/2/6/8/9/0/0/IMG-20130919-WA0003.jpg
9233 said:
mount /efs is not working. I'm getting this Error Message:
http://dl.xda-developers.com/attachdl/8c9fb4bc3dc504c869fd2aebc109f0df/523b4bef/2/2/6/8/9/0/0/IMG-20130919-WA0003.jpg
Click to expand...
Click to collapse
try without mounting: "su" then the "echo"
if not try mounting with these commands:
Code:
su
mke2fs /dev/block/mmcblk0p10
mount -w -t ext4 /dev/block/mmcblk0p10
reboot
if not, ignore mke2fs...... line
samersh72 said:
try without mounting: "su" then the "echo"
if not try mounting with these commands:
Code:
su
mke2fs /dev/block/mmcblk0p10
mount -w -t ext4 /dev/block/mmcblk0p10
reboot
if not, ignore mke2fs...... line
Click to expand...
Click to collapse
Thank you.
I don't have the phone here so i'll try it tomorrow and see what happens.
Your mount command didn't work because you are using the /system/bin/mount that is a part of Android. This version must get the device name and the mount point, you cannot omit one of them (with busybox mount you can omit one or the other).
I had the EXACT problem and already started a thread.
There was a lot of help given to me, try reading through my thread mate.
http://forum.xda-developers.com/showthread.php?t=2388663
In the end it turned out my EFS partition was so corrupt it had to go to service centre.
Sent from my GT-I9505 using XDA Premium HD app
Hi guys,
I tried it with the following and it works!!!
Code:
su
busybox mount /efs
echo -n ON > /efs/FactoryApp/keystr
echo -n ON > /efs/FactoryApp/factorymode
reboot
Thank you all for your Help and have a nice day!
I just downgraded my Verizon G2 from 12b to 11a with this guide: (because of the push email issue)
http://forum.xda-developers.com/showthread.php?t=2448960
What I didn't realize was it would erase the data partition and now all my pictures are gone (idiot, I know)
Recovery software wont work because the G2 is only listed as a MTP device and they software doesn't see it.
I tried using this guide here, http://forum.xda-developers.com/showthread.php?t=1994705, which has instructions for the Galaxy Nexus which has the same MTP only issue. It basically dumps the partition as a .raw file to the computer through adb and then you can recover from that. I'm having a problem with this command "/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0p12" mmcblk0p12 is the block on the galaxy nexus where the userdata was stored. I thought I had found the G2's block at "/dev/block/platform/msmsdcc.1/by-name/userdata" but the command doesn't work
Does anyone have any idea what the block path really is or an alternative to recover my lost stuff? Thanks.
Also tried to flash TWRP and then mount from there so software will see it but mounting does nothing
indigoataxia said:
I just downgraded my Verizon G2 from 12b to 11a with this guide: (because of the push email issue)
http://forum.xda-developers.com/showthread.php?t=2448960
What I didn't realize was it would erase the data partition and now all my pictures are gone (idiot, I know)
Recovery software wont work because the G2 is only listed as a MTP device and they software doesn't see it.
I tried using this guide here, http://forum.xda-developers.com/showthread.php?t=1994705, which has instructions for the Galaxy Nexus which has the same MTP only issue. It basically dumps the partition as a .raw file to the computer through adb and then you can recover from that. I'm having a problem with this command "/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0p12" mmcblk0p12 is the block on the galaxy nexus where the userdata was stored. I thought I had found the G2's block at "/dev/block/platform/msmsdcc.1/by-name/userdata" but the command doesn't work
Does anyone have any idea what the block path really is or an alternative to recover my lost stuff? Thanks.
Click to expand...
Click to collapse
Hi there,
You should identify which partition is your data partition (link in step 1 of the guide). I did it, it shows me mmcblk0p35 (i have D802). But I had another problem.
I have rooted stock rom (D80210f-EUR-XX) with stock recovery. After modyfying /system/build.prop i got bootloop. the only thing I could do was to enter stock recovery and "Reset to defaults", so I did, but I lost all my data, messages, settings etc.
I tried to recover data partition using the same guide, but i'm stuck at step 6. It shows me speed of 0 B/s and creates file of 0B nomatter how long I wait.
Can anybody help please?
indigoataxia said:
I just downgraded my Verizon G2 from 12b to 11a with this guide: (because of the push email issue)
http://forum.xda-developers.com/showthread.php?t=2448960
What I didn't realize was it would erase the data partition and now all my pictures are gone (idiot, I know)
Recovery software wont work because the G2 is only listed as a MTP device and they software doesn't see it.
I tried using this guide here, http://forum.xda-developers.com/showthread.php?t=1994705, which has instructions for the Galaxy Nexus which has the same MTP only issue. It basically dumps the partition as a .raw file to the computer through adb and then you can recover from that. I'm having a problem with this command "/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0p12" mmcblk0p12 is the block on the galaxy nexus where the userdata was stored. I thought I had found the G2's block at "/dev/block/platform/msmsdcc.1/by-name/userdata" but the command doesn't work
Does anyone have any idea what the block path really is or an alternative to recover my lost stuff? Thanks.
Click to expand...
Click to collapse
I'have your same issue (LG G2 D802)
I tried with:
/system/xbin/busybox ncat -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/platform/msm_sdcc.1/mmcblk0p35
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/platform/msm_sdcc.1/mmcblk0p35
/system/xbin/busybox ncat -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0p35
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0p35
but nothing happen!
did you solve? if yes, how???
tetractius said:
did you solve? if yes, how???
Click to expand...
Click to collapse
No, never was able to recover.
Sorry for reviving a dead thread.
Has anyone been able to successfully recover their deep formatted drive? Like the guide mentioned does? I'm currently trying, but no success..