Adreno 200 GPU Tweakable! - Sony Ericsson XPERIA X10 Mini

From Xperia Play forum, I've noticed following:
http://forum.xda-developers.com/showthread.php?t=2167228
If you add adreno_config.txt to /data/local/tmp/ with specific options, they will work.
If you want a real example to see that tweaking works, just put into txt following: "FPSCap=20" (or 10). Reboot, and you'll notice that FPS will be lower, which proves that this way of tweaking is working for our Xperias, too.
This should work on all GB/ICS/JB ROMs as far as I think.
All possible variables and values should be available in that thread. NOTE: Some tweaks may cause issues in general, so don't do it as it may cause hangs or bootloops (or soft brick).
Another config: http://forum.xda-developers.com/showpost.php?p=38478568&postcount=187
It may be useful for performance, or battery saving, but it's still unknown how it works. I've just noticed this feature today, I haven't tested everything.

you should share this in http://forum.xda-developers.com/showthread.php?t=1881984 , more people will look at it

Related

[REF][3/31/11] GizmoDroid Braindump or "Ideas for a Fascinating Tomorrow"

Topics Covered in this Thread So Far (or "potential areas for investigation/improvement")
USB modes confusion, CD-ROM mounting bug, and how to make it useful
Hunting for buried treasure in system apk's
EFS backups
GPS
Wifi
Stuff About CDROM/USB Device Protocols
More Stuff About CDROM/USB Device Protocols
Stuff On EFS
Stuff On Hidden Options
GPS power toggle from Drop Down Menu
EVRC-B Phone Voice Codec
Background Noise Cancellation during call
Disabling of debugging stuff and additional code checking
PNG/ogg optimization and Zipaligning
libdvm.so Optimization
Battery Service Polling
RAM management
Disk Scheduler
A more complete nandroid solution
A better voodoo implementation
About scripting
Sleep of Death
Phone.apk mods
More EFS partition info
Info about other partition backups (backing up kernel and others)
Wakelocks/Timekeeping issues and fixing it at the kernel level
Partition mounting tweaks (noatime and such), power management, vm writeback time
More VM tweaks
SD card cache tweak
Reclaiming the Preinstall partition
So I'm going to be out of town for a week or so, and I know that with hacking, that means I could come back and nothing will have changed... or I could come back and everything will have changed (source, anyone?)
EDIT: I'm back... and everyone got thunderbolts! I swear, I leave for one week...
Unfortunately, I myself am a jack-of-all-trades (king of none, sadly), so I've got about 50 different little things I've been working on researching, and won't make much progress on if I keep on trying to do them all at once, since every single project requires that I learn an entirely new set of principles that I never knew about before. Because of this, I have decided to do a brain dump. Hopefully this is welcomed. Some of it will be stuff you already know, some will be dead leads that don't apply, but I hope that there are some nuggets of goodness that will inspire someone to investigate further.
Basically, I go hunting for things that catch my eye, and mark them to investigate later. Unfortunately, later on, I can't find it, so I have to find it again. Therefore, I'll try to present the most I can re-find about a given topic. Also, my memory is very shoddy, so beware of inaccuracies. I am not stating this as a gospel truth, but as a jump off point to maybe catch your interest to go investigate something further. I welcome any discussion, but if you take an idea and make it your own, feel free to start a new thread about it.
Part I:
USB modes confusion, CD-ROM mounting bug, and how to make it useful
Samsung integrates several different USB devices into that one little plug. I count the following:
1. UMS - Mass Storage Mode (looks like a jump drive)
2. MTP - For use with media players to transfer music/videos/pics (looks like a media player)
3. CDFS - Mounts an image onto a virtual device (looks like CD-ROM drive)
4. DUN - Used for Dial-up-networking (looks like a modem)
5. COM port - Used for programming using low level tools like QPST (looks like a serial port)
6. ADB bridge - communicate over adb to the phones through a terminal
With the possibility of TV-out over usb, USB On The Go, or USB Host, then there are probably more.
There is a lot of weirdities that happen because there are different parts of the phone that activates different "modes" which are usually a combination of the above. Try rebooting into CWM and then select to mount the USB. Depending on your set up, you will probably find your SD-drive mounted to the virtual CD-ROM device. Is it the kernel or recovery that's not set to the right usb mode? I don't know.
There are so many different areas that can change the USB device, so it can be confusing to know why you are seeing a certain thing, even though you have it set as something else from the menu. Just a few examples: In the Settings, you have Debugging, which will turn on UMS, CDFS and the ADB. Depending on what Settings.apk you use, there is an accessible Dial-up networking option to enable the modem. There are dialer codes that affect the enabled devices(**usbii which accesses the PhoneUtil.apk, **debug which allows you to change the port map, and toggle DUN). There is a persistent ADB property that can be stored in "/data/property/persist.service.adb.enable". There are system settings that can be added to the .prop files that load on boot, or set by "setprop somepropertyhere" using a terminal or script.
Have you ever plugged in your phone and gotten an autorun prompt that says something about verizon? On the stock roms, there is an ISO that is stored at "/system/etc/verizon_i500.iso". It contains the samsung usb drivers and a couple other things. When it works properly, this would let you install everything you need to get your phone connected to a new computer, without going through the hassle of finding the files. This is especially helpful if you only have internet access through your phone and cannot obtain the drivers elsewhere. All this seems to be handled by the kies service manager, which does really weird quirky things. For instance, you can manually mount the iso onto this virtual cd-rom device, but kies will unmount it after 15 seconds or so. This is why sometimes, if your sdcard gets mounted as a cd-rom, you can actually read the contents for a little while before it disappears.
Why does this matter to anyone? Well for one thing, it explains a lot of the bugs. There are so many different devices, that sometimes they get mixed up in scripts. This is especially true when porting from other software, or mixing and matching kernels and OS's and recoveries. If they aren't all in agreement, weird things will happen.
Secondly, it opens up a cool built in feature that could easily be utilized: emulated cd-rom drives! I haven't isolated the properties (but it doesn't seem too hard to figure out using the logs and such), but I have successfully mounted the memtest boot iso to the virtual CD-rom drive. Think about it: you have a 16gb sdcard in there. Throw on a live-linux iso, and if the computer was made in the last 5-10 years, it should be able to boot from it (not tested yet).
Right now, you can quickly verify this works by making a symlink from /system/etc/verizon_i500.iso to the iso on your sd card. Then, if you know how, enable the virtual cd-rom (I can't remember the exact variable but its as easy as "setprop cdfs.something enable"). There you go! Instant Virtual CD-ROM drive. You can use it to install stuff on your netbook that didn't come with one, or turn your local library PC into a hacking command center (that's a joke... don't do that).
Now obviously, this could be easily packaged up into a neat little apk that would enable the right USB mode, and then allow you to pick the ISO you want to mount. This would be the ultimate goal, not this dirty little demo. Even easier to implement would be to call it from a script, using a script shortcut program.
Part II
Hunting for buried treasure
There are a lot of things hidden in the OS. Almost all of the APK's, if decompiled, have things that are hidden. Sometimes, the full code is there, but the ability to access it has been removed. To make it visible, you may only need to add the info to the layout xml, or remove a line of smali code (look for things like "removePreference" and such).
Other times, it's just a stub of the information. The great thing is, there are so many variations of our phone, almost anything missing can be inserted again if you can find it another device's code. Sometimes, this is a huge pain, because the dependencies can be spread over multiple files, requiring quite a bit of persistence and dedication. Other times, it's as simple as copy and pasting a line, or an entire method.
The i9000, Mesmerize, Captivate and Vibrant seem to have lots of our missing goodies, but a lot of them need to have the code adjusted, and I don't know what to work on first, since some of the easy stuff is worthless, and some of the valuable stuff is impossible. Here are just a few of the screen shots I've taken (yes, I realize a lot of them are probably not portable, but just showing you how much stuff can be hidden in an APK):
http://www.dropbox.com/gallery/22143517/1/Settings?h=7cc415
There are a lot of little APK's that can only be accessed by dialer codes or through a shortcut program. The useful features sometimes are very small and could either be hacked into the main Settings.apk, or called from it, or added into SpareParts.apk. There are a lot of dangerous things in there ("You want me to format your phone and your SD card?" "Nnnn-" "FORMATTIN YO SDCARD YEAAAAAY") so be careful exploring.
Which brings me to another big issue: EFS backups.
One night, before going to bed, I was poking around in a hidden menu (yep). I don't remember actually changing anything, but I lost a setting. Of course, I have no idea what the correct settings are, so I didn't know what to look for, and for 12 hours straight, my data connection would connect and disconnect every minute. I learned a lot about how poorly the os/radio/kernel/something handles the data connection, but I also learned about the EFS partition, and how this could have easily been fixed if I had a backup, and also how it could have been much, much worse.
If you wander through the i9000 forums, there are multiple warnings to backup your efs folder before messing with any settings. If you corrupt certain files, your phone will lose the ability to regenerate its EFS data, and you will lose your IMEI number. Meaning, your phone will not be activate-able. Meaning, your phone will have to be shipped to Samsung to get it fixed, so... good luck with that. If you think you are smart enough to avoid this, if I remember right, supercurio lost a device to this while trying to figure out the secret audio settings stuff.
It's simple to backup the entire partition using your favorite terminal command (I used dd to copy the efs dev/block device to the sdcard, don't know if this is the best method or not). However, it is virtually impossible to get it back once it is gone, if you don't have a backup. (There is someone charging for this service for i9000 phones).
My theory is that i9000's being used on different carriers causes lots of more people to play around with the EFS data, causing more people to corrupt it. Since the Fascinate is mostly only getting used on Verizon, then there aren't as many cases. However, one mistake in a mounting script in a recovery/kernel/os, and you're toast. Not only that, if you have a working backup and you go messing with the radio settings, then you will always have a backup that doesn't require you to activate another phone and then reactivate your's in order to get your phone working again. (All the while, watching in horror as your logcat fills with a continuous stream of data connection failures).
This is something I'd love to hear more from by someone who knows about it, and if it's as valid of a concern as it is on the i9000, then I'd really like to see more publicity about it's importance.
Part III
Is supposed to be about GPS and wifi, but dang, that is a crazy amount of stuff to write. I hope that a little bit of info, along with a link dump will be okay. And to be honest, I'm getting tired of typing now. I keep thinking of more stuff, but I haven't even fully fleshed out what I've posted so far. Hopefully, I'll be able to do some more later (and even more hopefully, there comes some good from it).
GPS
Most promising is the Captivate GPS work. This thread is a little bit old, but it contains good info. There might be newer information available as well:
http://forum.xda-developers.com/showthread.php?t=881941
The i9000 GPS dev has some good posts as well, explaining it very well. Again, there might be newer information, but this is what I have bookmarked:
http://forum.xda-developers.com/showthread.php?t=842694
It talks about using the "LbsTestMode.apk" for testing. I have no idea if it works for actually configuring the files (I was told it doesn't), but I am providing it here for the possible testing it can do:
LbsTestMode.apk
http://dl.dropbox.com/u/22143517/Android/LbsTestMode.apk
This is just a quick (and not very entertaining) video of setting up a shortcut to access it instead of using a dialer code, then running through the menus real quick so you can see what is available.
http://dl.dropbox.com/u/22143517/Android/lbstestmodedemo.mp4
From a cold boot, in google maps, I can get a lock down to 2 meters in 3-5 seconds with wifi off and GPS standalone enabled when I'm outside. Inside, usually 10-20 meters at first, then drops to 5 after a few more seconds. So I don't know if it's something I've done, or if I just got lucky with a good chip, but I have a hard time testing GPS fixes because I don't have problems (but things can always be better, right?)
I highly recommend checking into the app "GPS aids" if you like the idea of assisted gps. I find that AGPS hinders my GPS performance, but after using GPS aids, it's about as good as normal. So for someone with bad standalone GPS performance, maybe it would help them out using AGPS.
Wifi
Oh boy... I don't know where to start with this. It completely ignores the system property wifi.supplicant_scan_interval. There are files spread across /system and /data that relate to wifi. The binary 'wpa_supplicant' is a source of hackery on other systems, but I don't know if anyone has attacked it on the Fascinate side of things. Want to see ad-hoc networks? This is the file that they usually hack to do that. Other devices have hacked the ability to enable infrastructure mode for wifi tethering. I don't know if this has been done yet for SF.
There are a lot of hidden wifi, wps, and tethering options in the Settings menu. Several system settings properties relating to wifi, several .conf files for the messing, wlan services for the playing, and a nice engineering mode when calling WlanTest.apk that says it's loading a different driver (I can't remember what all neat stuff is in that).
Stuff About CDROM/USB Device Protocols:
My thoughts exactly, the cdrom driver is useful, maybe more so.
The issue as to what starts when is configurable, Eclair had a hard limit of 2 usb modes at any given time, if I recall correctly Froyo supports 4 and that maybe a hard limit by the device. So what is running has to be carefully chosen, with mtp, virtcd, virtcom, ums, adb, acm, usb-otg, tvout, wired tether you hit 4 quick. This is an issue on my table but of low prority, as without a fully working kernel these amenities become mute.
I intend to make the cdrom driver configurable to select various isos from sd and switchable on command, I feel it would be more useful in that state, and I plan to give the user more control over what usb modes are selected using a sysfs setup, the defaults are in about 6 profiles that barely cover my needs without slowing me down.
Edit, More Stuff About CDROM/USB Device Protocols:
I have never tried to get all of the devices working simultaneously, but I do know that if you enable the virtual com port for EFS editing that DUN support is disabled, and that if you enable UMS(USB MassStorage)/SDcard that UMS/VirtCD is disabled, and if you enable UMS/VirtCD that UMS/SDcard is disabled, and I don't use MTP (think syncing your music from WindowsMediaPlayer to Android) so I'm not 100% sure about this one, but I think MTP is disabled if ADB is enabled. At least this is how stock is anyway.
Stuff On EFS:
The I9000 EFS stuff is a little out of my department, but I would love the ability to edit EFS reliably within the OS, unfortunately unlike with the I9000 our devices do not mount an EFS partition, and I have not ventured to attempt looking for it. I imagine it would be just as easy for us to edit it in device as it is for the I9000 people, however if it is due to the way the radios are handled this may not happen, as we are still trying to figure out where the Fascinate keeps it's modem, it would make sense that the EFS partition and the modem code would rest in the same area or partition, if we could only for certain identify it. I think the FSR and FSR_STL drivers obscure our view of it, no fear, I will be attempting to import Gingerbreads MTD work into the my WIP Froyo to hopefully solve this issue once I get the radio working reliably. If and once we do have access to EFS, we could technically copy and replace or edit our Verizon EFS information live, flash from one network to another, and update tower information possibly without even restarting the phone....that is IF we have access to the EFS partition, and logic says we should have access to it ( as every other CDMA Verizon and Alltel device I have used does have one ) and it is programmable from within the Samsung device setup APKs.
Stuff On Hidden Options:
As for the special hidden stuff....it just boggles my mind the amount of crap they hide (or did they forget about this stuff?!?) from us, most of it doesn't work, most of it has no warnings for the DANGEROUS stuff it can do without prompting for a confirmation (ie complete factory reset and yes sdcard formatting) I think this crap should have been jammed into a single engineering menu accessible via a fixed passcode rather than scattered from A to Z in 20 different APKs with little more indicator of what an option does than some cryptic function name and a report of what someone else may have experienced only after executing the command. At the very best it's an unorganized, inefficient, undocumented, unreliable, low level, factory device configuration menu set that even most experts do not know how to fully utilize.
SirGatez said:
My thoughts exactly, the cdrom driver is useful, maybe more so.
The issue as to what starts when is configurable, Eclair had a hard limit of 2 usb modes at any given time, if I recall correctly Froyo supports 4 and that maybe a hard limit by the device. So what is running has to be carefully chosen, with mtp, virtcd, virtcom, ums, adb, acm, usb-otg, tvout, wired tether you hit 4 quick. This is an issue on my table but of low prority, as without a fully working kernel these amenities become mute.
I intend to make the cdrom driver configurable to select various isos from sd and switchable on command, I feel it would be more useful in that state, and I plan to give the user more control over what usb modes are selected using a sysfs setup, the defaults are in about 6 profiles that barely cover my needs without slowing me down.
Click to expand...
Click to collapse
Glad to see you in here, as I think the whole issue is very much best implemented/fixed from the kernel with the OS just facilitating from there. Also interesting that someone else was thinking about this while I was. With the little amount of knowledge I have, trying to hack around the different usb profiles at the OS layer is a pain. ("let me mount this" "NO, STOP IT!" "come onnnn let me turn that on")
I know I personally have had UMS, CDFS, DUN, Serial, and ADB all showing up in windows device manager at the same time, by manually toggling them on. That was as far as my test went, so I have no idea if they were accessible at the same time. But it's interesting to watch the device ids change as it switches modes. I have very little driver knowledge, so actually doing much digging was over my head.
Ok, I think I'm done for the night. Sorry for the quality of info, I'll try to work on it more sometime soon.
I feel like we are all just holding our breath for froyo source, but a lot of profitable work can be done in the meantime. Really, a lot has already been done that we can just kang from other devices. We just need to look outward at our foreign cousins.
For instance, supercurio did a lot of work on hacking the sound before they had kernel access. Using his methods from back then might give us some improvements in the meantime.
Things like GPS and Wifi will probably continue to be an issue even after we have source, so they can be done without fear of being completely forgotten about as soon as source drops.
Lots of mods and tweaks that are widespread across other devices don't seem to be discussed. Build.prop hacks are cheap and easy things that don't get much action around here (though not all of them are applicable/or even helpful). Someone brought up the FuguTweaks thing the other day from the Captivate forum. More of these cross-device discussions would be awesome.
God, my brain just exploded.
This is actually quite interesting, though. Now, on Part II: certain Sammy .apk's have hidden usage? Could we combine that into a massive super-settings app?
Samsung Fascinate, Verizon
EB01 Superclean 2.4
Kenesis' TransMyst GBKB (EPIIIIIC)
Mob87's Honeycomb Theme
Stock Kernel
obsidianchao said:
God, my brain just exploded.
This is actually quite interesting, though. Now, on Part II: certain Sammy .apk's have hidden usage? Could we combine that into a massive super-settings app?
Click to expand...
Click to collapse
That's the idea. CM has a lot of this kind of thing, but we aren't there yet. There are also a bunch of testing apks that I didn't mention built right into the stock ROM.
There are even some super mega apps (some available on the market) that are somewhat compatible (be careful with these, especially for low level stuff). "Sysinfo" reveals a lot of... system info that you normally have to go digging around for. So does "Under the Hood". "Tuxility" doesn't really have much, but could be an easy start for the basis of a SF compatible utility. "SuperPower" gives a lot of control over power options. "SpareParts" from other Galaxy variants have had lots of options added. There are some other SGS specific tools that half work, as well, but their names are slipping me now. One allows you to flash a kernel from the OS. Also, I wonder if Development.apk from the emulator might have some use?
There are tons of things that could easily be added to the SpareParts app too, if you didn't want to add it to the Settings app.
So much stuff to kang.... so little time.
Dude. This is... amazing. Can you mentor me on this stuff? XD
Now, Spare Parts is that app in SC that shows the battery info and stuff, no?
Edit: and what all could you drag to spare parts? Could it access those hidden .apk's and utilize the secret functions?
This is so cool.
Samsung Fascinate, Verizon
EB01 Superclean 2.4
Kenesis' TransMyst GBKB (EPIIIIIC)
Mob87's Honeycomb Theme
Stock Kernel
Part 4
GPS power toggle from Drop Down Menu
The GPS option from the drop down menu is essentially broken and needs to be fixed. I recall a similar problem on a different device with the wifi. With that device, on observation, I noted that on powering up wifi from the settings menu, I would be connected within 5 seconds, but from the power widget, it would take a full minute. After doing some investigating, the power widget was basically trying to control the wifi device directly. I found a different widget that essentially emulated the same method used in the system settings menu, and it starting connecting immediately. My guess is that the GPS power code on the pull down menu could be modified using the same examination/modification needs to be adapted in the same way.
EVRC-B Phone Voice Codec
Switching to the EVRC-B codec improves call quality substantially, for both parties of the call. If anyone knows of a way to set it that doesn't involve going into service mode and manually changing it, then please let me know.
Background Noise Cancellation during call
Also, I'd love to find a fix for the mic during calling. It's a frequent occurrence for the person I'm calling to be like "Who are you talking to?" because they hear someone talking in the next room away from me. Or a very light sound on my end, elicits a response of "WHAT IS THAT NOOOISSSE??!" from the person I'm talking to. So obviously an issue of background noise cancellation. I'm hoping its a software fixable problem.
I've seen this build.prop edit to mess with the noise cancellation for disabling noise reduction for the voice recorder (Say you are trying to record something like music, or something at a concert, the noise filter would hinder your ability).
Code:
media.a1026.nsForVoiceRec=0
media.a1026.enableA1026=1
Two things about this:
1. I've only seen this kind of property on other devices that have two mics that work in combination for noise cancellation. I'm guessing the SF only has one, and any attempted noise cancellation is done at the hardware level or in software.
2. This would assume that the noise shield actually exists, but the stock Fascinate behavior is to not have it enabled for calling... which is pretty dumb. Given some of their other decisions, this may be true, but I have my doubts. If it's parameters are accessible, and it's merely only needing some tweaking, then I will be happy.
I wonder if supercurio knows much about the noise cancellation, since he's worked with so much of the sound stuff?
Disabling of debugging stuff and additional code checking
Debugging stuff is essential for figuring out problems, but for the 99% of the time, isn't it probably slowing us down? I don't know what would be the best way to easily disable any additional debugging routines that might be affect performance.
As for disabling code checking, I used to run these build.prop edits on an older device. I have no idea if they still apply:
Code:
ro.kernel.android.checkjni=0
dalvik.vm.checkjni=0
dalvik.vm.verify-bytecode=false
Maybe you are the kind of person that needs their phone fully stable at all times (no you're not, because you are on a forum that is made to push your device to the limits). I, however, keep everything backed up, so if disabling this extra "security" might slightly increase risk of data loss, then I'm okay with that (not saying that this is an actual danger, but just in general). The only problem I have is if the increase is negated by a large rise in errors that actually hinder performance, or if it becomes significantly more risky (doubt that's the case, but it's always a possibility).
Somewhat related, we currently keep the dalvik heapsize at 48mb's. Is this the best match for our device, or just the default?
PNG/ogg optimization and Zipaligning
I recently took a superclean rom, and dropped 16MB losslessly just from throwing the pngs through PNGOUTWIN and deflopt (didn't touch the *.9.png files). Free RAM right there. Not to mention that some of those APK's have ridiculous extra resources that can be reduced by cutting color depth or taken out entirely (giant HTML based tutorial files stored in the apk... why?) Also, all of the ogg files can be slammed down using a sox script or an equivalent.
In compression, it's also important to know when its a free and harmless, or when it will reduce stability. You can zip up an APK nice and tight... but aapt is a better method. The files might be bigger, but they will run better (also, learn how to treat *.9.png files, or don't touch them at all).
I've adapted the script from Bugless pete's automatic, on-phone zipaligning utility (just had to change a couple lines). A lot of times there are apk's that slip through the cracks in the ROM's that aren't zipaligned (especially in themes and patches). Again, just free performance that isn't hard to obtain.
libdvm.so Optimization
Has our libdvm.so been optimized to run on on our processor? I know this was a huge boon for older devices, but couldn't find any info on ours.
Battery Service Polling
Ever watched the logcat even when your device is nearly at idle? Ya... that battery is always updating. How do we change this habit? I often wonder how much extra juice would we gain by increasing the length in between battery polls.
GizmoDroid said:
Ok, I think I'm done for the night. Sorry for the quality of info, I'll try to work on it more sometime soon.
I feel like we are all just holding our breath for froyo source, but a lot of profitable work can be done in the meantime. Really, a lot has already been done that we can just kang from other devices. We just need to look outward at our foreign cousins.
For instance, supercurio did a lot of work on hacking the sound before they had kernel access. Using his methods from back then might give us some improvements in the meantime.
Things like GPS and Wifi will probably continue to be an issue even after we have source, so they can be done without fear of being completely forgotten about as soon as source drops.
Lots of mods and tweaks that are widespread across other devices don't seem to be discussed. Build.prop hacks are cheap and easy things that don't get much action around here (though not all of them are applicable/or even helpful). Someone brought up the FuguTweaks thing the other day from the Captivate forum. More of these cross-device discussions would be awesome.
Click to expand...
Click to collapse
Your gonna hold your breath a long time if you're waiting for froyo source.
If anyone needed proof that Quadrant scores aren't good indicators of real performance, this is a real, unedited screen shot from my phone running EB01:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I dropped the link in IRC for giggles and a couple of people lost their minds, accusing me of lying. Sorry fellahs, I got better things to do.
You can boost your quadrant scores this high with a couple easy steps that provide absolutely no performance boost outside of quadrant (it's is similar to why voodoo enabled systems score so high, but only perform somewhat better). So for the hold-outs that still think that quadrant is a reliable benchmark... be aware of it's major flaw.
GizmoDroid said:
If anyone needed proof that Quadrant scores aren't good indicators of real performance, this is a real, unedited screen shot from my phone running EB01:
I dropped the link in IRC for giggles and a couple of people lost their minds, accusing me of lying. Sorry fellahs, I got better things to do.
You can boost your quadrant scores this high with a couple easy steps that provide absolutely no performance boost outside of quadrant (it's is similar to why voodoo enabled systems score so high, but only perform somewhat better). So for the hold-outs that still think that quadrant is a reliable benchmark... be aware of it's major flaw.
Click to expand...
Click to collapse
I have been trying to convince people of this flawed benchmark app for months when using Blazed Eclair, it scores almost normal but runs the same voodoo other kernels do plus lots of other tweaks on kernel side. Very few believed me and switched from Blazed JUST for higher quadrant benchmark scores
Sent from my SCH-I500 using Tapatalk
SirGatez said:
I have been trying to convince people of this flawed benchmark app for months when using Blazed Eclair, it scores almost normal but runs the same voodoo other kernels do plus lots of other tweaks on kernel side. Very few believed me and switched from Blazed JUST for higher quadrant benchmark scores
Click to expand...
Click to collapse
Maybe I should make a HOWTO tutorial on how to get ridiculously high quadrant scores on any OS/kernel, then people would be free from using it to influence their thinking and instead would base it on real world results.
The cynical side of me says that they would just find a new benchmark and do the same thing with it.
Meh, we know the truths, so sure make a howto, maybe quadrant will fix their flaws (yeah...i'm not sure about that one...) people on the otherhand will flock like you say without our intervention, but for the rest of us this could prove helpful in building roms/kernels that do not allow benchmarks to succumb to the same flaws that most current ones do
Sent from my SCH-I500 using Tapatalk
SirGatez said:
Meh, we know the truths, so sure make a howto
Click to expand...
Click to collapse
[HowTo] Release the most downloaded ROM of all time:
Take stock rom.
Insert the following line into a boot script:
Code:
mount -o rw -t tmpfs tmpfs /data/data/com.aurorasoftworks.quadrant.ui.standard
Upload ROM to host of your choice.
Post screenshots of Quadrant scores with download link.
Great Success.
There are lots of ways to inflate quadrant scores... but this is the funniest method because it makes it ridiculously obvious how voodoo can achieve inflated quadrant scores without gaining a similar amount of performance (they both write cache to memory, therefore inflating the I/O scores ridiculously high).
Adding more to the noise cancellation issue, I found some more info out tonight:
Jamezelle pointed out a property that is set in res/values/bool.xml in the Phone.apk "has_noise_suppression" and it's set to false. After digging around, I found that this shows up in the PhoneUtils class if you decompile Phone.apk. It reveals two options: "noise_suppression=auto" and "noise_suppression=off". Some realworld testing needs to be done, but if the fascinate has the noise surpression ability and its just turned off, then this could be turned on again by adding to build.prop, or by modding the options menu to have this show up as an option.
Its very possible that it's hidden because it's not implemented, but other Galaxy S phones have some type of noise cancellation, so it might just not be implemented in the software.
Don't know if you were still looking for how to change EVRC to EVRC-B, but dial **72, the spc code is 000000, press down on the directional button arrow until you see Svc mode nam 1 end of basic nam exit. Press the right directional key once, you will see EXIT change to more, hit enter, press down once and you will see HomePage VoiceSO and EVRC, push the right button to change to EVRC-B. Hit ok and phone will reboot. Sorry for the sloppiness, at work and trying to be quick.
Edit: Ah, nevermind, you didn't want service mode, sorry!
Sent from my SCH-I500 using XDA Premium App
Dread This Day said:
Don't know if you were still looking for how to change EVRC to EVRC-B, but dial **72, the spc code is 000000, press down on the directional button arrow until you see Svc mode nam 1 end of basic nam exit. Press the right directional key once, you will see EXIT change to more, hit enter, press down once and you will see HomePage VoiceSO and EVRC, push the right button to change to EVRC-B. Hit ok and phone will reboot. Sorry for the sloppiness, at work and trying to be quick.
Edit: Ah, nevermind, you didn't want service mode, sorry!
Sent from my SCH-I500 using XDA Premium App
Click to expand...
Click to collapse
Yeah, this way does work, and I have used it multiple times. But it resets itself every time you reactivate, and its near dangerous settings, so its not something I would recommend to newbies.
If there was a less dangerous way to set it (say from a script or an apk) then this could lead to it being more widely recommended. It really does provide substantial improvement of call quality.
If my gf calls using her bluetooth headset, which has mediocre sound quality, the further compression of EVRC makes her very hard to understand. With EVRC-B, I can understand her plain as day.
Dread This Day said:
Don't know if you were still looking for how to change EVRC to EVRC-B, but dial **72, the spc code is 000000, press down on the directional button arrow until you see Svc mode nam 1 end of basic nam exit. Press the right directional key once, you will see EXIT change to more, hit enter, press down once and you will see HomePage VoiceSO and EVRC, push the right button to change to EVRC-B. Hit ok and phone will reboot. Sorry for the sloppiness, at work and trying to be quick.
Edit: Ah, nevermind, you didn't want service mode, sorry!
Sent from my SCH-I500 using XDA Premium App
Click to expand...
Click to collapse
Thanks, working great! But you posted incorrect dial code. Let me correct you. **772

[Q] keymapping/apktool/pngout/minfree/other questions

Over the last few months I have gathered together some various questions I have been unable to answer for myself or by searching. I spend 99% of my time at SDX-Developers but most of the legacy developers have moved on, and so there are few left for people to post questions to. Anyways, here we go.
I will modify this post accordingly as answers come in or I have any more questions.
1) Is there anything else in /system that has to do with keymappings besides /system/usr? There is a bug on a certain 2.2 build for my phone that causes fn+period=.com instead of fn+period=comma, like it should. Replacing the kl and bin files with ones from another build that has correct keymappings does not fix this issue, so this leaves me wondering if there is anything else in /system that relates to keymappings.
2) system apks compiled with apktool will not allow a ROM that formats data to boot. I have heard something about apktool using 'full compression' and am curious as to why this is so?
3) In some decompiled system apks, there are a certain number of folders, obviously. But when recompiled, some of these folders 'disappear' from where they were when the apk was decompiled. Where did they go?
4) I have some custom wallpapers in a ROM, but the filesize for each is much larger then the stock wallpapers. I found pngout to decrease the size, but all it does is increase the filesize. Is there a combination of settings for pngout that will work best?
5) There is a bug on a certain 2.2 build for my phone; basically, Contacts.apk has horrible performance. Scrolling is laggy, Home ---> Contacts window transitions are laggy... everything that deals with Contacts.apk is laggy. Memory leak? Bad code? I did a logcat and no errors showed up, but I do not know how to look for a memory leak.
6) There are six numbers in /sys/module/lowmemorykiller/parameters/minfree. What programs do each of these individually relate to? I know that these numbers are in pages and when free memory drops below that point, the program related to that number is killed, I just have no idea as to what program each number specifically relates to.
7) I want to make a few preloaded appliations in my ROM uninstallable by the user, so they would not have to go through the trouble of manually removing it themselves, which can be a bit over-the-head for new root users. Anyway, I did this by creating /data/app in the root directory of my ROM and adding copy_dir PACKAGE:data DATA: to the update-script. The apps I put there (in /data/app) were in fact uninstallable in my testing, but reappeared after a reboot... so I am stuck. I am thinking I may have to set permissions as well in the update-script but am not quite sure.
8) What does everything in /proc/sys/vm do (individually)? What would the end user notice if these files were edited?
9) What is VR I/O schedualing, CIFS, LZ compression, BFS? And how would I go about removing certain available CPU frequencies (some kernels for my phone have 133MHz removed for faster wakeup), undervolting, and increase the USB draw? I have successfully compiled and booted my first kernel, but am unsure of how to apply different modification outside of what is available in the menuconfig.
10) Zipaligning apks is supposed to reduce their RAM usage. In testing, I zipaligned Browser.apk and it used no less RAM than when unzipaligned. What gives?
11) 0-compressing icons or apks? How to do this? I know that Photoshop lets you chooose the compression level but that reduces quality, so this must be different.
I hate to bump threads but I would really like a reply sometime. Otherwise I will simply post my questions in a different forum.

