[Q] How to add fsck script at boot before mount? - Android Q&A, Help & Troubleshooting

I was wonder how to add file system check every boot since my data partition often unclean. I had try to add line in init.rc before mount and static e2fsck binary to /sbin.
Like this one: "e2fsck -fy /dev/block/data" but I think it has no effect since my tablet failed to boot. I must go to recovery and do fsck via adb shell. It is annoying. I want to make it automatically. Please help me.
Thank you..

juliantito said:
I was wonder how to add file system check every boot since my data partition often unclean. I had try to add line in init.rc before mount and static e2fsck binary to /sbin.
Like this one: "e2fsck -fy /dev/block/data" but I think it has no effect since my tablet failed to boot. I must go to recovery and do fsck via adb shell. It is annoying. I want to make it automatically..
Click to expand...
Click to collapse
Assuming you know that you need to repack your boot image to change init.rc and you did that, try prefixing your command in init.rc with "exec".

I want to run E2FSCK on every boot and repair the disk if there is some problem on Odroid N2 Android. I have used the tune2fs -c 1 command to check the disks on every boot.I want to confirm whether this command will repair the problem (if detected) as well.
I think that in Android Source code they have made sure that the disk will be checked however, I don't know whether they fix the disk as well. Please confirm this as well.
In Odroid N2 Android image, the directory /etc/default/rcS is missing, so I can't make changes to it. I can't run a script on each boot because the disks are mounted by then and I can't umount them because the disk is being used.
If anyone has some solution, I will really appreciate your help.

Related

Can someone get....

