Related
i seen this in the Samsung Galaxy S I9000 and i tried it out on the vibrant and it works perfect, its probably the easiest way to partition your SD card and i can confirm it fixes the lag, i will post my scores shortly...... THANKS RYANZA you saved me weeks of research. go here for more info
http://forum.xda-developers.com/showthread.php?t=751864
[UTIL] One Click Lag Fix 2.0
This version (2-3) is now open for BETA testing! It is known to work on many devices, but still has known issues that could greatly affect you. Please read this whole post a few times until you understand!
Details about what this fix does:
Creates a VIRTUAL EXT2 filesystem inside the stock RFS filesystem on the internal SD card, with a 4KB block size. This means that this lag fix creates a buffer between the real filesystem and the android system. This buffer should reduce the amount of disk I/O required for all operations by utilizing EXT2 buffering, as well as not writing file access times to disk, etc.
Folders that are currently supported:
/data/data
/data/system
/data/dalvik-cache
/data/app
/data/app-private as a symlink to /data/app/app-private
/dbdata/databases is not supported. It appears to be ROM backed, and can cause problems if overwritten.
Benefits over version 1
1.5GB of application data available, with no data loss.
e2fsck of the EXT2 partition on each boot.
Correct busybox version included! YES!
/app and /app-private directory included in the fix for faster application installs.
/dbdata/databases included in the fix, expected to give a big performance boost for apps that use it.
Mounts instead of symlinks for extra performance as OS does less work (about 100 or so more quadrant).
Benefits over other lag fixes
Open source, with full comments and ease of editing.
Works on any and all firmware versions, including any yet unreleased froyo versions (that don't change file structure).
Credits
Big thanks to mimocan for putting us all on the right track in how to sort out lag problems!
Big thanks to ykk_five for showing us all how well loopback filesystem mounting works!
Big thanks to cyanogen mod for e2fsck
Requirements for One Click Lag Fix 2.0
Rooted phone - http://www.addictivetips.com/mobile/how-to-root-and-unroot-samsung-galaxy-s-i9000-with-a-single-click/
Windows computer with SGS Drivers (Samsung Kies), or the ability to read through the batch file and run it yourself.
(Beta Release) The ability to reflash your device if something goes wrong.
No other lag fix installed. If you installed One Click Lag Fix 1.0, then use the uninstall function which came with that lag fix before running this lag fix. (Untested but assumed to be working, please help out here.)
1.5GB of freespace on Internal SD Card for swap files while the fix is working (/sdcard).
"Internal phone storage" in Settings->SD Card must read greater than 500mb (0.5GB) of free space.
How to run One Click Lag Fix 2.0
Place your phone into USB debugging mode: Settings->Applications->Development
Attach your device to your computer. Do not mount the drives.
Download the attached ZIP file.
Unzip to a folder of your choice.
Double click "lagfixme.bat".
Don't double click "unlagfixme.bat".
Wait for it to complete.
You will need your phone to be unlocked when it runs the script, so that you can accept the permissions request that will appear on your device.
How to remove One Click Lag Fix 2.0
Double click "unlagfixme.bat"
Wait for it to complete.
Known Issues For All Versions
Some custom firmwares use up all available space in /system. This fix requires some libraries to be placed in /system/lib. These libraries are used to create the filesystem properly, and to check it for errors on every boot.
If your firmware does not have the available space (around 1mb) in /system, do not use this fix! Your phone will not boot and will have to be restored from backup / reflashed.
Current known firmwares with this issue: None yet. Please provide the firmware version+mods if you encounter this issue. It will show up as an out of space error in the log, under 'Copying libraries'.
Known Issues 2-1, 2-2
Paid apps from the market have issues.
Google maps and other pre-installed ROM-backed applications have issues.
2-3 Changes from 2-2
/dbdata has been removed. This fixes maps issues.
/app-private is now a symlink to /app/app-private. This fixes paid apps issues.
Alternate installation methods for similar fixes
Tayutama has made an update.zip version that is easy to install - http://forum.xda-developers.com/show...&postcount=208
Chainfire has a .NET version of this fix with some nice features - http://forum.xda-developers.com/showthread.php?t=751513
I recommend starting from scratch to avoid any problems
my setup is
1.) True 2.1 Samsung T mobile Image http://tinyurl.com/2bc5b6r
2.)BETA OC 1.2Ghz (no added steps for now)
kernel-vibext4-oc1.tar.md5
MD5:d1e26f769406c5d368492855c7b5059e
...you can try his new version of the kernel if you like, my phone i runs fine on the beta , so i havent tried the new ones
more info on the kernal hack http://forum.xda-developers.com/showthread.php?t=744655
3.) RyanZAEXT2LagFix BETA 2-3.zip http://forum.xda-developers.com/attachment.php?attachmentid=384443&d=1282320979
this is the exact order in which i modded my phone and i have no ran into any problems, it was a smooth process , and yes it was my first time modding my samsung phone and i rate it as very easy to do.
Click to expand...
Click to collapse
Frequently Asked Questions
Q: My apps are force closing while this fix is running, and I can't use my phone!
A: By design. The script has backed up/copied your apps over to the internal SD card (remember the requirement about 1.5GB of free space on the SD card?). It is now overwriting them with a 1.5GB file. As the file overwrites an app that is trying to do something, it will probably force close. This is normal.
Closing all running apps, and removing widgets before running this fix can make the process much smoother, though.
Q: The script can't transfer files to my phone / The script can't run / Help help I'm dieing!
A: Read the first post again.
Q: My paid apps from the market don't show up.
A: I will hopefully have a fix for this sooner or later. Hold tight! It's in the known issues. I don't have access to paid apps, so I can't test this.
Q: Does this need busybox?
A: No, busybox is included.
Q: I only have 200mb of free space now! What gives?
A: The lag fix has made a 1.5GB file, and is storing all of the data inside there. The side effect is that the free space meter is now incorrect. Sorry, this can't be helped.
You can check real free space by using ADB like this:
Code:
adb shell
su
busybox df -h
Q: When I use a backup tool, the backup is now 1.5GB big! It's taking forever!
A: The backup tool isn't designed to work with this fix. It will work, it just won't work well. Hopefully this fix will be short lived, and either Samsung will give us a new update, or someone will give us a good custom firmware that can natively mount what we need, where we need it. Or someone might come out with a better backup manager. Until then, we suffer.
Q: Will a reflash wipe this fix?
A: Yes, a reflash will wipe everything this fix did.
Q: Can this brick my phone?
A: If you know how to get to the download mode from power off (hint: volumedown+home+power), then almost nothing short of throwing your phone off a tall building can actually brick it. If you can't do this though, or don't know someone who can, then you're better off waiting for samsung to release a fix. Anything that moves files around on your device has the potential to break things, and this fix has no QA department.
Q: Why is /dbdata not included in your fix, but other people have included it?
A: Other people have included it in the same way my 2-2 fix includes it. However, /dbdata is ROM backed. This means that the real files are on ROM, and only the changes appear in the /dbdata folder. When copying or moving files from this folder, you would need to specify each folder by exact name to ensure that it was copied across, and each firmware can have their own names. (This is because RFS wildcard will not catch an unused ROM backed file.) In some cases, you can get lucky and have this work perfectly because you have already used all the files in /dbdata. There is no fail safe method to do this though, and /dbdata does not make a big difference to performance. (It is already on NAND flash.) If you want to try your luck, v2-2 is still available.
Q: Why does this lag fix work? Is it slowly destroying my phone?
A: Let's say an application counts from 1 to 10, and writes the value each time to disk.
Stock:
1 -> App tells RFS to write 1 to disk -> RFS writes 1 to disk -> RFS writes journal saying to changed the value on the disk.
2 -> App tells RFS to write 2 to disk -> RFS writes 2 to disk -> RFS writes journal saying to changed the value on the disk.
..
9 -> App tells RFS to write 9 to disk -> RFS writes 9 to disk -> RFS writes journal saying to changed the value on the disk.
10 -> App tells RFS to write 10 to disk -> RFS writes 10 to disk -> RFS writes journal saying it changed the value on the disk.
Total physical disk writes: 20. Speed: SLOW! Wear and tear on disk: HIGH!
Lag Fix:
1 -> App tells EXT2 to write 1 to disk -> EXT2 stores 1 in RAM.
2 -> App tells EXT2 to write 2 to disk -> EXT2 stores 2 in RAM.
..
9 -> App tells EXT2 to write 9 to disk -> EXT2 stores 9 in RAM.
10 -> App tells EXT2 to write 10 to disk -> EXT2 stores 10 in RAM.
..
EXT2 tells RFS to write 10 to disk -> RFS writes 10 to disk -> RFS writes journal saying it changed the value on the disk.
Total physical disk writes: 2. Speed: FAST! Wear and tear on disk: LOW!
This isn't exactly what is happening, but it gives you the general idea.
Q: Can this mod work on other Android devices? Would we see a performance boost on them as well? If not why is it limited to the Galaxy S?
A: SGS has very very good hardware, but it has some parts of it's hardware poorly implemented. The filesystem that samsung chose to use is custom-built using FAT32 as a base, RFS. It has a lot of the problems that FAT32 has, and should have been left back in the 90s, or even the 80s.
One of the big issues with it is how it handles multiple requests - it blocks. It blocks everything. When your mail app wants to read the mail you just tried to view, but your twitter app is busy writing a new tweat it just received, your mail app is forced to wait.
This is bad, but it could be worse! And it is... your twitter app didn't just get one tweat, it got 50 tweaks. It is busy writing the tweats one by one to the filesystem. This would be fine, since all modern filesystems will buffer writes, so instead of writing each one at a time, they will batch them together and write it as a big chunk. Uh oh - RFS does no buffering at all! After each write, it will also write an update to the grafted-on journal system. Guess what happened to your mail you were trying to view while all this happened? It 'lagged' and you got a black screen for half a second, before the mail popped into view.
Luckily the hardware on the device is so good that you usually don't even notice the problem until you have a lot of apps running, all writing their updates when you unlock the phone.
This is mostly speculation based on experiments done on RFS -- RFS is closed source, and we have no idea if the problems are just badly set settings (such as a block size that is too small), coding bugs in the implementation, or if RFS is just really that badly designed.
This fix just grafts a buffer on top of the RFS filesystem, using a very very simple and fast filesystem, EXT2. It fixes most of the issues by writing to RFS as seldom as possible.
So no, this fix won't fix other devices, since they're already running quite close to maximum speed. The SGS at stock is running nowhere near maximum speed, and this lag fix takes it a bit closer. You could probably speed up other devices by tweaking the filesystem settings to give them a big buffer or similar, but it isn't really needed. (I haven't actually tried to put an EXT2 onto any other Android phone, as I don't have any other Android phone, so this is just speculation.)
Q: My phone is fast now!
A: Yeah.
Last edited by RyanZA; 18th August 2010 at 10:52 PM..
I used this yesterday. Works a treat! Just be patient when its running.
Texted While Driving
You need to fix the links if you reposted it
lqaddict said:
You need to fix the links if you reposted it
Click to expand...
Click to collapse
i fixed the links before i reposted it and re-added the attachments , is there a certain link i forgot to fix ?
===============================================================
===============================================================
One Click Lag Fix for Galaxy S I9000
===============================================================
===============================================================
__________________________________________________________
Pushing required files to /sdcard - Please wait.
* daemon not running. starting it now *
* daemon started successfully *
mkdir failed for /sdcard/lagfixtemp, File exists
cannot stat 'createlagfix.txt': No such file or directory
cannot stat 'playlogos1': No such file or directory
cannot stat 'userinit.sh': No such file or directory
cannot stat 'busybox': No such file or directory
cannot stat 'e2fsck': No such file or directory
cannot stat 'libext2_blkid.so': No such file or directory
cannot stat 'libext2_com_err.so': No such file or directory
cannot stat 'libext2_e2p.so': No such file or directory
cannot stat 'libext2_profile.so': No such file or directory
cannot stat 'libext2_uuid.so': No such file or directory
cannot stat 'libext2fs.so': No such file or directory
cannot stat 'mke2fs': No such file or directory
cannot stat 'resize2fs': No such file or directory
cannot stat 'tune2fs': No such file or directory
Now running lag fix. On your device, select allow root privledges!"
/system/bin/sh: Can't open /sdcard/lagfixtemp/createlagfix.sh
Script complete!
* server not running *
Press any key to continue . . .
any help?
did you unzip the files and put them all in the same directory ???
bobby915 said:
===============================================================
===============================================================
One Click Lag Fix for Galaxy S I9000
===============================================================
===============================================================
__________________________________________________________
Pushing required files to /sdcard - Please wait.
* daemon not running. starting it now *
* daemon started successfully *
mkdir failed for /sdcard/lagfixtemp, File exists
cannot stat 'createlagfix.txt': No such file or directory
cannot stat 'playlogos1': No such file or directory
cannot stat 'userinit.sh': No such file or directory
cannot stat 'busybox': No such file or directory
cannot stat 'e2fsck': No such file or directory
cannot stat 'libext2_blkid.so': No such file or directory
cannot stat 'libext2_com_err.so': No such file or directory
cannot stat 'libext2_e2p.so': No such file or directory
cannot stat 'libext2_profile.so': No such file or directory
cannot stat 'libext2_uuid.so': No such file or directory
cannot stat 'libext2fs.so': No such file or directory
cannot stat 'mke2fs': No such file or directory
cannot stat 'resize2fs': No such file or directory
cannot stat 'tune2fs': No such file or directory
Now running lag fix. On your device, select allow root privledges!"
/system/bin/sh: Can't open /sdcard/lagfixtemp/createlagfix.sh
Script complete!
* server not running *
Press any key to continue . . .
any help?
Click to expand...
Click to collapse
djkdawg said:
did you unzip the files and put them all in the same directory ???
Click to expand...
Click to collapse
i extracted all files to desktop and ran lagfix.bat from there
bobby915 said:
i extracted all files to desktop and ran lagfix.bat from there
Click to expand...
Click to collapse
do you have usb debugging enabled? do you have any other lag fix installed ?
djkdawg said:
do you have usb debugging enabled? do you have any other lag fix installed ?
Click to expand...
Click to collapse
Got it working thanks
bobby915 said:
Got it working thanks
Click to expand...
Click to collapse
no problem, download the quadrant standard app and run the test and post your score
I got 2072 quadrant score for the phone after the fix, how did the OP manage to get 2700+?
I'm still on version 1 with no issues. Any major differences or Improvements.
Uninstalled the Alpha fix and tried this one. upon reboot, I'm getting an error:
Memory Full
Internal phone storage is nearly full
Delete/Uninstall some applications or data
Didn't have this problem with the alpha fix.
Guess I shouldn't had played with the beta.
Any ideas?
Running Stock Kernel, just rooted.
I'm running Unlagfix now to remove.
Side note: I noticed that my custom font settings disappeared... Icons still appear to be in the same place.
Update:
I just re-read the FAQ. Storage reporting error... heh.. doh.
However, when running uninstall, it started streaming the following error message about 20-30 times over:
cp: write error: No space left on device.
Can't create directory 'data/bak/app': No space left on device
Update again:
Unlagfix didn't seem fully successful. All my application data/etc disappered. Looks like they are still in the /data/ directory, but not showing up on the device.
Here is a listing result
If I'm reading this correct, does that mean the Unfixlag didn't complete it's task? Looks like I still have a 1.5gb partition for data.
Tairen said:
I got 2072 quadrant score for the phone after the fix, how did the OP manage to get 2700+?
Click to expand...
Click to collapse
i started from scratch, i flash the true tmobile vibrant image to start from scratch, you dont have to do this but i did. Link is below
http://tinyurl.com/2bc5b6r <-- true tmobile vibrant image, it also includes odin
after that was done, i used the utility to format my card, you can get the one click utility below
http://forum.xda-developers.com/showthread.php?t=751864
after that i reboot, install the app and did a test and thats how i got my speeds.
edit: after installing all my apps back, i actually average about 2400-2500 , i havent seen the 2722 after installing all my apps
i would start from scratch like i did when i first tried it, because i think the other lagfixes actually jacked something up. follow the steps below
i started from scratch, i flash the true tmobile vibrant image to start from scratch, you dont have to do this but i did. Link is below
http://tinyurl.com/2bc5b6r <-- true tmobile vibrant image, it also includes odin
after that was done, i used the utility to format my card, you can get the one click utility below
http://forum.xda-developers.com/showthread.php?t=751864
after that i reboot, install the app and did a test and thats how i got my speeds.
Spiffywerks said:
Uninstalled the Alpha fix and tried this one. upon reboot, I'm getting an error:
Memory Full
Internal phone storage is nearly full
Delete/Uninstall some applications or data
Didn't have this problem with the alpha fix.
Guess I shouldn't had played with the beta.
Any ideas?
Running Stock Kernel, just rooted.
I'm running Unlagfix now to remove.
Side note: I noticed that my custom font settings disappeared... Icons still appear to be in the same place.
Update:
I just re-read the FAQ. Storage reporting error... heh.. doh.
However, when running uninstall, it started streaming the following error message about 20-30 times over:
cp: write error: No space left on device.
Can't create directory 'data/bak/app': No space left on device
Update again:
Unlagfix didn't seem fully successful. All my application data/etc disappered. Looks like they are still in the /data/ directory, but not showing up on the device.
Here is a listing result
If I'm reading this correct, does that mean the Unfixlag didn't complete it's task? Looks like I still have a 1.5gb partition for data.
Click to expand...
Click to collapse
Just a heads up!
A new version is available for people having trouble with this lag fix, check it out here:
http://forum.xda-developers.com/showthread.php?t=760571
It is designed to be easy to use and a lot safer.
Just wanted to say thanks to djkdawg for posting this and RyanZA for all the work!
im having font issues how about anyone else? i had choko cooky as my default and now it doesnt work anymore...
edit: no fonts work...
Code:
Making new directories to use as mount points for later.
We will now create a 1.5GB real EXT2 partition /data
Will take a long time.
dd: /data/linux.ex2: No space left on device
Linking loopback to the 1.5GB data file store
Creating the EXT2 filesystem
mke2fs 1.40.8 (13-Mar-2008)
mke2fs: Device size reported to be zero. Invalid partition specified, or
partition table wasn't reread after running fdisk, due to
a modified partition being busy and in use. You may need to reboot
to re-read your partition table.
Creating a mountpoint for files.
Mounting device
mount: Invalid argument
Copying data across. This could take a bit of time.
I keep getting this error when attempting to install. Not sure what's going on. I've got 8.5gb free on internal memory before beginning install. That should be plenty.
Okay, so I have looked into the other posts about people not having anything in their /efs folder. So I bought an i957r from Rogers. Rooted it and have su and busybox installed. Astro shows that my /efs folder is empty. My IMEI is perfectly fine, all of my data services work, and I am sure root is installed. When I run the adb shell to pull my nv_data.bin, it tells me the file doesn't exist, and when I pull it from the sdcard, it is an empty file. Any ideas as to why that folder would be empty?
Also on a side note, if I was to factory reset it, with root installed, would it damage my device? The only reason I want to reset it is to get the /efs folder. Any help that can be given would be greatly appreciated. Thanks so much!!
Astro is lying to you. Astro also shows /efs to be empty on my ATT device, but if i get a root shell, it is NOT empty.
This is due to the default permissions on the /efs folder:
Code:
# ls -l | grep -i efs
drwxrwx--x system radio 2012-06-15 10:04 efs
Note the lack of read permissions for other users (not user system or member of group radio). If you change the permissions on the folder, say via:
Code:
# chmod 775 /efs
# ls -l | grep -i efs
drwxrwxr-x system radio 2012-06-15 10:04 efs
Astro would then should you the files in that folder. But that's probably not the best way to handle it... Just deal with the efs files from a root shell, not a user-level file browser like Astro.
Interestingly enough, my Tab 8.9, which has been through a hackathon and a half, doesn't have nv_data.bin file.. anywhere. I do have a /efs/redata.bin file, though.
I wonder if the lack of nv_data.bin is related to why my tab started displaying "Search Network Manually" when I turn LTE on, and sometimes randomly whines about an invalid SIM even though it then immediately connects and works like normal... I've been trying to root cause that change for a while, although it seems to have no negative effects. Probably leaving some whacky log entries on the carrier side of things, though... FWTW.
Do you all actually have an nv_data.bin in /efs?
Also, before someone else flames you... this thread does not belong in this forum... Use the main forum for non-development issues
Well thank you for not making me feel completely stupid, I wasn't really sure where to put it. Can you tell me how to move it? So I'm not "that guy"?
But as far as what I have, in the /efs folder, I have redata.bin, but no nv_data.bin and a couple of other files and folders.
I downloaded Root Explorer and it was able to show me what was in that folder. I also searched using that for nv_data... didn't find anything
But while I am already in the wrong forum, can you tell me if doing a factory reset will hurt my device? Also, if I don't have an nv_data.bin file, I can't unlock it, can I? Just hoping you could help. Thanks so much!
I could be wrong, but I believe only mods can move threads. Never tried, and don't see anything obvious.. Ah well, no big deal.
I wonder if these devices use something different than nv_data.bin? I mean, we both seem to get working LTE service without it, right? Other various posts found via gooogle show several folks that claim their corruption and/or lack of nv_data.bin results in no service.
I highly doubt a factory reset will do any damage, "factory reset" basically means wiping data and cache, which is quite safe. Factory reset doesn't touch /system, /boot, etc. The assumption is that the user never had access to modify /system, so wiping the cache and user data partitions results in a "factory fresh" condition.
No so much after you've haxxored up all sorts of stuff.
If you are looking to get back to as close to stock as possible, you are probably best off starting with the factory ODIN tarball, which I believe is still available on sammobile. It contains the boot, system, recovery, cache and two modem partitions (although it doesn't appear to contain an EFS image).
It would be interesting to see if a virgin device actually has this file. My suspicious is we are both missing this file because it never existed on the i957 in the first place. I believe another vector would be used to unlock the device, instead of the nv_data hack.
Futhermore, I believe the nv in nv_data means nvidia, who makes the Tegra chipset and associated radio modems which are used in devices based on Tegra. The i957 is based on the MSM8660 SOC, a Qualcomm part, which is an entirely different beast than the Tegra solution. Pretty much everything I can find online about hacking up nv_data.bin covers devices that are NOT based on Qualcomm SOCs, which in recent times is most devices not destined for LTE on AT&T or other similar carriers (Rogers/Bell/Telus).
The captivate had the nv data file and it was on a hummingbird chip which was the precursor to exynos
Sent from my SAMSUNG-SGH-I727 using xda premium
INTERESTED IN A BETTER LAGFIX?
Here is a small script which goes a little further than the Lagfix app in the PlayStore. This was originally posted in a different thread dedicated to a ROM so I'm trying to clean this post up as much as possible.
Caution!
A quick word of warning. Take the same safety precautions with this as you would the LagFix app. Both use the same utility which has been found to brick some devices. This was originally written for the VS980 (LG G2) and for a 4.2.2 ROM (fstrim support is native in 4.3+) though it should work fine as long as your device is compatible with the LagFix app (although you may need to tweak a few things)
Prerequisites
To begin with, you'll need a fstrim binary located in one of your device's PATH directories. A safe bet would be to drop it in /system/bin/ or /system/xbin/. Don't forget to change the permissions as well so it can run. If in doubt it's safe to give it full read/write/execute (I vouch for the one I link to at least...)
If you'd like the script to run on boot, then having init.d support on your ROM is ideal. If you don't have native init.d support, search xda as I've seen a "How to Enable init.d on Any Device Even Stock" how to floating around somewhere.
Finally, you'll need the filesystems-fstrim script that's also linked to at the end. The script basically performs three actions. First, it remounts all the filesystems (see note at the end if not on a LG G2) without the 'discard' flag. Since we will be running the fstrim utility on boot (or manually of you desire), having the OS clean up after deleted/moved files on the fly isn't necessary at all and just slows performance down noticeable. After that it attempts to trim each mounted volume oo your device (think defragment), then finally it writes all output to /$ANDROID_USER/logs/ (bytes trimmed from each mount, etc).
This script will trim other mounts besides /system, /cache, and /data. That and the fact that it removes the 'discard' flag is why I wrote it for personal use instead of using the app in the PlayStore (also nice having a record I'm /data/logs as well).
How to Run At Boot
With the fstrim utility in .../bin or .../xbin (with proper permission, and init.d support on your ROM and the 03-filesystems-fstrim script you're ready to go. Drop the 03-filesystems-fstrim script into your init.d directory and set permissions (it's safe to give it full read/write/execute access if unsure) and you're ready to go. Your init.d directory may vary depending on ROM. I'm used to always using /system/etc/init.d, but some ROMS (CyanogenMod for example) uses a different path. Ensure that it runs after any other scripts you may have in init.d which remount the filesystems to ensure that the filesystems aren't remounted elsewhere with the 'discard' flag. You can do this by appending a number to the beginning of the filename that's higher then the others (for example you could rename it 99-filesystem-fstrim and it will run after 01tweaks or whatever might be there already). More information on init.d can be found with a Google search as it's covered everywhere.
Now, at this point on next boot the script should run and if there are logs in /data/logs/ you can read them to determine if it succeeded or not. If successful, you won't see any error messages and on the mounts that were trimmed it will let you know how many bytes off each.
Notes
I wasn't expecting this post to get moved into its own thread and was sharing this to oothers using the same ROM I was. The section of code that remounts all the filesystems is hardcoded, so that section may fail on other devices that have a different structure {and having a filesystem mounted with 'discard' flag kind of defeats the purpose of trimming to begin with ), so you may need to change this section. If editing, use a text editor that allows you to turn word wrap off as for one, it can create nasty messes in the code with strange like breaks/etc and two, it's good habit anyways when dealing with any script or programming language. I used 920 Text Editor which is pretty decent but there are plenty other good ones in the Play Store. Running the 'mount' command with no arguments after it at the command prompt can help you map the filesystem on your device with the corresponding LG G2 one.
Files are currently hosted on my Drive until I find another browser that works or get on a PC. If you already have the fstrim binary you don't need this one..Feel free to PM Amy questions or ask here.
download ~ fstrim binary (rename to 'fstrim' without any extension
download ~ filesystems-fstrim script (again, strip off any extensions in the file name
MidnightHarvester said:
INTERESTED IN A BETTER LAGFIX?
Why would you want to use this (especially if using the LagFix in the PlayStore)? Good question!
Optimized Filesystem Mounts
If you use the lagfix app off the PlayStore (or any script/app/utility/etc that uses fstrim) then mounting the filesytems with the 'discard' option is not only redundant, but also gives a performance penalty since with 'discard', the file index AND OS are both made aware immediately when memory is free up to enable garbage collection. This sounds fine, except that doing this on the fly like this also slows things down a lot. Since we will he using fstrim ourselves we don't need this extra overhead. In the script is a good link to read that explains things better than I can.
More Thorough!
Every other method I've seen so far only trims /system, /data, and /cache. There are many other mounts that can be trimmed, and some are written to quite frequently (/persist as an example).
Maintains Lots of All Activity
All activity is logged and sent to $ANDROID_DATA/logs/ where it's then saved. That way you can tell if it's running on boot or on the schedule as it's supposed to he running.
OK well, there's not a lot going on here, just felt like being overly dramatic as it's boring over here at the moment. All of the above is true, and after deciding to post it in here I cleaned it up quite a bit so even the most novice at BASH (any language really) can understand what's going on and change it to suit your needs.
A few things to point out. You WILL need to have the fstrim binary located somewhere in one of your environment paths. A good spot for it is always /system/bin or /system/xbin of you are having trouble deciding where You will probably want to also ensure that the fstrim binary has the correct permissions. If you are unsure of what those are, just give it all read/write/execute.
Second, you will need the script and figure how out how you'll be using it. You need to keep in mind that in the /system/init.d/ directory there is a script there called 03filesystem (something like that) which also mounts the fileaystems. If you like, you can move that script to you sdcard (don't keep it in init.d though or it'll be run..I don't know if having a .bak file extension will stop it as I've never tried) and copy this script over. This script's mounts are EXACTLY the same (even includes the break lease at the end) as what Jake uses as default except without the 'discard' flag. Replacing the default 03filesystems with this one is a perfect place to run the script if you reboot your phone at least once every few days (can always run it manually as well if needed). If you leave Jake's in and still use this, then ensure this one is named appropriately so that it runs after his does, or his script will remount the filesystems again with 'discard'.
There are plenty of explanations in the script as well. Point is, just he aware that of it runs before Jake's filesystem mounts do his will overwrite this one's and you'll lose the advantage of trimming on startup (or a schedule).
Check the /data/logs/ directory for output from the script, and be sure to also give this script the correct permissions as well. If in doubt just give it all read/write/execute permissions (well that's what I've been using on both this and the fstrim binary. I've linked both of the files below. I couldn't upload as an attachment so I uploaded to my Drive. Enjoy.
Edit: This was written for and intended for the VS980 (Verizon G2). Other G2s should he perfectly fine and any device that is compatible to run LagFix off the Play Store (you don't need to use LagFix either BTW if using this). Just be sure that you device is on the compatible list before using, otherwise there is a possibility of bricking your device. If using a G2 you're fine, but I never know who else reads these threads.
download ~ fstrim binary
download ~ filesystems-fstrim script
Sorry everyone, I posted this late last night and didn't realize that the directory I uploaded the files to was private. The links should work now as I've set them to be Public.
If you have any questions, feel free to PM me.
Click to expand...
Click to collapse
Can someone chime in on what he's talking about in this very long winded post.
Sent from my VS980 4G using Tapatalk
friguy3 said:
Can someone chime in on what he's talking about in this very long winded post.
Sent from my VS980 4G using Tapatalk
Click to expand...
Click to collapse
If you can't be bothered to read it, it's probably not for you.
Dearborn1977 said:
If you can't be bothered to read it, it's probably not for you.
Click to expand...
Click to collapse
I did read it thank you very much sir. But, not all of us are devs or in the tech industry and understand this. Someone posts something, sometimes its nice to have others chime in or get a more simplified explanation. He posted it last night and nobody really commented on it (one maybe?)....makes you be cautious.
Sent from my VS980 4G using Tapatalk
The information is useful and should be in a thread of its own or maybe okibi can incorporate in 1.2.3
VS980 4G
friguy3 said:
Can someone chime in on what he's talking about in this very long winded post.
Sent from my VS980 4G using Tapatalk
Click to expand...
Click to collapse
It's a utility for trimming (defrafmenting) certain filesystems. This is built into 4.3+ and tries to run at least once every day or two, but we don't have it on 4.2.2 ROMs. The fstrim file is the binary that can run at the command prompt -
Code:
# usage
# fstrim [-v] {/mount-to-trim} // -v flag runs fstrim and sends output to stdout
#
# Example for trimming /data
fstrim -v "/data"
So fstrim goes into /system/bin or /system/xbin (set the permissions correctly so it can run. The other file is a script that I use to replace the /system/etc/init.d/03filesystems file that runs at boot that's included with the ROM (its named something like that, can't check at the moment). First it remounts all the filesystems just like the one in ROM does except they are mounted without 'discard' since we are trimming and don't need it. Then the script runs fstrim on all mounted volumes that it can run on and logs output to /$ANDROID_DATA/logs (/data/logs). Need to be sure to give this script the correct permmisions as well.
There's an app in the PlayStore that does the same thing except it doesn't tell all the filesystems or remount all your filesystems without the 'discard' flag which is really easy to use. This is just a more thorough method of trimming what that app doesn't and optimizing your mounts accordingly to take advantage of it (using trim on filesystems with 'discard' is redundant and using 'discard' slows performance down as the OS notifies in real time what files in the file index have been deleted/moved..
---------- Post added at 05:04 PM ---------- Previous post was at 05:01 PM ----------
smacklayer said:
What does this have to do with this ROM/Thread?
Click to expand...
Click to collapse
Well, it is meant (as is) to replace the 03filesystems script in the /system/etc/init.d folder. Or it can be noticed and set to run on a schedule. It was to written on a vs980 running this ROM, so that's where I'm sharing it.
Will the script trim on its own?
VS980 4G
veloct said:
The information is useful and should be in a thread of its own or maybe okibi can incorporate in 1.2.3
VS980 4G
Click to expand...
Click to collapse
Hopefully soon we won't have to worry about it since it's built into 4.3+. I might post it in the G2 (all) development area later this evening if it proves helpful to anyone.
This should really be the Themes and App thread not in a Rom thread.
Link to where it should be below.
http://forum.xda-developers.com/lg-g2/themes-apps
MidnightHarvester said:
INTERESTED IN A BETTER LAGFIX?
Why would you want to use this (especially if using the LagFix in the PlayStore)? Good question!
Optimized Filesystem Mounts
If you use the lagfix app off the PlayStore (or any script/app/utility/etc that uses fstrim) then mounting the filesytems with the 'discard' option is not only redundant, but also gives a performance penalty since with 'discard', the file index AND OS are both made aware immediately when memory is free up to enable garbage collection. This sounds fine, except that doing this on the fly like this also slows things down a lot. Since we will he using fstrim ourselves we don't need this extra overhead. In the script is a good link to read that explains things better than I can.
More Thorough!
Every other method I've seen so far only trims /system, /data, and /cache. There are many other mounts that can be trimmed, and some are written to quite frequently (/persist as an example).
Maintains Lots of All Activity
All activity is logged and sent to $ANDROID_DATA/logs/ where it's then saved. That way you can tell if it's running on boot or on the schedule as it's supposed to he running.
OK well, there's not a lot going on here, just felt like being overly dramatic as it's boring over here at the moment. All of the above is true, and after deciding to post it in here I cleaned it up quite a bit so even the most novice at BASH (any language really) can understand what's going on and change it to suit your needs.
A few things to point out. You WILL need to have the fstrim binary located somewhere in one of your environment paths. A good spot for it is always /system/bin or /system/xbin of you are having trouble deciding where You will probably want to also ensure that the fstrim binary has the correct permissions. If you are unsure of what those are, just give it all read/write/execute.
Second, you will need the script and figure how out how you'll be using it. You need to keep in mind that in the /system/init.d/ directory there is a script there called 03filesystem (something like that) which also mounts the fileaystems. If you like, you can move that script to you sdcard (don't keep it in init.d though or it'll be run..I don't know if having a .bak file extension will stop it as I've never tried) and copy this script over. This script's mounts are EXACTLY the same (even includes the break lease at the end) as what Jake uses as default except without the 'discard' flag. Replacing the default 03filesystems with this one is a perfect place to run the script if you reboot your phone at least once every few days (can always run it manually as well if needed). If you leave Jake's in and still use this, then ensure this one is named appropriately so that it runs after his does, or his script will remount the filesystems again with 'discard'.
There are plenty of explanations in the script as well. Point is, just he aware that of it runs before Jake's filesystem mounts do his will overwrite this one's and you'll lose the advantage of trimming on startup (or a schedule).
Check the /data/logs/ directory for output from the script, and be sure to also give this script the correct permissions as well. If in doubt just give it all read/write/execute permissions (well that's what I've been using on both this and the fstrim binary. I've linked both of the files below. I couldn't upload as an attachment so I uploaded to my Drive. Enjoy.
Edit: This was written for and intended for the VS980 (Verizon G2). Other G2s should he perfectly fine and any device that is compatible to run LagFix off the Play Store (you don't need to use LagFix either BTW if using this). Just be sure that you device is on the compatible list before using, otherwise there is a possibility of bricking your device. If using a G2 you're fine, but I never know who else reads these threads.
download ~ fstrim binary
download ~ filesystems-fstrim script
Sorry everyone, I posted this late last night and didn't realize that the directory I uploaded the files to was private. The links should work now as I've set them to be Public.
If you have any questions, feel free to PM me.
Click to expand...
Click to collapse
veloct said:
Will the script trim on its own?
VS980 4G
Click to expand...
Click to collapse
The script needs the fstrim binary, which you can grab elsewhere if worried about this one. I also went in and made the script as readable as I could. Without the fstrim binary, all this script does is remount all the filesystems without the 'discard' flag. If you are using the LagFix app then that's still useful as we don't need discard if manually trimming.
---------- Post added at 05:27 PM ---------- Previous post was at 05:14 PM ----------
Jimi Mack said:
This should really be the Themes and App thread not in a Rom thread.
Link to where it should be below.
http://forum.xda-developers.com/lg-g2/themes-apps
Click to expand...
Click to collapse
I need to clean it up in a proper text editor first before sharing to everybody. The built in text editor is not to useful when scripting because of the screen sizes and blocks of text often become mangled (especially in the comment). I'm going through it now and reediting with the proper text encoding. Won't take long but in the meantime I need to fix the encoding. I added the commenting in last night using the built in editor with Root Explorer which .. Well .. not too useful lol.
Once I'm sure the encoding will work across the board I'll post in that forum.
friguy3 said:
I did read it thank you very much sir. But, not all of us are devs or in the tech industry and understand this. Someone posts something, sometimes its nice to have others chime in or get a more simplified explanation. He posted it last night and nobody really commented on it (one maybe?)....makes you be cautious.
Sent from my VS980 4G using Tapatalk
Click to expand...
Click to collapse
I didn't mean to sound like a jerk, was just trying to say that given this mod has you replacing a script and adding a binary, if it's over your head I wouldn't mess with it.
Dearborn1977 said:
I didn't mean to sound like a jerk, was just trying to say that given this mod has you replacing a script and adding a binary, if it's over your head I wouldn't mess with it.
Click to expand...
Click to collapse
Went in and cleaned the formatting up using 920,l text editor and updated the original post I made with the updated link. If downloading, use the links on my posts and not any of the links from the quotes. If editing, it's best to use an editor that doesn't have word wrap enabled or at least an option to turn it off. That applies to any type of scripting or programming language. Otherwise, be careful that commented text doesn't get cut and interpreted code.
Anyways, he's right. If something looks like a foreign language to youz be sure to study up on it or bring along a good translator/guide before going to visit for a while. There's nothing complicated going on but the terminology obscufcates even the simplest of sentences. See? Malladus doesn't (I should say stock 4.2.2) doesn't include fstrim, a feature that's in 4.3+. You won't replacing any binaries unless you've already added fstrim yourself, in which case all you'd need is the script.
I think this is definitely a useful post for those interested, but has anyone actually verified that running fstrim on the G2 is 100% safe from the EMMC corruption issues that had plagued other devices in the past? Downloading Lagfix wouldn't be a good test as that program hasn't been updated since long before the G2 release (March 2013).
Just reporting back, I'm generally dubious of mods promising to smooth out the ui and have found things like entropy seeders to be more trouble than they're worth, but this mod works, plain and simple. Not that the G2 needs much smoothing out but if you've ever tried a CM based ROM on the G2, you can tell stock based ROMs aren't as smooth.
I was under the impression fstrim was only useful on older hardware.
Sent from my VS980 4G using Tapatalk
soapinmouth said:
I was under the impression fstrim was only useful on older hardware.
Sent from my VS980 4G using Tapatalk
Click to expand...
Click to collapse
The fstrim utility is built into Android 4.3/4.4 ROMs by way of baking it in the vold deamon. For more information you can read this page. Basically it's responsible for mounting the /system and /data, ... on start and running the init startup stuff (init.rc for example). They use analgorithm for fstrim as to attempt to have it run at least once every 24-48 hours.
On 4.2.2 we don't have fstrim and instead volumes are mounted so that the OS and disk are both kept up to date on which blocks of memory are free and that can be used. Doing this on the fly slows down performance, and that's why I remount the volumes without that option at the beginning of the script, so we can take advantage of the performance gains and run fstrim ourselves on all volumes (ffilesystem's that are able to be trimmed at least...if the file system doesn't support it then it won't be trimmed).
By placing this script in our init.d folder we can run keep our volumes 'defragmented' without having that extra process run all the time (simple way of pitting it). It should run at least once every 5 days or so at the least. Fstrim is relevent for ext4 volumes (and a handful of other types) and therefore relevant to any device where all filesystem layers support it. One other advantage of fstrim is that it returns a value whereby setting the 'discard' does not. If you run fstrim in verbose more or assign the result to a variable and it returns either "0 bytes were trimmed..." or "xxxx bytes were trimmed..." then you know it's supported and relevant. You can also check your mounts by typing 'mount' at a command prompt. There you can check and see if your filesystems are using discard or not.
Devices that mount their filesystems without discard and without the fstrim utility eventually can and will become intolerably slow or usable due to a process called "write amplification". Eventually it will become hard for the disk to find blocks of memory to erase. Only empty blocks of memory can be deleted. When writing to memory, the smallest is a page. A block holds many pages, so eventually space becomes a premium and it becomes difficult to find empty blocks to erase so that a page in the block can be used to write something do. The more complicated mappings and having to shuffle data around is a huge culprit of 'lagging' ones' device.
It gets confusing, especially when I'm deciding what's important enough to work on and use as there are a lot of tweaks out that don't actually do anything but are still used for some reason (probably out of habit over time). This is definitely one of the more useful tweaks to make on 4.2.x for improving performance (as long as the filesystem mount changes are used alongside it).
I'm not familiar with all the G2 ROMs (as in I've only used one and I use that as a base to build on), and this could possibly be built in in the form of init.d scripts or built into vold if on AOSP (though I haven't seen any AOSP 4.2.x ROMs for the G2 considering the newer versions). In that ca
xdabbeb said:
I think this is definitely a useful post for those interested, but has anyone actually verified that running fstrim on the G2 is 100% safe from the EMMC corruption issues that had plagued other devices in the past? Downloading Lagfix wouldn't be a good test as that program hasn't been updated since long before the G2 release (March 2013).
Click to expand...
Click to collapse
is just dared to try lagfix and it worked like a charm!
This is only good for Android 4.2.2 builds and older
Sent via Crossbreeded, 100% V6 Supercharged. KT747'd and Linaro Built Paranoid Android 3.10
I've been running LagFix Premium since the first day the G2 was rooted. Every morning at 5AM. Overkill, perhaps, but this is what kept me sane with the old Galaxy Nexus. When I first used LagFix on the GNex it changed my world.
luv2increase said:
This is only good for Android 4.2.2 builds and older
Click to expand...
Click to collapse
That's exactly what the OP said in the long post two above yours.
---------- Post added at 09:47 AM ---------- Previous post was at 09:45 AM ----------
MidnightHarvester said:
You can also check your mounts by typing 'mount' at a command prompt. There you can check and see if your filesystems are using discard or not.
Click to expand...
Click to collapse
What specifically should we see when we type "mount" if the filesystems are using discard?
as xposed for nougat is already arrived officially many modules are not working
there is either File Based Encryption in data partition or by wiping data partition from twrp removes it
anybody able to read shared_prefs either with FBE or without it successfully so that it works properly,if that so please let us know how so that other module developers can fix their modules as well
the issue is that you can not read Preferences like used to before
HTML:
pref = new XSharedPreferences(BuildConfig.APPLICATION_ID);
so any values saved in shared_prefs can not be read by xposed at the moment on nougat atleast on galaxy s7 930F
i am looking for workaround,i tried putting prefs in /data/here it works but not so stable
This seems to work OK for me:
https://developer.android.com/refer...xt.html#createDeviceProtectedStorageContext()
https://developer.android.com/refer...renceManager.html#setStorageDeviceProtected()
I adjusted one of my modules to use Device Protected Storage and it seems to initialize preferences fine on FBE devices.
i need tester for this
because i am unable to boot if i flash magisk or supersu without formating data partition ,so i format /data partition and rooted which eventually remove encryption from /data partition so unable to test
i saw your commit but would be fine if i got tested with encrypted /data partition to test
C3C076 said:
This seems to work OK for me:
https://developer.android.com/refer...xt.html#createDeviceProtectedStorageContext()
https://developer.android.com/refer...renceManager.html#setStorageDeviceProtected()
I adjusted one of my modules to use Device Protected Storage and it seems to initialize preferences fine on FBE devices.
Click to expand...
Click to collapse
I have the same issue. To fix it, actually, we don't need to touch device protected storage. But we do need to set up the package folder permission and the preference file permission.
I set the folder to 711, and the file to 644. Then the preference works well. XSharedPreference.makeWorldReadable should set the file permission. And you may need to set up the folder permission manually with setExecutable(true, false).
guangyu.zhou said:
I have the same issue. To fix it, actually, we don't need to touch device protected storage. But we do need to set up the package folder permission and the preference file permission.
I set the folder to 711, and the file to 644. Then the preference works well. XSharedPreference.makeWorldReadable should set the file permission. And you may need to set up the folder permission manually with setExecutable(true, false).
Click to expand...
Click to collapse
The thing is OS automatically changes permissions of preference files back and removes readable flags. This happens when preferences are committed to the filesystem.
To work around this I had to implement a solution that tracks those changes and adjusts permissions as necessary.
https://github.com/GravityBox/Gravi...o/nougat/gravitybox/SettingsManager.java#L371
https://github.com/GravityBox/Gravi...ougat/gravitybox/WorldReadablePrefs.java#L157
C3C076 said:
The thing is OS automatically changes permissions of preference files back and removes readable flags. This happens when preferences are committed to the filesystem.
To work around this I had to implement a solution that tracks those changes and adjusts permissions as necessary.
https://github.com/GravityBox/Gravi...o/nougat/gravitybox/SettingsManager.java#L371
https://github.com/GravityBox/Gravi...ougat/gravitybox/WorldReadablePrefs.java#L157
Click to expand...
Click to collapse
Yeah, you're right. So we need to proactively set it readable to work around it.
By the way, Gravity Box is a great project. It helps me a lot on the exposed development.
Hello, Can i help me.
Android 7.1.1 (Nougat) can not be used XSharedPreference can not read the contents of the file,How to solve this problem?Thank you
Good day,
I recently discovered malware in the root directory under the / prism folder that installed an app called Yandex into my system and contained various hidden APKs. (and files with .sogou at the end).
These manipulated my internet browser in some way and I was only able to remove them by flashing the stock rom.
Now I get the message from TWRP that the partition / prism could not be mounted. Even so, everything seems to be working fine on the device.
Now there is no more content in the / prism directory. What is usually stored there and what is its purpose?
Do I have to rework something?
I can't find an explanation anywhere else on the Internet ...
Thank you and best regards
According to https://github.com/PrismLibrary/Prism
Prism provides an implementation of a collection of design patterns that are helpful in writing well-structured and maintainable XAML applications, including MVVM, dependency injection, commands, EventAggregator, and others.
Click to expand...
Click to collapse
In short Prism is a framework to build applications which in turn it's built on top of another framework called Xamarin (XAML for Android).
As of why it's in the root directory I suspect is part of AppCloud, Samsung's system app, that basically does remote installation of apks.
If it is correlated to AppCloud (Big IF) then:
If you are rooted and on stock OS and have that app enabled it's not far fetched to think that there is an exploit for it out there and basically anyone could remote install any APK through root privileges and the backdoor that AppCloud system app gives the.
It's could be as easy as editing a file from within the malicious app which could change the behaviour and URL from which it fetches the needed apks. Whereas installing apks from within the malicious app needs explicit OS permissions (which AppCloud has).
I too had apps installed post-upgrade by the AppCloud system app, but I don't have root to analyse this further so all the above are just speculations based on the two things you said and my previous observations.
In the end you could have contracted the malware in a million different ways. That's how it goes with root access on OS and careless root management.
I have to admit that I was too careless with root privileges and experimented with little knowledge.
Hope that helps others to deal with it more intensively beforehand.
Your explanation helped me, the problem is a bit more serious, it is probably about corrupt security certificates in the system that are administered from outside
In this case, is it even possible to reset or delete the CA certificates? I guess I fell into a spoofing trap.
Maybe flash the stick rom again through Odin?
Is that embarrassing: D
Sorry for the graveyard post but I don't see any other threads about this.
Prism is the name of the NSA surveillance program. I guess that this is exactly that.
It's hidden because you can only see that it exists with root and most people don't have root.
I have this folder too on my rooted Galaxy Fold 4. It was already in the stock ROM and I cannot remove it because the directory is mounted as read only.
If found the mounts file (which is also read-only) and it says:
Code:
/dev/block/platform/soc/1d84000.ufshc/by-name/prism /prism ext4 ro,seclabel,relatime,i_version 0 0
I tried to give me the permission to write / delete the folder but "permission denied" ... and yes I did that as root.
Nexariuss said:
Sorry for the graveyard post but I don't see any other threads about this.
Prism is the name of the NSA surveillance program. I guess that this is exactly that.
It's hidden because you can only see that it exists with root and most people don't have root.
I have this folder too on my rooted Galaxy Fold 4. It was already in the stock ROM and I cannot remove it because the directory is mounted as read only.
If found the mounts file (which is also read-only) and it says:
Code:
/dev/block/platform/soc/1d84000.ufshc/by-name/prism /prism ext4 ro,seclabel,relatime,i_version 0 0
I tried to give me the permission to write / delete the folder but "permission denied" ... and yes I did that as root.
Click to expand...
Click to collapse
did you ever find anymore about this? ive found it on two of my phones. both samsung. cant find much online about it...