I’ve compiled a quick guide to instruct how to make a copy of the /efs folder. I’ve found in many threads suggestions about backing up this folder but the methods itself are very general. Most of the times they suggest to “root and copy the folder” with Root Explorer or similar, but usually it’s not that easy or it just doesn't work for everyone (my case).
This guide ASUMES you have read this Excellent Guide by Darkstrikerfirst:
H E R E <-- Make sure to read the ADB Guide.
I recommend doing this with a Mobile just taken out of the box or with any Official ROM of its Service Provider. If you have already Flashed your phone with another ROM but its working fine, then you can use that /efs also.
Why the /efs folder?
This is a very sensitive system folder that contains Phone-specific information such as the IMEI (encrypted in the nv_data.bin), wireless devices MAC addresses, product code (also in the nv_data.bin), and much more. Often users trying to change product codes or trying to unlock the mobile will end up corrupting data in this location.
Why back it up?
Well, let’s resume it saying that backing-up this little folder will keep you away from Samsung service centers.
***WARNING: I take no responsibility to any damage caused by the methods cited and/or written here. Their sole purpose is to back-up data and not to alter in any way the integrity of the original files of the mobile***
Please don’t ask how to recover your IMEI if you have previously messed your SGS without backing up this folder. I’m not familiar with such methods plus it is UNRELATED to this thread.
What you will need:
Rooted SGS to get permissions as a SU (Super User) and perform the backup
I would suggest learning a little about the terminal commands used (in case you are not familiar with them), as it’s better to know what you are doing rather than typing strings like a little chimp without knowing what they are; if you are a little lazy, then you have a good chance bricking your mobile.<- Busybox Commands(or Google them)
Terminal Emulator by Jack Palevich (available from the market) <-Terminal Emulator or use ADB which is included in the SDK Development Tools
IMPORTANT: If getting "error: device not found" under ADB (happened to me under CM7 2.3.4), you need to update your ADB drivers. Go HERE and follow the instructions to download the USB Driver for Windows, Revision 4 (Nexus S Support). Then update the drivers under your Windows Device Manager.
--------------------------------------
Backup commands
--------------------------------------
Depending on the type of root, you might have to use “busybox” at the beginning of the sting or just the string:
The standard prompt of terminal (adb) is a $ sign. Once you enter “SU” it will become a # Sign.
***NOTE: Make sure to keep an eye on the screen of your SGS during this process, because it will request SU permissions; else, you will get an error (just if it’s the first time). In Terminal Emulator you will need to reset the app after granting permissions cause it usually freezes***
*Remember: to use ADB you need to enable USB DEBUGGING under Applications/Development in your SGS. Once you are finished with the files, you need to turn it off so you can get the files.
Code:
su
tar zcvf /sdcard/efs-backup.tar.gz /efs or
busybox tar zcvf /sdcard/efs-backup.tar.gz /efs
After this, you will end up with the file efs-backup.tar.gz in your INTERNAL SDCARD, which is a “tarball” or a ZIP of the /efs folder. That file is your backup. You can expand it with Winrar.
In another forum I also saw a recommendation to back up the st13 under /dev/block which can support greatly to recoveryour IMEI in case of a screw-up:
Code:
su
cat /dev/block/stl3 > /sdcard/efs_dev-block-stl3.img or
busybox cat /dev/block/stl3 > /sdcard/efs_dev-block-stl3.img
Same thing, the target is the INTERNAL SDCARD, so go ahead and copy the file.
----------------------------
nv_data.bin - Restore
----------------------------
In case you screwed your IMEI by playing with the nv_data.bin and you are experiencing issues like:
Fake IMEI (usually 004999010640000)
Unable to download apps from the market
Unable to unlock your SIM card using your PIN
Weird apps are downloading automatically from the market
Blinking SIM card icon on the top tray… ETC
You may want to upload your fresh copy of this file back to the phone. Use this commands:
(thanks to Methyldioxide method to recover the product code http://forum.xda-developers.com/showthread.php?t=780509 )
Copy the file from your backup (efs-backup.tar.gz) and paste it in the INTERNAL SDCARD:
Code:
cp /sdcard/nv_data.bin /efs/nv_data.bin
rm -rf /efs/nv_data.bin.md5 OR
busybox rm -rf /efs/nv_data.bin.md5
Reboot your SGS
The md5 hash/signature is removed (rm) as the system will generate a new one.
**Most likely your SIM code won’t work after this and you won’t be able to log into the phone**
Pop off your SIM card, boot your SGS and execute the following commands to change ownership of the file under ADB or Terminal as well:
Code:
su
busybox chown 1001:1001 /efs/nv_data.bin or
chown 1001:1001 /efs/nv_data.bin
Hope this can help anyone with doubts. Cheers!
An alternative to the backup part is to use Root Explorer and zip the whole /efs folder onto your external sd card. (or wherever you want)
How about a method to restore the IMEI if you never had a good back up to begin with ?
Candanga said:
Please don’t ask how to recover your IMEI if you have previously messed your SGS without backing up this folder. I’m not familiar with such methods plus it is UNRELATED to this thread.
Click to expand...
Click to collapse
EarlZ said:
How about a method to restore the IMEI if you never had a good back up to begin with ?
Click to expand...
Click to collapse
How did you manage to miss that?
EarlZ said:
How about a method to restore the IMEI if you never had a good back up to begin with ?
Click to expand...
Click to collapse
had the feeling you would be here LMAO..
funny thing
the other day i messed up nv_data.bak trying to get my old product code back
the phone would not recognise the sim card
i deleted the whole /efs folder and the phone made a new one
i got my imei but no product code
sim card started working everything looked ok appart from sgs tools reporting nothing as phone !?!
i did restore /efs from a backup i had and then my product code came back
weird though
I was on jpo when all this happened
pele78 said:
had the feeling you would be here LMAO..
Click to expand...
Click to collapse
I guess you find it entertaining if people messed up their IMEI, well we all have our kinkiness.
EarlZ said:
I guess you find it entertaining if people messed up their IMEI, well we all have our kinkiness.
Click to expand...
Click to collapse
@EarlZ - I myself was a victim of this, but I managed to make a duplicate of my nv_data.bin as per instructions of the guide that I was following to unlock my SGS.
The only "tip" that I can give you (geez.. Im going against my own disclaimer lol ) is to try to flash it back to JM1 or the earliest release of your mobile. I think I remember to get my IMEI back doing this, but then lost it flashing to a newer ROM. AGAIN, my "research" didn't go past this as I managed to get my IMEI back, reason why I got inspired to throw this little guide.
Hope this can get you started on your IMEI recovery journey.
Cheers mate.
The restore should also be done with tar - in this way you won't lose the permissions on the files.
ingineru said:
The restore should also be done with tar - in this way you won't lose the permissions on the files.
Click to expand...
Click to collapse
Just for future reference (in case I need it ) can you give us the full command line?
Thanks
Thanks for the HowTo.
I ended up deleting my nv_data files in order to restore the backup files to get back the orig product code. As far as I can tell, it worked perfectly.
Code:
busybox rm -rf /efs/nv_data.bin
busybox rm -rf /efs/nv_data.bin.md5
In case you really boink your EFS
I wanted to add a small piece to this thread that not really consolidated anywhere I can fine. I toasted my /EFS yesterday - to the point of no cellular unless I was at JF6. I couldn't use tar because I'd get "out of room" errors and "numerical value out of range". I mean I SERIOUSLY borked the /EFS. But then I've been flashing this phone from the day it was available from AT&T.
I used ODIN to restore my /EFS. I have a permanent generic IMEI.
There are several good threads on backup of the /EFS, but not on restoring. If you follow the OP post to backup, here's a good discussion on how to restore.
http://forum.xda-developers.com/showthread.php?t=882039
What wasn't clear in Da_G's thread is the you don't have to use DD to use ODIN to restore. There's no discussion on using the .img file to restore. That's scattered across a couple of threads and lots of reading. I'm not a linux guy, so I had to figure this out. . . .
Deep in rotohammer's following thread, there is a discussion about using a cat .img file to do create an ODIN .rfs file that allows you to restore from ODIN.
http://forum.xda-developers.com/showthread.php?t=850359
So here's what I did to restore my /EFS to functional. You MUST have a backup of your functional /EFS using either dd or cat and ADB installed.
On your PC do the following:
c:\Android\tools> adb shell
$ su (you're now on your phones Android command line; watch your home screen on the phone in case Superuser comes up asking for permission)
#
Now we're going to take the efs_folder_backup_stl3.img that you did with the cat file and make it usable by ODIN. Change directory locations to your cat .img location. Mine is on /sdcard/external_sd/.
#cd /sdcard/external_sd/
#busybox cat efs_folder_backup_stl3.img > /sdcard/efs.rfs (this is the key step!!)
# cd /sdcard
# tar -cf efs.tar efs.rfs
# exit
$ exit
Now your back at your PC. Do the following step to get the .tar file off your phone.
c:\Android\tools> adb pull /sdcard/efs.tar
Almost done. Move the efs.tar file to the same direction as ODIN and the follow the last directions in Da_G's thread. I'll post them below for just for clarity.
"Now, get into download mode, open odin, stick efs.tar in PDA slot, and press start. Bam! EFS fixed"
This worked for me, several times. Once you have the /EFS directory in ODIN flashable tar format - you really have to work hard to brick your phone.
Hope this helps!
If I flash back to stock using ODIN, would that also put things back to right ?
@bsc7080xsc
It should. You might have to do a factory reset if the device shows as locked, but otherwise it's worked for me many times.
Hi
backedup my efs folder through this thread in combination with roto.
cellgeek in your post you say : " busybox cat efs_folder_backup_stl3.img > /sdcard/efs.rfs (this is the key step!!)"
But i never made an .img file/folder.
both the dd and cat created an rfs file which i turned to tar.
am i missing a step?
thank you for your little extra guide.
that's a very useful Candanga
several times saved my ass
thanks !
Thank you VERY much OP, that worked for me
Sorry to revive if this is old;
Why won't rm -rf /efs/nv_data.bin.md5 work in terminal? It gives me an error along the lines of this is a read-only file etc?
geesamsungs said:
Sorry to revive if this is old;
Why won't rm -rf /efs/nv_data.bin.md5 work in terminal? It gives me an error along the lines of this is a read-only file etc?
Click to expand...
Click to collapse
Try "busybox rm -rf /efs/nv_data.bin.md5"
Thanks that was very useful but I have a problem here.
When I copy my nv_data.bin file to efs directory I can only change the ownership but not the group!
I tried both of this:
su
busybox chown 1001:1001 /efs/nv_data.bin or
chown 1001:1001 /efs/nv_data.bin
Click to expand...
Click to collapse
and
su
busybox chown radio:radio /efs/nv_data.bin or
chown radio:radio /efs/nv_data.bin
Click to expand...
Click to collapse
With this script, you can save all your partitions on SDCard (without DATA), This is just an emergency device saver, in case of losing partitions due flashing etc...
Extract .zip on SDCARD before starting.
Use the following script in ADB Shell to save your partitions. You must be root !!!
Add a Folder "Partitions" on SCDARD
Start ADB on your computer and enter adb shell
request su
navigate to script and enter: sh Save_AllPartitions_HTCONE_M7.sh
wait, feel good
View attachment AllPartitions_HTCONE_M7.txt
View attachment Save_AllPartitions_HTCONE_M7.zip
What's the benifit...?
in case of losing partitions due flashing etc...
So I have been recently playing around with my S4 Mini Value Edition/Plus (I9195I) trying to port CyanogenMod to it. Then when it was really late I read about the `adb reboot nvbackup` (DO NOT EVER RUN THIS COMMAND ON THE S4 MINI VE), and now the phone is basically stuck in a bootloop. I think the problem is identical with http://forum.xda-developers.com/showthread.php?t=2657519 which points out that Samsung has simply messed up something there and now the FSG and BACKUP partitions are corrupt. According to the thread it is possible to recover if you get clean versions of the FSG and BACKUP partitions so I'm hoping someone with the S4 Mini Value Edition (i9195i) can help me by getting the clean versions from his device. It's not much to do and won't do anything to your device but will help me to continue (and actually have a working device again).
Can someone run these commands (either in a rooted shell (e.g. adb shell -> su -> change in the directory of your internal/external sdcard (not sure about the path), use TWRP way if in doubt), or from TWRP directly (Advanced -> Terminal Command -> then select e.g. your /external_sd or normal /sdcard) -> Select (bottom of the screen)), type the following 2 commands and send me the resulting files (e.g. by attaching it here to a post, or uploading it on AndroidFileHost or Dropbox, ... whatever):
Code:
dd if=/dev/block/mmcblk0p9 of=fsg.img
dd if=/dev/block/mmcblk0p19 of=backup.img
This will place the partition contents of FSG and BACKUP in the current dir (file names fsg.img and backup.img) and you can upload them from your PC e.g. by inserting your external SD card in your PC or simply booting into Android and connecting your phone to the PC. Unlike the names suggest they don't seem to contain a backup but actually files that are necessary for booting which is now corrupted after I run this stupid command... Thanks in advance, I hope someone can help me with getting my phone back working.
PS: I'm pretty sure there is no separate forum for the VE/Plus variant, so I guess this is correct here.
Solved with the help of @kariboo92 (thanks!), if someone ever makes the same mistake as me for this device, just PM me and I can help to fix it.
PLEASE NOTE: This should work on any and every rooted device, but as always, there is a risk when modifying your devices.
First, I must explain what this guide will do and what you will need.
What we're doing.
1. We will delete the update.zip (if one already exists).
2. We will make a dummy update.zip that will not be replaceable or modifiable, even by the root user (unless the changes are reversed). This fake update file will prevent a legitimate update from downloading and installing.
3. [OPTIONAL] We will remove the annoying update notification.
What we're going to need.
1. Root. [duh...]
2. File explorer with root privileges a.k.a. a "root explorer". (If you need one, I personally recommend the free yet feature packed ES File Explorer.)
3. A proper BusyBox installation.
4. A terminal emulator.
5. A few minutes of your time.
***AS ALWAYS, I, XDA, XDA MODERATORS, XDA MEMBERS, AND EVERYONE ELSE ARE NOT RESPONSIBLE FOR THE CONSEQUENCES OF FOLLOWING THIS GUIDE. THE DEVICE YOU HOLD IS YOURS AND ANYTHING THAT HAPPENS TO IT IS YOUR FAULT. YOU HAVE BEEN WARNED!***
The procedure.
-Part 1. (Only required if an update is already present. If an update is not already present, go to part 2.)
1. Open your root explorer and make sure that it has root privileges.
2. Navigate to /cache (a.k.a. the "cache" partition)
3. Delete the update.zip file.
-Part 2.
4. Make a new .zip file with nothing in it and save it as update.zip (make sure it is saved to "/cache" and nowhere else, not even in a folder inside "/cache"!)
5. From here move on to your terminal emulator.
6. Once inside the terminal emulator, type the following commands.
Code:
su
cd /cache
ls
chattr +i update.zip
From here I recommend that you check that it worked by typing in
Code:
lsattr update.zip
If the command works you will see a lowercase 'i' amongst a string of letters and/or dashes.
-Part 3. [Optional]
The annoying update notifications are actually Google Play Services fault. All you have to do is go to "Settings > Apps" and find Google play services and disable the apps ability to show you notifications.
That's pretty much it. Now I must tell you that you will still receive notifications saying an update was downloaded, verified, and is ready to install, assuming that you did not go through with part 3. All you have to do is click the install button, and let it restart to install the bogus update. The update process will error and all you have to do now is restart the phone. Nothing will have changed as the update file we created is empty and therefore will not change anything on your device. I have been doing this myself for a while now and have not had a single issue.
I hope that you find this useful and happy modding! :victory::highfive:
Message to Moderators: If this is in the wrong area, I apologize. Please feel free to relocate it to the appropriate area of XDA.
If you wish to undo this process, go into the terminal emulator and enter
Code:
su
cd /cache
chattr -i update.zip
From here you can check that it worked by entering
Code:
lsattr update.zip
At this point you can easily delete the file and allow your device to download your OTA.
Thanks, this will work until you wipe /cache so I created a more permanent solution HERE
Many guides recommend to backup the EFS partition before installing any ROMs "just in case".
Unfortunately, I cannot find any up-to-date manual on how to do so the proper way in case of the Fold 3.
Guides I do find either suggest to copy some images from a specific /dev/block with dd, which seems to be e outdated as non-existant on the Fold 3 or are incomplete by recommending to only copy the content of the folder /efs with a root explorer or mention EFS Professional which at least for me fails with some obscure array/dimension/whatnow error message just when attemping to even only get the partitions.
In the Dr. Ketan - thread, the developer suggested to use TWRP but here, is also unclear whether being suitable now or not, also in terms of half the stuff being encrypted nowadays. Uargh.
So how do all of you back this up if it is common sense that it is oh so important?
If you are rooted, the dd method can be done quite simple either on a terminal emulator or with adb shell.
If using terminal:
su
then
dd if=/dev/block/by-name/efs of=/sdcard/efs_backup.img
If using adb shell:
adb shell
then
su
then
dd if=/dev/block/by-name/efs of=/sdcard/efs_backup.img
Or you can just back it up with TWRP, it should give you the option to do it.
Thanks a lot. I used dd in Termux in the root context and the resulting file size is 20 MB. Hope it is what I need as that EFS backup thing somehow has something of "hopefully, one never needs it".
By the way, the attempt to use TWRP for that fails as it only recognizes the internal storage which is shown as 0MB, probably due to the encryption.