[Script] MSM8916 Interactive Governor Tuning

This is a script made by a member on AndroidForums originally for the LG Leon. We noticed that the CPU doesn't fall below 800mhz at all regardless of being under load or idle. This causes alot of battery drain since the CPU is running for literally no reason. I noticed the same problem on my Grand Prime G530T as the two devices share the same CPU.
This script will tune the CPU frequencies to drop to 200mhz when idle and fixes the time spent at higher frequencies, spreading the load across the cores more evenly for sustained performance and better battery life.
Instructions (root required obviously):
Download the script and extract it
Install SManager from the Play Store
Locate and select the MSM8916.sh file
At the top select SU
Hit RUN and allow permissions if asked
To see the difference, use a kernel tuning app (Kernel Adiutor I recommend) and watch the cores before and after running the script. It really does make a significant difference.
Credit to Bichofelix at AndroidForums for the script
Edit: fixed the script, now will keep max freq at 1190mhz instead of 998mhz
Edit 2: added sample screenshots of projected battery life
Hi, my device is G530HXCU. I also noticed on CPU-Z app that my device CPU doesn't fall below 800mhz. Tried using this script by following your procedures but the SManager shows "swapon failed for dev/block/zram0" when I run the script, just wanna ask if it is normal? Though when I closed all other apps on the task manager, my device CPU is now shown as 200mhz in CPU-Z. It seems like it worked. Thank you.
slasherkev said:
Hi, my device is G530HXCU. I also noticed on CPU-Z app that my device CPU doesn't fall below 800mhz. Tried using this script by following your procedures but the SManager shows "swapon failed for dev/block/zram0" when I run the script, just wanna ask if it is normal? Though when I closed all other apps on the task manager, my device CPU is now shown as 200mhz in CPU-Z. It seems like it worked. Thank you.
Click to expand...
Click to collapse
Yeah, the swapon thing can happen if your kernel (I think) doesn't support swap memory/zram. My G530T with the custom root kernel does and I don't receive this error, but it won't hurt anything if that particular part of the script doesn't run.
Enjoy the script and let us know how your device is faring with battery and performance. I'm a heavy gamer and from personal experience I get the same amount of performance and better battery, letting me play harder for longer ^_^
Hi, just wanted to share some feedback while using it. It greatly helps with reducing the battery drain and I really loved it, but on my G530H device, I need to run this script again whenever I reboot my phone. Though, when I did press the "boot" icon beside the "su" icon in the SManager and run the script again, it somehow solves the problem. However, the other problem that I've seen so far is that the maximum cpu of my device becomes 998mhz only, so I need to overclock it using a CPU controller app (I used No-frills CPU Control in playstore) to make it 1.19ghz and it worked. Is there anything I can do to help you fix that in the script so I won't need to use any CPU control app? Thank you very much I'm just a newbie here.
slasherkev said:
Hi, just wanted to share some feedback while using it. It greatly helps with reducing the battery drain and I really loved it, but on my G530H device, I need to run this script again whenever I reboot my phone. Though, when I did press the "boot" icon beside the "su" icon in the SManager and run the script again, it somehow solves the problem. However, the other problem that I've seen so far is that the maximum cpu of my device becomes 998mhz only, so I need to overclock it using a CPU controller app (I used No-frills CPU Control in playstore) to make it 1.19ghz and it worked. Is there anything I can do to help you fix that in the script so I won't need to use any CPU control app? Thank you very much I'm just a newbie here.
Click to expand...
Click to collapse
As stated in the OP, its not my script. But I went ahead and did it for you. Redownload the file and do the same as before. Setting the Boot option in SManager will run the script at boot after the system loads and the apps can gain SU permissions
Thanks for the tip and and glad you enjoy!
Added screenshots to the OP as proof of battery saving with the script.
Note: This usage was actually with an app called Resolution Changer that allowed me to use my screen in 720x1280 resolution, higher than stock which is 540x960. I also have Viper4Android installed with the highest audio driver available for it. These mods actually add more stress on the CPU, GPU and battery which would cause more drain. But as you can see...
I am also using a personally rebuilt rom that isn't ready for release yet as I'm having issues building it.
Who needs a 4000mha battery when you know how to use your system?!
Hello guys! I'm posting this now as I was searching on the Internet about Qcomm msm8916 devices! One tip I can give you as I learned some things, is to learn to build your device's kernel from source if your vendor has released it and remove the stock cpufreq limit API, as it is common in qcom. This API simply locks the frequency above some values to seem more snappy, but also reduces battery life in general! So it is common to sacrifice battery for speed and vice versa.. As you will see there are lots of posibilities also if you search the ramdisk for "optimizations" in frequencies that are done there, and change them to your liking! Happy modding! Cheers!
Nick Verse said:
Hello guys! I'm posting this now as I was searching on the Internet about Qcomm msm8916 devices! One tip I can give you as I learned some things, is to learn to build your device's kernel from source if your vendor has released it and remove the stock cpufreq limit API, as it is common in qcom. This API simply locks the frequency above some values to seem more snappy, but also reduces battery life in general! So it is common to sacrifice battery for speed and vice versa.. As you will see there are lots of posibilities also if you search the ramdisk for "optimizations" in frequencies that are done there, and change them to your liking! Happy modding! Cheers!
Click to expand...
Click to collapse
Nice bit of info there, but this script actually furthers those optimizers to reduce the number of cores needed to run processes and at lower frequencies. If it doesn't need it, your wasting performance and battery. This script helps regulate core speeds and cores online depending on what your doing using the interactive governor, which appears was not setup properly by the phone manufacturer of the device containing the msm8916 chipset.
I tried using it in CM12.1 unofficial rom for G530H and it works. I also think it helps reduce the appearance of deadlock bug for that rom. I edited the script and set the maximum cpu value to 1190400 instead of 1190000 because my device cpu is not going up to 1.19ghz when the script is only set to 1190000 so I tried to make it higher and it solves the problem.
Does it work on all MSM8916-based devices ?
What is the point of going under 800MHz? CPU takes same voltage on 200MHz and 800MHz.