I'm in need of the stock kernal image and the clockwork recovery.zip file thingy.
NOT the zip verson of the kernal installer.
My situation, I was stupid and installed the voodoo thing, then for someone reason I tried to flash Froyo over Bionix with the voodoo kernal thing. It didnt work so I decided to deleted everything in clockwork. Then I was like omg I cant use clock work or boot my device (stuck on vibrant screen but I can get to odin and the stock recovery).
Later I read that voodoo stopped odin on the cm forum so I couldnt use it. Thats what some dude named viralblack said and theyre a mod so I'm guessing its true.
So my last 4 ideas are:
1)Try and flash a new Kernal Image in adb and hope it gets odin to work
2)Push the cw recovery to the phone
3)Run to the library and hope my computer is the problem
4)Pretend vb is wrong and keep trying the download screen thing
Sorry if this is in the wrong section but I guessed it could go here because I need some files....
flash Eugene's froyo that does not brick via Odin. he has instructions in his thread.
...and it's kernel NOT kernal people
Sent from my SGH-T959 using XDA App
kernel, sorry I guess?
Anyhow what if my pc doesnt notice the phone when its in download mode
RPGbig said:
kernel, sorry I guess?
Anyhow what if my pc doesnt notice the phone when its in download mode
Click to expand...
Click to collapse
Download the Samsung drivers, download ODIN, and then just follow the directions in the ODIN thread
Wow
You guys have nothing better to do than flame a newb?
If you spent half the time helping instead of flaming there MIGHT just be some people with a bit more knowledge than they had yesterday.
If you cant say something constructive/helpful --Why bother!
fcbarca17 said:
Download the Samsung drivers, download ODIN, and then just follow the directions in the ODIN thread
Click to expand...
Click to collapse
Push doesnt seem to work. Permission denied or something rather.
As I said in my first odin wont work, yes I did those things like 10 or so times.
You cant expect a newborn to know how to wipe themselves.
RPGbig said:
Push doesnt seem to work. Permission denied or something rather.
As I said in my first odin wont work, yes I did those things like 10 or so times.
You cant expect a newborn to know how to wipe themselves.
Click to expand...
Click to collapse
What do you mean "push doesn't work". Are you trying to push a file via adb? If you are getting permission denied errors, that is because you either do not have root access/permissions to write to the location you are trying to push to, or because the location you are trying to push to is mounted as read-only.
If you indeed have the necessary permissions (i.e., root), then `adb remount` will re-mount the device's partitions as read-write. If adb does not allow you remount the partitions in this manner, it is because you do not have the permissions to perform the duty.
If anyone is going to give any further help, though, you need to give us a bit more information. Can you access the device via adb? Can you boot into either download or recovery? (If you have adb access, you can usually boot into either of those with `adb shell reboot download` or `adb shell reboot recovery`.) Have you attempted to flash anything via Odin? What is the exact wording of the error messages you are receiving?
If you don't provide information, you won't receive any help. Vague responses such as "Permission denied or something rather" are useless because something rather can be any number of things. Also, attempting things without reading all of the information available beforehand is another way to ensure that people will be hesitant to give you help; this forum already has threads about where to locate the stock kernel image.
Also, instead of positing what-ifs such as "Anyhow what if my pc doesnt notice the phone when its in download mode", why don't you try putting your device into download mode and attaching it to a Windows computer with the proper drivers installed and Odin running, and then ask what the next step might be after you have attempted to do something?
People get angry about members flaming newbies for posting mistakes and asking for help, but if newbies looked for answers and read all of the information available before doing something they didn't understand (or only partially understood), then this wouldn't be a problem in the first place.
rpcameron said:
What do you mean "push doesn't work". Are you trying to push a file via adb? If you are getting permission denied errors, that is because you either do not have root access/permissions to write to the location you are trying to push to, or because the location you are trying to push to is mounted as read-only.
If you indeed have the necessary permissions (i.e., root), then `adb remount` will re-mount the device's partitions as read-write. If adb does not allow you remount the partitions in this manner, it is because you do not have the permissions to perform the duty.
Click to expand...
Click to collapse
Goalush Clockwork Recovery so I can flash Bionix.
What Happens:
1. Go into recovery
2. Connect to the phone with adb
3. I type 'adb push c:\update.zip /sdcard'
4. It says 'failed to copy `c:\update.zip` to `/sdcard/update.zip` : Permission denied
I type 'adb remount' its says ' remount failed: No such file or directory
rpcameron said:
If anyone is going to give any further help, though, you need to give us a bit more information. Can you access the device via adb? Can you boot into either download or recovery? (If you have adb access, you can usually boot into either of those with `adb shell reboot download` or `adb shell reboot recovery`.) Have you attempted to flash anything via Odin? What is the exact wording of the error messages you are receiving?
Click to expand...
Click to collapse
Yes, I can get into both.
I've download Froyo that doesnt brick. Unziped and got had the drivers from sansumg set up.
I usually type 'adb reboot download' to get into download mode for odin. Then when the phone shows the android guy with the shovel. Then my computer says that an unrecognized usb device has been connect.
This time I type 'adb shell reboot recovery' and its said
'-exce `/system/bin/sh` failed: No such file or directory (2) -'
rpcameron said:
If you don't provide information, you won't receive any help. Vague responses such as "Permission denied or something rather" are useless because something rather can be any number of things. Also, attempting things without reading all of the information available beforehand is another way to ensure that people will be hesitant to give you help; this forum already has threads about where to locate the stock kernel image.
Also, instead of positing what-ifs such as "Anyhow what if my pc doesnt notice the phone when its in download mode", why don't you try putting your device into download mode and attaching it to a Windows computer with the proper drivers installed and Odin running, and then ask what the next step might be after you have attempted to do something?
People get angry about members flaming newbies for posting mistakes and asking for help, but if newbies looked for answers and read all of the information available before doing something they didn't understand (or only partially understood), then this wouldn't be a problem in the first place.
Click to expand...
Click to collapse
RPGbig said:
Goalush Clockwork Recovery so I can flash Bionix.
What Happens:
1. Go into recovery
2. Connect to the phone with adb
3. I type 'adb push c:\update.zip /sdcard'
4. It says 'failed to copy `c:\update.zip` to `/sdcard/update.zip` : Permission denied
Click to expand...
Click to collapse
You have to be rooted.. But why would you even take the hard way to use clockwork? Just download it from the market..?
I have odin with all the files that will get u to stock of ur phone. Also the froyo files does not brick. So now i exactly dont know what u need. go cows
I messed up my phone and its stuck in a bootloop. I want to put that recovery on my phone so I can flash a new rom.
RPGbig said:
I messed up my phone and its stuck in a bootloop. I want to put that recovery on my phone so I can flash a new rom.
Click to expand...
Click to collapse
If your phone is stuck in a bootloop you need to flash your phone with odin
RPGbig said:
Goalush Clockwork Recovery so I can flash Bionix.
What Happens:
1. Go into recovery
2. Connect to the phone with adb
3. I type 'adb push c:\update.zip /sdcard'
4. It says 'failed to copy `c:\update.zip` to `/sdcard/update.zip` : Permission denied
I type 'adb remount' its says ' remount failed: No such file or directory
Click to expand...
Click to collapse
OK, if `adb remount` isn't working properly, then you have to manually instruct the system to remount the system partition as read-write. This is a little different from other Android devices, because Samsung insists on using their screwy RFS. On my device, the system partition resides at /dev/block/st19. If you can get an adb shell session, opened, you can verify it by running `mount`, and seeing which /dev node is assigned to /system. Then, manually remount the system partition with `mount -o remount,rw -t rfs /dev/block/st19 /system`; this must be done as root.
It does seem a bit odd that you are getting a permission denied error on /sdcard. Are you sure that /sdcard is mounted? You can verify the same way you check what /dev node holds you system partition. On my Vibrant, /sdcard is the mount point for /dev/block//vold/179:1 (yes, that is two slashes after block). So, the command to mount the internal SD card is `mount -o remount,rw -t vfat /dev/block//vold/179:1 /sdcard`.
Now those commands should ensure that you have both your system partition and SD card mounted as read-write. Now you can copy over the update.zip that contains ClockworkMod recovery to the root of your SD card (/sdcard) with `adb push drive:\path\to\recovery.zip /sdcard/update.zip`. I recommend specifying a destination filename for update.zip. Also, sometimes an adb push command requires the trailing / of a directory.
RPGbig said:
Yes, I can get into both.
I've download Froyo that doesnt brick. Unziped and got had the drivers from sansumg set up.
I usually type 'adb reboot download' to get into download mode for odin. Then when the phone shows the android guy with the shovel. Then my computer says that an unrecognized usb device has been connect.
This time I type 'adb shell reboot recovery' and its said
'-exce `/system/bin/sh` failed: No such file or directory (2) -'
Click to expand...
Click to collapse
This last statement looks like either your system partition is not mounted, or that it does not have a shell installed. From an adb shell session, check the /system/bin directory and see if there is indeed a shell binary there (either sh itself, or sh linked to another shell such as bash). If there is no /system, then it means that your system partition is not mounted, and you can follow the steps I previously mentioned to mount the system partition.
RPGbig said:
I messed up my phone and its stuck in a bootloop. I want to put that recovery on my phone so I can flash a new rom.
Click to expand...
Click to collapse
Can you boot into recovery using the VOL_DN and POWER method, or does the adb daemon ever come online during the bootloop? If so, then either boot into recovery from a powered-off state, or use the adb shell to boot it into recovery.
http://forum.xda-developers.com/showthread.php?t=810130
rpcameron said:
OK, if `adb remount` isn't working properly, then you have to manually instruct the system to remount the system partition as read-write. This is a little different from other Android devices, because Samsung insists on using their screwy RFS. On my device, the system partition resides at /dev/block/st19. If you can get an adb shell session, opened, you can verify it by running `mount`, and seeing which /dev node is assigned to /system. Then, manually remount the system partition with `mount -o remount,rw -t rfs /dev/block/st19 /system`; this must be done as root.
It does seem a bit odd that you are getting a permission denied error on /sdcard. Are you sure that /sdcard is mounted? You can verify the same way you check what /dev node holds you system partition. On my Vibrant, /sdcard is the mount point for /dev/block//vold/179:1 (yes, that is two slashes after block). So, the command to mount the internal SD card is `mount -o remount,rw -t vfat /dev/block//vold/179:1 /sdcard`.
Now those commands should ensure that you have both your system partition and SD card mounted as read-write. Now you can copy over the update.zip that contains ClockworkMod recovery to the root of your SD card (/sdcard) with `adb push drive:\path\to\recovery.zip /sdcard/update.zip`. I recommend specifying a destination filename for update.zip. Also, sometimes an adb push command requires the trailing / of a directory.
This last statement looks like either your system partition is not mounted, or that it does not have a shell installed. From an adb shell session, check the /system/bin directory and see if there is indeed a shell binary there (either sh itself, or sh linked to another shell such as bash). If there is no /system, then it means that your system partition is not mounted, and you can follow the steps I previously mentioned to mount the system partition.
Click to expand...
Click to collapse
I tried 'adb root' and then it said 'adbd cannot run as root in production builds'
By shell session do you mean 'adb shell'? No, I dont believe that works because I get 'adbd cannot run as root in production builds'
When you mean 'shell installed' you do I have it installed on the phone? If it isnt is there anyway I could do it now?
`adb push drive:\path\to\recovery.zip /sdcard/update.zip` didnt work and gave me 'c:\update.zip' to '/sdcard/update.zip': Permission denied
Can I flash /system via my pc onto my phone? or Use the external sdcard instead of the internal?
Dude, if your phone is stuck in a bootloop, you HAVE TO FLASH IT VIA ODIN. There's no other work-around.
RPGbig said:
I tried 'adb root' and then it said 'adbd cannot run as root in production builds'
By shell session do you mean 'adb shell'? No, I dont believe that works because I get 'adbd cannot run as root in production builds'
When you mean 'shell installed' you do I have it installed on the phone? If it isnt is there anyway I could do it now?
`adb push drive:\path\to\recovery.zip /sdcard/update.zip` didnt work and gave me 'c:\update.zip' to '/sdcard/update.zip': Permission denied
Can I flash /system via my pc onto my phone? or Use the external sdcard instead of the internal?
Click to expand...
Click to collapse
Why did you try `adb root`? I don't quite understand that.
A shell session would be `adb shell`, yes. On your computer's command line, invoke `adb shell`. You are now in a shell session. What does the prompt look like? Is it "#" or "$". If it is a hash, then you have root access via adb. If it is a dollar sign, then you do not have root access; try running `su` from within the shell session. If the prompt does not change to a hash, then you are stuck for the moment, because you do not have root access via adb, and therefore nearly all of the adb commands will not work.
By "shell installed" I was referring to a shell interpreter installed on your handset. bash is the most commonly installed Linux shell, and sh is usually just a pointer to bash. If your handset does not have either /system/bin/sh or /system/bin/bash (or anything similar), then you have an incomplete system, and it got messed up along the way with something you did.
But, since it seems that you cannot gain root access through adb, and therefore cannot (re)mount your partitions, you are basically limited in your options. All you can really do is put your phone in download mode, and use Odin to reflash a complete system (including a kernel image). I would also recommend that you use the repartition option in Odin to make sure that your partitions are reformatted and you are essentially left with a wiped and clean handest to start with.
(Lack of root access via adb has severely limited your options. You are basically left with Odin as your only avenue of recourse, unless you are willing to disassemble your device to get to the internal SD card.)
Have you opened yours? Is it an actual (micro) sdcard that can be taken out like the external one?
I typed 'adb root because typing 'adb' showed this
adb root - restarts the adbd daemon with root permissions
so I guess that was what you ment by root.
When I type 'adb shell' all it gave was - exec '/system/bin/sh' failed: No such file or directory (2) -
You need to stop trying to do it the hard way and just use Odin. If your phone is not being recognized then you need the correct drivers. Once installed, you should be back up and running within 5 minutes. Stop lollygagging and fix your phone already.

[Q] No media audio, system or notification sounds work.

Hi guys,
I don't know what piece of info is relevant or not, so I will outline as much as I can.
I was running the latest stable Slimbean with stock kernel, a couple of weeks ago my external sdcard stopped being recognized and would not mount. In Clockworkmod it would show an error mounting what I later learned were 3 different partitions.
Yesterday I installed freegee to try and restore my original partitions, but it would give me an error that my device was not supported. So I uninstalled freegee. The next time I rebooted my phone, it would get stuck on a black screen after the LG logo. I was able to get into recovery and download mode, so I tried the original teenybin with lgpnst and I could not get into recovery, only the LG logo. I then tried the alternate teenybin that boots up with the Google logo and I was able to get into TWRP.
I then sideloaded Houston's aosp KitKat and was able to successfully boot up the phone. I now have no system sounds, no music or media sounds, through the speaker or the headphone jack. Phone audio works through earpiece, speaker and headphones.
Tried wiping and reflashing. I don't know what else to do.
Any ideas would be appreciated.
Thanks.
I also noticed that sensors were not working.
I flashed the W84C27MO84.zip hybrid modem.
This solved the problem with sounds and audio not working and fixed the sensors.
Post your partition table here!!!
Enter in CWM Recovery, connect your phone to computer, open terminal in administrator mode. open adb shell and run this command.
parted /dev/block/mmcblk0
press P and put your result partition screenshot here.
XDFernando said:
Post your partition table here!!!
Enter in CWM Recovery, connect your phone to computer, open terminal in administrator mode. open adb shell and run this command.
parted /dev/block/mmcblk0
press P and put your result partition screenshot here.
Click to expand...
Click to collapse
I wasn't able to do it exactly as you described, but I think I got what you asked for. Hope it helps.
Thanks,
Im so sorry my steps was with Special CWM.
Try this 3 steps on ADB shell.
Code:
dd if=/dev/block/mmcblk0p17 of=/sdcard/mmcblk0p17.bak
mke2fs -T ext4 /dev/block/mmcblk0p17
reboot
good luck!!
XDFernando said:
Im so sorry my steps was with Special CWM.
Try this 3 steps on ADB shell.
Code:
dd if=/dev/block/mmcblk0p17 of=/sdcard/mmcblk0p17.bak
mke2fs -T ext4 /dev/block/mmcblk0p17
reboot
good luck!!
Click to expand...
Click to collapse
Thank you for the response.
What exactly will this do?
I ran what you suggested.
I received "Not enough space to build proposed file system while setting up superblock"
How much free space is required? I have almost 2gigs free
you need to do separate steps. One line is one command. Enter every one line.
And Dont copy paste i see another extra simbols
XDFernando said:
you need to do separate steps. One line is one command. Enter every one line.
And Dont copy paste i see another extra simbols
Click to expand...
Click to collapse
Hello,
Thank you for your responses.
I tried doing it again, one line at a time, but still got the same message after the second line.
Try add -F to the second line like this:
mke2fs -F -T ext4 /dev/block/mmcblk0p17
XDFernando said:
Try add -F to the second line like this:
mke2fs -F -T ext4 /dev/block/mmcblk0p17
Click to expand...
Click to collapse
Hi Fernando,
I tried again with the -F added, but I received the same message about "not enough space..."