Awesome Multitasking ram management (only for root users)

I found this trick in S6 forums. Thanks to @mikeyinid
Paste:
Explanation: (From @mikeyinid )
Here is a quick rundown on how this came about, and what we actually know.
Since I purchased the S6 on release day, I've been messing with certain things, as you can see from the ROM I posted, Looper(shameless plug). Debloating Samsung apps really helped with battery life and I was pretty happy with the results. But like so many other people, I didn't understand why my S6 killed apps so aggressively. Initially I thought it might be the memory leak we all know so much about in 5.0. So, I did a little research and found the patch for that. While it did help keep the device stable over time, apps were still being killed with no prejudice. All this time I noticed really useless services running in the background, often stuff I'd never even opened. I studied LMK and started messing with those settings. After a month of trying everything I could find documented, I was ready to give up. Yesterday I was looking through the services.jar smali for the 37,875th time and realized the DHA referenced in there has to have something to do with memory management. I kept overlooking it because I hadn't seen mention of it anywhere else. I am no smali guru, as some of you know. But it was pretty obvious DHA was influencing memory management to some extent. Samsung, although leaving us in the dark on this, was kind enough to give us props to set the values for DHA. I pulled a few that seemed relevant, added them to my build.prop, and what do you know. For the first time in almost two months of tinkering, I saw an improvement in the way my device was managing memory.
The thing everyone needs to understand; I have no clue what DHA is. It overrides every aspect of Googles LMK and seems to do so in a way that makes more sense. I'm sure someone with more knowledge than myself will be able to tune this to the point the S6 will be the multi-tasking champ. There are several other props in the smali that are probably useful. I will try to get them all with their default values posted today. This has been pretty exciting for me, I spent way to much time trying to figure out the issue to not make some sort of progress. I hope you guys enjoy the tweaks, and I hope it helps sway those of you on the fence about keeping this device to stay. It's only gonna get better
Instructions:
First find your build.prop. This is located in /system. to get to /system you need to go to the root directory using a file explorer and then go to the system folder. The build.prop will be in there. You can also use and app such as build.prop tweaker but its a bit harder (imo)
In your build.prop scroll to the very bottom and paste this in:
(values in my build.prop Note 3 Neo, may be others values work better but for me are awesome)
ro.config.dha_cached_max=30
ro.config.dha_cached_min=14
ro.config.dha_empty_init=36
ro.config.dha_empty_max=12
ro.config.dha_empty_min=8
ro.config.dha_th_rate=1.0
ro.config.dha_lmk_scale=0.878
Delete duplicate lines if you find.
Other thing. With Kernel Adiutor in LMK section select "very agressive" and apply on reboot.
Finally reboot your device.
Enviado desde mi SM-N7505 usando Tapatalk 2
other values to compare how it works, only four lines to add to build.prop:
ro.config.dha_cached_max=15
ro.config.dha_empty_max=30
ro.config.dha_lmk_scale=0.600
ro.config.dha_th_rate=1.4
Note, activate too "very agressive" mode in LMK (Kernel Adiutor)
everything works without freezing, bootloop?

Changing LMK minfree values has no effect

I have a dual boot Android 5.1/Win 10 tablet (the Onda oBook10) that I recently managed to acquire root on (for any owners of this device that would like to know how, I'll be posting a guide soon). This thing has 4 gigs of RAM, but starts kicking apps out as soon as 1 GB is occupied. I've tried setting minfree using both Kernel Adiutor and by echoing manually to /sys/module/lowmemorykiller/parameters/minfree, but neither has any effect. I know that this change doesn't persist across reboots on any Android, but in this case, it has no effect even on the current session. What's even stranger, going by the default values that have been set, there shouldn't be any issues at all - it's actually less aggressive than most other devices I've seen. The values are:
Code:
13107,16384,19660,22937,26214,32768
According to Kernel Adiutor, that translates to (in MB):
Code:
51,64,76,89,102,128
Yet, running apps shows 2.8 to 3.1 GB free constantly, even though apps are reloading.
Does anyone know what might be causing this? It's an x86 device, in case that's relevant. I have access to the boot image (in case it's some kind of kernel flag), and can unpack to ramdisk and zImage, but I have no experience with kernels, and have no idea where to even begin looking; if someone could point me in the right direction, that would be awesome.
Thanks,
SirVer

Categories

Resources