/system won't stay mounted as rw

Hello all,
I have been trying to gain root on a Android 4.0.4 device and was able to, but I can't seem to keep system rw long term.
I run the following command
mount -o remount,rw /system
or
adb remount (from a PC)
the mount command will then show that system is in rw mode. However, if I attempt to copy any data into /system, the first file copy fails and the system then reports read only. To make things even more odd, commands like chmod on a file in /system work just fine.
It seems to me that there is something that detects something writing to /system, and then forces the mount back to ro.
Does anyone have any ideas about this? Is this a common technique manufactures use?
The closest thing I could find on XDA is a reference to Sony Xperia devices having a watchdog service that doesn't something like this, but this device is a Kenwood Head unit and not a Sony device.
Thanks!
chris.davis925 said:
Hello all,
I have been trying to gain root on a Android 4.0.4 device and was able to, but I can't seem to keep system rw long term.
I run the following command
mount -o remount,rw /system
or
adb remount (from a PC)
the mount command will then show that system is in rw mode. However, if I attempt to copy any data into /system, the first file copy fails and the system then reports read only. To make things even more odd, commands like chmod on a file in /system work just fine.
It seems to me that there is something that detects something writing to /system, and then forces the mount back to ro.
Does anyone have any ideas about this? Is this a common technique manufactures use?
The closest thing I could find on XDA is a reference to Sony Xperia devices having a watchdog service that doesn't something like this, but this device is a Kenwood Head unit and not a Sony device.
Thanks!
Click to expand...
Click to collapse
I would think that you might need to run a script to remount on boot perhaps, such as one along this idea http://www.3c71.com/android/?q=node/466. Like via init.d or if that isn't possible on this then maybe something like this could do it http://forum.xda-developers.com/showthread.php?t=2378274 ?
Just spit balling ideas.
Correct me if I am wrong, but it seems to me that I wouldn't be able to do those options since system doesn't actually stay rw?
Really depends on the phone. Sometimes you can slip a script in during boot that will keep the system open. Sometimes you need to have a special module too such as this: http://forum.xda-developers.com/showthread.php?t=2230341 Sometimes the kernel doesn't allow it. I would think on 4.0.4 it shouldn't be near as hard as some of the newer JB and KK things. What do you have?
It is the Kenwood DNN990HD running Android 4.0.4.
I will try and run the binary tool you linked.
Thanks!

irulu 10.1 root/remount problems solved

I own an irulu K1001L1 10.1 (build number A20_K1001_K1001L1.20130713), a cheap one.
Many people complain about "partial rooting" and being unable to remount system in rw mode. Clueless as I was, I had tried several times with Uberizer, z4root and SRSroot, to no avail (the problem is not in the root, in my tablet su came by default in xbin directory).
D_rex (http://forum.xda-developers.com/show...2606510&page=2) found an effective solution which also helped in my situation: I think my tablet came with "su" application by default (notice overclocking worked) but due to /dev/block/nandd ext4 partition (I think /system starts at some offset) containing some errors (seen in dmesg) and due to this partition having the "s_errors" flag (behavior when errors detected) set to "mount read-only (02)", the partition is ALWAYS mounted read only, and remount as root doesn't change anything. More info on this ext4 option can be found here: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout.
For me, the solution that worked was changing that flag s_errors to continue (01). I wasn't able to run e2fsck as the partition is already mounted; and I wasn't able to do a fsck in recovery mode since the recovery mode of this tablet lacks seems to lack both shell and e2fsck.
Tune2fs (old version precompiled here can change that flag in the partition. Using adb shell I pushed it to de device, set attribute as executable and run it, successfuly changing that "behavior when errors detected" in both partitions.
It has been suggested filesystem errors are linked to stability and realiability problems. Unfortunately this tablet lacks a version of CWM o TWRP as a recovery custom rom. I also adjusted the "max-mount-counts" value via tune2fs -c hoping it forces Android to run e2fsck, but it seems dmesg keeps displaying errors. I can only hope this problem is given more attention by developers.
After this I used the usual tools to root the device, noticing I had spent many hours in this cheap tablet. I should also mention by default now my tablet mounts in read-only mode (which is of course safer) but lets me change to rw whenever I want.
I have not been able to fix the ext4 errors. As others have explained, ls -al /dev/block can be used to better understand the images structure. System partition (nandd) contains the file e2fsck , but that file seems to be unavailable before mounting. Editing init.rc and associated files didn't force a diskcheck; I have not tried imaging the recovery partition (/dev/block/nandg) with dd and manually adding the required tools.I should also mention by default now my tablet mounts in read-only mode (which is of course safer) but lets me change to rw whenever I want.
On a side note, the adb driver setup tool found here didnt work for me (it seems &USER_PROFILE% in the .bat file should be replaced by "%USER_PROFILE%" and Desktop should be replaced according to the language of your operating system. Nevertheless the tool didn't work for me and I had to install another driver found in Uberizer distribution as the official "android_winusb.inf" didn't work in my Windows XP computer.
Thanks to the creators of tune2fs, to D_rex and other people/programs mentioned here. This is my experience with this problem; I'm not responsible if anyone tries this and bricks his device. All brands are property of their owners.
Good luck and Good bye

[GUIDE] Modfying CF-AutoRoot kit to enable ADB debugging on phone with broken screen

After breaking the screen on my phone I spent the following months reading about how to extract data. It all comes down to enabling ADB debugging and having your computer authorised. Usually this can be done from recovery and you're good to go. However, if you have a broken phone that is fully stock, with ADB disabled and with no custom recovery support then your data is as good as bricked. Such was the case with me when I broke my rare Samsung G360G. However, my phone was supported by CF-AutoRoot by Chainfire, and this gave just the opening I needed to go full wide.
Prerequisites:
Your phone needs to be supported by CF-AutoRoot. Check on there and the new site linked for support of your phone. If it's not there then you will need to download a stock ROM and use the CF-AutoRoot site tool to generate a root package for you. But that is outside the scope of this tutorial. This procedure has only been tested on Samsung. Your phone should have a minimal working charge.
https://autoroot.chainfire.eu/
This tutorial is also based on Linux. It should be translatable to Windows and Cygwin. But for simplicity I'll just use the method I used on Linux. However, if using Odin like I do, you'll need Windows to finish it off.
Aside from this it assumes files in are named in a particular format with a certain file format.
Tutorial:
1. First you need to download a CF-AutoRoot package for your phone. Won't get far without it.
2. Open up a terminal in Linux. We need to download some depends so enter this command:
Code:
sudo apt-get install android-tools-adb android-tools-fsutils
3. We need to extract the archive contents out. Create a suitable folder inside your home folder to build the patch in and cd to it. This uses an example file named CF-AutoRoot-example.tar.md5. Substitute with your actual archive name. Like so.
Code:
mkdir cfar-adb
cd cfar-adb
tar -xf CF-AutoRoot-example.tar.md5
4. There should be a recovery.img and a cache.img.ext4 extracted out. We just need to modify the cache.img.ext4. But first we need to convert it to a workable format. From a sparse to a raw image.
Code:
simg2img cache.img.ext4 cache.raw.ext4
5. We need to mount the cache image
Code:
mkdir cache
sudo mount -t ext4 -o loop cache.raw.ext4 cache
6. The big one. Doing the mod. So now we need to modify the cfar cleanup script. We need to insert commands on the end to enable ADB and add the key to authorise the computer. The following will do just that in this fashion.
a)
You will need to load in the cfar-cleanup.sh file inside the cfroot folder from the cache point mounted. Locate the end and paste the following lines before the reboot and exit commands on the end. Don't save yet.
Code:
echo -n 'mtp,adb' > /data/property/persist.sys.usb.config
mount -o remount,rw /system
echo '' >> /system/build.prop
echo 'persist.service.adb.enable=1' >> /system/build.prop
echo 'persist.service.debuggable=1' >> /system/build.prop
echo 'persist.sys.usb.config=mtp,adb' >> /system/build.prop
chmod 644 /system/build.prop
mount -o remount,ro /system
mkdir -p /data/misc/adb/
echo '' >/data/misc/adb/adb_keys
chmod 640 /data/misc/adb/adb_keys
b)
Load up the ~/.android/adbkey.pub file in a text editor and copy the entire contents in the clipboard. Now back at the script locate that last echo command you pasted into it and set the cursor just after the first single quotation mark. Now paste the clipboard in! This will add your key in. Make sure it's only between the single quotes with no extra characters or line feeds. The lines will naturally split if they don't fit on screen. Otherwise it should be good to go.
c)
Okay now save the file. The above will enable ADB and authorise your computer on the main Android system after the rooting script has done it's work. Before it reboots normally.
7. We need to unmount the cache so it's ready for use.
Code:
sudo umount cache
8. We need to convert the raw image back into a sparse image.
Code:
img2simg cache.raw.ext4 cache.img.ext4
9. Okay were almost done. Now we repack the files into a new Odin archive. Choose a suitable new filename. Like I have done here with my example file.
Code:
tar -H ustar -c recovery.img cache.img.ext4 > cfar-adb.tar
md5sum -t cfar-adb.tar >> cfar-adb.tar
mv cfar-adb.tar cfar-adb.tar.md5
10. The final step! So now the new package is ready for use. We just to use Odin and flash it to the phone. Save the package to a USB stick if needed.
a)
Reboot into Windows. Or you can run it virtualised from Linux. But I prefer to use the real things when dealing with things of a delicate manner and working blindly. Unplug your phone from the computer if connected. Now load up Odin in admin mode.
b)
Just to make sure pull the battery from your phone. Give it a few seconds then put the battery back in and click the back cover on. Now hold down volume down, then home key, and finally hold down power. Wait for the vibration. Then release power after a few moments. Finally release the other keys. At this point press volume up briefly. You should have just put your phone blindly into download mode. I've done this numerous times.
c)
Plug your phone into your computer. After a moment you should see Odin respond with a device added. Usually the phone can vibrate also when it connects giving more positive signs. If nothing happens disconnect the phone from the computer and retry the last step again to put it into download mode. Took me a few tries before I could do it blindly. It helps if you have a working Samsung to test it out on so you can see what happens before you can only feel it.
d)
Now in Odin press the PDA (or AP) button. Select the cfar-adb.tar.md5 package you made up. If the package is fine it will pass the md5 test. Now press the Start button and watch it go! If all goes well it will upload recovery, cache, give you a pass and then the phone will reset. At this point it will be in the process of being rooted, enable ADB, then reboot. If something goes wrong then you may need to go back and check all the patched files. Then rebuild the package again. But be careful, if the ADB has been enabled in the build.prop file one time, you don't want to add it in again and create duplicates, no matter how keen. Once I had it added the only other major problem I encountered was using the correct adb key.
e)
Hopefully now your phone is rooted, has ADB enabled and is booting up normally. Give it a few minutes. You can even see signs of life in Odin with adds and removes on USB activity. Your phone should also vibrate at times. And making noises is also a good sign.
1.1. So I just cranked it up to eleven. Open a Linux terminal again and give it a test. With your phone plugged in.
Code:
adb devices
If all goes well then adb will find your phone as well as list your device as authorised. You can now open shell to the inside. USB debugging is now enabled.
Conclusion:
Well I hope this helps those who have their app data stuck under a broken screen. As long as it was to type in this tutorial It still took me less time to write this tutorial than to learn all that was needed and apply it to my phone. This ends here but for you it may be only the beginning. A next step would be a screen mirroring app which I think is a must have for visual feedback. And USB debugging opens up these possibilities. One thing to be careful of, in a related issue, is that just because you can use adb and the phone is also rooted doesn't mean it will all work at once. If you are tempted to "su" it in an adb shell and get right in there then SuperSU will ask for permission on a blank screen. As will also happen if you try to do an adb backup, it will ask for confirmation on screen. So just expect to work with USB debugging blindly unless you already have a screen mirroring app installed. If you don't have one installed that is your next step.
And on that note. Good luck!
Hi there,
Your tutorial on how to achieve this on Linux looks real neat and complete. Unfortunately, i'm on Windows and i would like to know if you would be able to rewrite this totorial for a Windows user?
I've been reading online for about a week and i've never saw such a complete guide to help newbies to ADB to be able to retrieve data on their locked broken devices.
Cheers!
Hi RaiM1986 and thanks for your kind words. Yes I wrote it so it would be useful to newbies and seasoned hackers alike. Plus I needed to write down some instructions in case I need to do it all again.
Looking at the tutorial it is a bit Linux-centric. I don't know how well it would translate to Windows. Though there would be Windows version of the tools used the main problem would be mounting the filesystem image and making modifications without corrupting it. Because of things like Linux file modes.
However the following tools may be of assistance.
ADB tools:
https://wiki.lineageos.org/adb_fastboot_guide.html
Cygwin provides Linux tools if needed:
http://www.cygwin.com
simg2img:
https://github.com/KinglyWayne/simg2img_win
For mounting the ext4 image:
https://www.osforensics.com/tools/mount-disk-images.html
img2simg and other tools:
https://forum.xda-developers.com/showpost.php?p=49235638&postcount=5
For the ADB key it should be in %USERPOFILE%\.android and other spots I've read of are C:\Windows\System32\config\systemprofile\.android
In case any of the above fails, since I haven't tested them, the easiest alternative might be to just download a Linux live CD, boot it and do the steps inside. Of course any work is lost when you shut it down. You could also boot it in VM program running on Windows.
Amazing guide, Hypexed! The amount of work you put in to figure this out is incredible.
However, I'm stuck on step 6c, where I'm supposed to save the cfar-cleanup.sh file. It's not letting me save it at all, either within the mount point or to another location, it says that I don't have permissions to save the file. I tried the 'sudo chown' to change ownership to try to edit the permissions, but that didn't work either with it still saying I can't have access to the file. Any ideas? There is probably a simple solution, but this is my first time really using Linux so I'm a noob. I'm using Ubuntu 18.04.1LTS installed, not live, dual-booted with Windows, if that's important to know
SpinningQyarks said:
Amazing guide, Hypexed! The amount of work you put in to figure this out is incredible.
Click to expand...
Click to collapse
Thank you for noticing. It really was the culmination of months of hacking and cracking. Not to mention research. I decided I had to write a guide so I could document what I did in case I needed to do it again. And of course if it helped anyone else.
However, I'm stuck on step 6c, where I'm supposed to save the cfar-cleanup.sh file. It's not letting me save it at all, either within the mount point or to another location, it says that I don't have permissions to save the file. I tried the 'sudo chown' to change ownership to try to edit the permissions, but that didn't work either with it still saying I can't have access to the file. Any ideas? There is probably a simple solution, but this is my first time really using Linux so I'm a noob. I'm using Ubuntu 18.04.1LTS installed, not live, dual-booted with Windows, if that's important to know
Click to expand...
Click to collapse
Sorry you got stuck. I can see some issues in my guide. Especially after trying to do 6c again. First I notice I didn't specify where to store all the folders. Somewhere in the home folder obviously but it looks like you sorted that out fine.
I have tested a working solution to the permissions problem. In fact two:
1. Locate cf folder in the cache mount point on the desktop and go into it. Now right click in the window to bring up the context menu and select "Open as Root". Open up the editor as before.
2.. In the terminal run the editor as root. For example:
sudo gedit cfar-cleanup.sh
I've tested this on Mint which is a "relation" of Ubuntu so should work the same.
Now the original permissions should be left intact. I checked and they didn't have the execute bit set which is unusual. It may help here to save your work on the file to a place you can save to in the meantime. So you don't get stuck again. And then unmount your cache mount point, extract the raw image again as per step 4 and remount as per step 5, if the permissions need restoring. They really should be as they are originally set in the image.
Then continue through to step 6 and beyond as you were.
Good luck!

Categories

Resources