HEADSET EQUALIZER!!! - HOLY CRAP!!!
[Latest release in Blue]
VERSION INFO
Headset + Bluetooth Volume Hack
This file should also have a lower ringing and message tone when listening to music through the headset. If someone could test and confirm this It would be much appreciated!
As it stands the headset boost overwrites the bluetooth boost, so as a quick workaround i made this file which combines the 2!!! enjoy! (attached to this post)
BT Volume Hack v1
(Many thanks to innerspace for testing)
Finally, it's working without any problems! Those who may remember my earlier attempts to get this going will remember how hopelessly bad it turned out to be, but now, it's working!!
Here is some test info:
innerspace said:
Audio is significantly louder overall via A2DP, levels over headset seemed louder as well (though admittedly its a bit harder to discern over a mono headset). The party on the other end of the call said I sounded fine, voice was clear.
Click to expand...
Click to collapse
There will be some updates on this soon.
I hope some of you find this useful - http://meltus.androidftw.com/?page_id=2
NEXUS ONE FILES
This is just the basic un-modified AudioPara4.csv that was released with the Nexus One Source. Yes, this has probably been downloaded by plenty of you but i thought i'd upload just the audio files for the people who haven't.
There is another file i included, AudioBTID.csv, which i think controls bluetooth. Don't expect this to do anything however, unless you have a Nexus One
Also, don't expect this file to sound any different as it's not modified and i haven't had chance to look through it properly. But, there are definitely differences, so it's doing something differently.
I'll keep you all posted
V1
This is the very first version i made. This one differs from the other builds because it was before i realised there was an EQ setting. The sound quality of this build is average, just as good as the stock sound quality, and is slightly louder. Perfect for those who want a slight increase of sound with no compromise to audio quality.
V2 - *Most Popular*
In this version i included the AudioFilter file. The AudioFilter.csv controls the EQ and Compression settings, which is disabled by default (on the stock and V1 files). Increasing the Gain for each frequency band boosts the overall volume, but also causes distortion. Quite a loud version but also pretty distorted.
V3
using the same method as V2 but with a much higher gain setting. the result is a very loud overall volume but also a very distorted overall sound. For those who prefere volume over quality.
V4
the complete opposite of V3. This is a pretty quiet build but, by using the new Hero audio files which have a new EQ enabled, it has a much better 'sound quality'. for those of you who enjoy your music for the clarity and not the volume.
V5
Based on V3. The sound quality is slightly better in both the external speaker and headphones but the headphone volume is much, much louder. It is NOT recomended to have it set to full volume when listening to music through the headphones.
V5_r2 - *ALSO CALLED HEADSET BOOST IN MY APP*
As V5 was only an update for V3, i thought i'd make an update that works for all versions. Again, this increases the wired headset volume, but increases it by different amounts, depending on what version is being used. e.g. it will be louder on V3 than on V2. it will be louder on V2 than V1 etc.
V6 - *Loudest*
This is an 'update', much like V5. Use either v1, 2 or 3 and THEN push V6. or, pull the AudioPara4.csv from any of these versions and push all 3 files. This CAN be used with stock settings but it wont be as good!
Thanks to GoldenarmZ's new banding frequencies i managed to get the sound much 'bassier' and after finally figuring out the new 'Hero EQ' i've managed to get the sound much clearer. the result through the headphones is a nice mix of both, suitable for almost all types of music.
You must push both files included.
This version is still in the beta stages and pretty experimental. If you choose to use it you do so at your own risk
GENERATION 7 (2nd Revisions) - *Latest* - *BEST QUALITY*
Ok, here are my V7 Generation files. The zip contains v1r2, v2r2 (v7), v3r2 and v6r2. i've tried to improve them as much as possible, you may like them, you may not.
- V1 revision 2
Due to it not being distorted at all anyway, i added the compressor and made it slightly louder. not a lot has been changed here.
- V2 revision 2
Completely distortion-less! The most popular version due to it's loud volume and good sound quality. Now being used pre-built into many custom ROMs.
- V3 revision 2
Not sure about this one. Still very distorted (due to it's volume) and it's now slightly quieter than the original v3. Some of you may like this version, some of you may hate it.
- V6 revision 2
Managed to retain the bass whilst removing some of the distortion. I also lowered the volume slightly.
TIP!!! - Have the volume set 3 below maximum to get the best sound out of this version. At this level it sounds pretty good.
New Headset Boost (with Sapphire fix thanks to crypticc)
Only contains an AudioPara4.csv. The quality isn't great, because on full volume, it is VERY loud indeed. This is just a trail run and it's most probably not too stable.
This is achieved in a much more simple way than my last headset boost which used some weird bug in the files which failed to work half the time, whereas this one has the correct values changed, thanks to the new 'labeled' AudioPara.csv
WARNING: Not 100% Stable. Use At Your Own Risk!!!
You must push ALL files included.
For best sound possible use mp3 files that have a 320kb bit rate or higher. Or, better still, don't use mp3's.
MANUAL UPDATE
WARNING: This will NOT work if you don't have ADB set up on your computer. For a guide to setting up ADB check the official google android site.
METHOD 1
Download your prefered build (see above for info), and extract the files to anywhere. For the sake of the tutorial, extract it to 'Desktop'. Next open up your cmd and get adb started:
Code:
[COLOR=lime]adb remount[/COLOR] ([COLOR="Red"]sudo adb remount[/COLOR] for linux users)
- wait for the 'remount succeeded' message
[COLOR=#00ff00]adb push Desktop/AudioFilter.csv system/etc[/COLOR]
[COLOR=#00ff00]adb push Desktop/AudioPara4.csv system/etc[/COLOR]
[COLOR="RoyalBlue"]adb push Desktop/AudioPreProcess.csv system/etc[/COLOR] - If Version requires it
[COLOR=seagreen]adb push Desktop/AudioPara4_TMUS.csv system/etc[/COLOR] - Optional
if the version you are using doesn't contain a TMUS file, just leave it out. it isn't vital.
once that has all worked correctly it is just a matter of:
Code:
[COLOR=deepskyblue]adb shell[/COLOR]
[COLOR=deepskyblue]reboot[/COLOR]
and you're done! your new volume settings should take effect when the phone boots up.
METHOD 2
WARNING: This version does not need ADB, but it does need a signing tool and a good understanding of the update.zip flashing method.
first of all, find the custom ROM you wish to use (if you choose the one you are currently using you will not have to wipe) and open it with WinRar, 7zip or something similar.
Navigate to 'system/etc' and delete the AudioPara4.csv, AudioFilter.csv and, if the build includes it, the AudioPara4_TMUS.csv and AudioPreProcess.csv.
ALWAYS MAKE A BACKUP BEFORE DELETING.
Once they have been deleted it's just a case of dragging the new files from your preferred version into the folder. Once that has been done, you will need to re-sign the update.zip (very important you do this, otherwise the flashing wont work) and place it on your sdcard.
Next, reboot your phone holding the home button, and pres alt+s.
once your phone has flashed and rebooted, your audio settings will take effect!
METHOD 3
Thanks to LucidREM
This is all done from the terminal emulator on your phone -
Code:
$su
#mount -o rw,remount /dev/block/mtdblock3 /system
#mkdir /sdcard/AudioBackUp
#cd /system/etc/
#busybox cp /AudioFilter.csv /sdcard/AudioBackUp
#busybox cp /AudioPara_TMUS.csv /sdcard/AudioBackUp
#busybox cp /AudioPara4.csv /sdcard/AudioBackUp
#busybox cp /AudioPreProcess.csv /sdcard/AudioBackUp
#mkdir /sdcard/tmp
#cd /sdcard/tmp
#wget http://98.131.134.176/system/etc/v7/AudioFilter.csv
#wget http://98.131.134.176/system/etc/v7/AudioPara4.csv
#wget http://98.131.134.176/system/etc/v7/AudioPreProcess.csv
#busybox cp *.csv /system/etc
[COLOR="Red"]'v7' CAN BE REPLACED WITH ANY OTHER VERSION.[/COLOR]
METHOD 4
Thanks to everyone who helped make and test this!!!
Louder Volume Hack v3.5
This app is avaliable on the market for £2.00 (not sure what that is in $) and will allow you to freely switch between any of the versions without the need for a computer or any typing. Many updates planned!
Includes:
* Original versions (v1, 2, 3 and 6)
* Generation 7 files [REVISION 2] (v1r2, 2r2, 3r2 and 6r2)
* Headset Boost
* Bluetooth Boost
* In-Call Modifications
and all possible combinations of these files.
A free 'LITE' version is avaliable Here, but only allows you to switch bewteen Stock and V2.
{
"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"
}
and thats it
enjoy!
You can make it easier by combining the first two listed as:
adb remount
followed with
adb pull ....
this will also allow you to take out the "make sure you are out of an adb shell" part, as you will not enter the adb shell. And in place of the Desktop/*.* I would suggest simply extracting the files to the tools directory located where you installed your SDK, then you can leave out the Desktop/ (which may make it easier for people to follow along, as some people don't have adb in their path and simply open command windows and navigate to the sdk/tools dir to launch adb commands). But, that is all opinion, your commands look good to me.
Good Job
One step closer to a perfect G1
daveid said:
You can make it easier by combining the first two listed as:
adb remount
followed with
adb pull ....
this will also allow you to take out the "make sure you are out of an adb shell" part, as you will not enter the adb shell. And in place of the Desktop/*.* I would suggest simply extracting the files to the tools directory located where you installed your SDK, then you can leave out the Desktop/ (which may make it easier for people to follow along, as some people don't have adb in their path and simply open command windows and navigate to the sdk/tools dir to launch adb commands). But, that is all opinion, your commands look good to me.
Click to expand...
Click to collapse
thanks for the adb remount, didn't think about using that
and i only used 'Desktop/*' because i've had trouble in the past where i've had to link the whole thing, e.g., 'C:/Danny/SDK/tools/*' rather than just 'adb push *' even if i opened it from the tools dir. i just find it easier if i do everything from the desktop
I already known you mentioned You only tested this on Haykuro's 6.0r1. I've tried to do it on the jf1.5adp build, but i see that the AudioPara_TMUS.csv file does not exist in the etc folder. So i did stop working on this until someone make it work with jf1.5 ADP build
edit:
instead of AudioPara_TMUS.csv there's a file name AudioPreProcess.csv. I compared 2 files and they are different values and size.
i've included the AudioPreProcess.csv file, take a look and help us please . Thanks in Milz
Meltus, it looks like the .zip you uploaded is actually a .rar file with the wrong file extension...
is it? sorry lol didn't realise. ><
and namsir, PreProcesses is in 6.0 also and it's not got anything to do with volume (as far as i know ) i'll d/l JF's apd build now and have a look for you and see what i can do.
Works on Dude 1.1a
I tried this on Dude 1.1a, seems to work
Amazing. You people never cease to amaze.
Patiently waiting for news on a JF1.5 version.
as far as i can tell guys, this should also work fine on JF's build. i can't see any major differences except for the absence of the 'AudioPara_TMUS.csv'.
so basically, if someone's willing to test it for me, just follow the instructions but miss out of the 'AudioPara_TMUS.csv' parts
also gettin close to a better louder version, should have that ready for tomorrow ^^
ah on TheDudes1.1a and when falshing get error...
E: Wrong Digest:
system/etc/AudioFilter.csv
E: Verification failed
Installation aborted
so is it working on the j.f 1.5
It should work fine on JF's builds and ill have a look at TheDude's build when i get home tonight. Not promising anything though as its not been tested so use at your own risk
ill try it when i get back from work lets hope it works good
hm, i seemed to fix it using Method 2 xD
Yeah, thats why i put 2 methods up coz the first one's failed me a few times.
So is it confirmed working on TheDude's build now?
seems to be working on jf adp 1.5. I pushed all three files in the zip and left the AudioPreProcess.csv in place, going to try removing it now and see what happens.
edit: works without AudioPreProcess.csv
my steps (not including my backups)
adb remount
adb push AudioFilter.csv /system/etc
adb push AudioPara_TMUS.csv /system/etc
adb push AudioPara4.csv /system/etc
adb busybox rm /system/etc/AudioPreProcess.csv
then reboot
jsunkist146 said:
seems to be working on jf adp 1.5. I pushed all three files in the zip and left the AudioPreProcess.csv in place, going to try removing it now and see what happens.
Click to expand...
Click to collapse
I wouldn't get rid of it if i were you because it definatly does something lol.
I suppose it wouldnt do the phone any harm, i took them all out and all that happened was i had no sound till i put them back in.
let us know what happens though if you do take it out
check above, edited my post. while it did work fine and i tested sounds in all different ways i could think of im about to head off to work so i put it back for now (need a completely working phone, not worth the risk) but i plan on taking it back out again tonight when i get home and let it be for a couple days and see what happens. been waiting for this fix since i got the phone, much appreciated!
I tried that on JF1.5, but I didn't notice a big difference..
Does it change only the loudest setting ? This one seems a bit louder than how it was before, but I can't tell for sure.
Related
I've read/tried a few methods to get sound to redirect to a mono (non-A2DP) bluetooth headset. Anyway, I've come up with my own quick fix to the problem. It's a slightly ugly, brute force method, but it works.
So you need installed:
1) vijay555's VJVolubilis (v0.41)
http://www.vijay555.com/?Releases:VJVolubilis
2) MortScript (4.0)
http://www.sto-helit.de/index.php?module=download&action=view&entry=65
VJVolubilis -agon works almost perfectly, but after a phone call, the audio is re-routed back to the mobile (on my AKU 2.2 Prophet, anyway). So that's where MortScript comes in. I've written a script that runs continuously in the background to use VJVolubilis, keeping the sound redirected to the BT headset.
I've attached the scripts and a shortcut file. Put the scripts in \Program Files\Tools, and put the shortcut in \Windows\Start Menu\Programs. Or put the scripts wherever you want and make your own shortcut.
Note: It's TWO scripts now. One to activate the program, the other to run in the background. This is changed for MortScript v.4.
How it works
---
The script runs VJVolubilis every 4 seconds, which should be frequent enough to switch the audio back before another phone call. Be careful if you edit the script and lower the delay, as it might cause a race condition.
To enable BT audio redirection, turn on your BT headset and then run the script. To turn it off, re-run the script to cancel it (give it a few seconds), then turn off your headset. It's as simple as that.
FYI, I measured the CPU usage (using TCPMP), comparing just enabling VJVolubilis vs. running the script. The difference was about 0.2%, so given the margin of error, it's not much in any case.
Notes:
1) Please make sure to cancel the script when you turn off the headset, otherwise your PPC might become unstable.
2) The script keeps BT audio gateway open, which sucks back a lot of power. On my S200, an average day's use is around 50% battery usage, and the headset running out of power (6 to 9 hours, depending on the headset).
3) Argh!!! I made some MortScript v4 syntax mistakes. I hope it's all fixed now.
Cheers!
I downloaded your zip file,un-zipped it and i t contains only 1 cab file(btaudio),installed on my device,but i didn't see any files in the \\Program\tools folder and where is the script file you mentioned located?how to make it to work?thanks.
2kmy477 said:
I downloaded your zip file,un-zipped it and i t contains only 1 cab file(btaudio),installed on my device,but i didn't see any files in the \\Program\tools folder and where is the script file you mentioned located?how to make it to work?thanks.
Click to expand...
Click to collapse
Get and install mortscript; start it so that the file associations (mscr) are set. After this, just start BT Audio.lnk in Programs.
BTW, nice stuff; I'll link it from my "official" article on all these q's.
Where to get the MortScript file?I thought it was included in the BTAudio.zip file.Thanks.
Sorry for not being totally clear... I thought I had written way too much already.
Get VJVolubilis from here:
http://www.vijay555.com/?Releases:VJVolubilis
Mort's site is under renovation, but you can find MortScript from his download site:
http://www.sto-helit.de/downloads/pocketpc/
Both are very small downloads. My zip file only contains a script file and a link to that script.
Anyway, I hope it works...
Edit: BTW, please make sure the BT headset has been turned on *before* using the script. Otherwise cancel the script, turn off the headset and start over.
Okay, thanks Menneisyys! It's not exactly extensively tested, but hopefully it will work on other devices.
Hi everyone, just an FYI, I updated the script so it should work a bit more reliably.
Also, MortScript 4.0RC4 (was RC3) is available (see above).
Which OS(s)?
Does any of this run on WM5 Smartphone edition? More specifically, the Samsung i607 Blackjack? Thanks!
I believe both apps support WM5 smartphones. Just a matter of copying the scripts over after that.
I don't have a WM5 smartphone, so you're gonna have it to try it.
Did you ever find a solution for this on the BlackJack? I was thinking about purchasing one, but it's worthless to me unless I can find a way to route all audio to a mono bluetooth headset.
can not download VJVolubilis. It is a dead link.
chip677 said:
can not download VJVolubilis. It is a dead link.
Click to expand...
Click to collapse
Yeah, right. How come everyone else can? at least try browsing the site - http://www.vijay555.com/
http://www.vijay555.com/ can not browse too.
Hi guys, I've updated the script and links to the programs (see first message). Vijay's site works for me, so maybe it was just down for a bit.
BTW, I've made a new script to only redirect BT audio when the phone rings, but I'll post it to a new thread.
Edit: Sorry, I messed up the script yesterday... I hope it works okay now.
I am using a Dopod D810 (HTC mobile device) and a Plantronic Discovery 640 bluetooth headset. I have tried many times your new method here. Still, I could not listen to the mp3 music via the bluetooth headset! Please help to solve this problem.
Uploaded one of many pre-made EQ settings. i will begin making more soon. This one is for you Drum n' Bass lovers out there, you know who you are although this sounds alright with other kinds of music (better than the flat EQ anyway) it is built predominantly for songs with low bass, i will be making more EQ settings, working on a good Rock one as we speak
You install this exactly the same as my AudioMods. REMEMBER!!! you will need my other modified files for this to have it's proper effect. using this alone will not increase the volume by much and might not even work
editing the EQ on the G1 isn't hard, but it's kinda long winded and requires a fair bit of tinkering.
i'll try and talk you through it as best i can i've already enabled the EQ, all you need to do is set it up to your needs.
step 1 - download included file (the EQ taken from V1 audiomod, so a slight volume increase)
step 2 - open it with Microsoft Excel
step 3 - Editing. The only line we're interested with is Row 6.
If you look at this line, it's all to do with the EQ. you have BAND1 all the way across to BAND8. basically, i wouldn't touch either BAND1 or BAND8 as these are only filtering out the really high and bottom end which you don't want.
ok, so looking at BAND2 we have:
BAND2 gain
BAND2 gain does essentially what it says on the tin, increases the gain/volume. REMEMBER!!! we're working in hex here, so the lowest is 0 and the highest is 0F (i think)
for those who don't know much about hex it goes:
0,1,2,3,4,5,6,7,8,9,0A,0B,0C,0D,0E,0F and then 10. but 10 loops back to 0's volume so 0F is as loud as you can go, and in comparison to V3, which is only on 0B, thats pretty damn loud.
BAND2 Freq
yup, you guessed it. this controlls at which frequency range the gain controlls. a lower number is lower and a higher number higher. This is pretty advanced tbh, i left it well alone lol
BAND2 type
this is a tricky one. I think this controls what type of EQ is happening at that point, e.g. a parametric, or it could even be Q control, i don't know.
we can judge by BAND1 and BAND 8 that type 1 is a low-shelving EQ and type 2 is a high-shelving EQ. basically, you don't want to use these. again, i left these well alone.
so yeah, thats about it really. Gain is the only main one you need to worry about. you also need a basic understanding of how an EQ works.
Increasing all the Gains to the same volume is fine, thats what i did in my mods, but that gives a very 'basic' sound. creating a Bass Boosting EQ, for example, would mean you increase the gain in the first few bands and keep them lower in the mid-high ranges.
research, some spare time and patience would come in handy
anyway guys, i hope this helps. feel free to ask any questions, although i wont be able to answer them until i get home from work tomorrow
here is a graphical representation of what i'm going on about. (i don't fully understand band 1 and 8 so i kinda left them out )
BTW this diagram and the file included is based on V2 so, as you can see in the diagram, the volume is already boosted quite a bit. i wouldn't go much higher tbh. 0B is V3 and thats pretty distorted, so i'd say thats about the limit. unless you're very brave
--------------Flat EQ (AudioFilter.zip) ------------------------ Drum n Bass style EQ (...DnB EQ.zip) ----------------- Rock style EQ (...Rock EQ.zip)
i can't say this is spot on what happens but it's a very basic guide from my 'interpretation' of how the EQ works
i hope this helps some of you
someone can write an app that will change this file within the OS?
amir
unfortunately i have not been able to make the settings change without rebooting the phone. but i imagine it's perfectly possible if someone can figure out how to do it
does this Affects the headphones too?
amir
What are the chages that you are using personally, I would like to try that first and go from there. Thanks.
JLine05 said:
What are the chages that you are using personally, I would like to try that first and go from there. Thanks.
Click to expand...
Click to collapse
i'm just using my V2 atm which has a flat EQ. not had chance to mess with the settings properly.
it all depends what kinda of EQ you are after. i'm gonna try and make a 'smily-face' EQ (as we call it at college) which boosts the high and low end and leaves the mid range fairly untouched. personally, for the music i listen to (pendulum mainly ) it sounds pretty good.
Well, I tried that but it's very hard to fine tune.
When it sounds good with the head phones, it sounds like crap with the loudspeaker and vice versa.
And having to reboot the phone each time you try new settings makes the process way too long to appreciate the difference.
Zappletoo said:
Well, I tried that but it's very hard to fine tune.
When it sounds good with the head phones, it sounds like crap with the loudspeaker and vice versa.
And having to reboot the phone each time you try new settings makes the process way too long to appreciate the difference.
Click to expand...
Click to collapse
very true. we need a way of making the settings 'stick' without rebooting the phone
Nice work! I will play around with this once I get out of the woods
Zappletoo said:
Well, I tried that but it's very hard to fine tune.
When it sounds good with the head phones, it sounds like crap with the loudspeaker and vice versa.
And having to reboot the phone each time you try new settings makes the process way too long to appreciate the difference.
Click to expand...
Click to collapse
Ya when I get to it, I'm gonna have 2 files set and saved on sdcard. One for line out/headphones. And one for phone speaker out put and just swap them on the fly via terminal.
What about sym links. Just have both files and point them where u want depending on what use ur using... now some gui with on the fly adj would be the best.
welcome to the jungle baby!
I LOVE DRUM & BASS!
I'm goin to see Dieselboy, Gein, Tech Itch, & SPKTRM tonight. Wamp wamp!
btw, thanks for the eq.
AH.... reminds me of the simple days with WM and the SRS WOW Equalizer. Well not that easy but...Hey, this is a great start! No one else have even though about this! Keep up the good work!
Zappletoo said:
Well, I tried that but it's very hard to fine tune.
When it sounds good with the head phones, it sounds like crap with the loudspeaker and vice versa.
And having to reboot the phone each time you try new settings makes the process way too long to appreciate the difference.
Click to expand...
Click to collapse
fastludeh22 said:
Ya when I get to it, I'm gonna have 2 files set and saved on sdcard. One for line out/headphones. And one for phone speaker out put and just swap them on the fly via terminal.
What about sym links. Just have both files and point them where u want depending on what use ur using... now some gui with on the fly adj would be the best.
Click to expand...
Click to collapse
DONE...
just to throw this info out there. i have these files on my ext2 partation of my sd card and am using sym links like the old app2sd method. i have all three versions on here and can swap loudness with 2 commands. prob is i only know how to do it in adb, lol. i keep getting read only error from terminal when trying to swap. i know it can be done from terminal, im just overlooking something. this idea was sparked by the need for different settings based on headphones/lineout or phone speaker usage, but can be used for different music or whatever.
now you dont have to have on sd card some steps in first part will have to be changed if u dont want to go though all that, but for people with apps2sd its simple.
*edit: thanks to member innerlight he pointed out where i was screwing up in terminal when trying to mount as read/write, lol. if you want to do it in terminal type su (hit enter). then type mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system (hit enter). now follow the rest of the instructions starting with step 2 and leave off adb shell in the begening of each step.
1.adb remount
2.adb shell mkdir /system/sd/etc
3.adb shell cp /system/etc/AudioFilter.csv /system/sd/etc/AudioFilter.csv
4.adb shell cp /system/etc/AudioPara_TMUS.csv /system/sd/etc/AudioPara_TMUS.csv
5.adb shell cp /system/etc/AudioPara4.csv /system/sd/etc/AudioPara4.csv
6.adb shell rm /system/etc/AudioFilter.csv
7.adb shell rm /system/etc/AudioPara_TMUS.csv
8.adb shell rm /system/etc/AudioPara4.csv
9.adb shell ln -s /system/sd/etc/AudioFilter.csv /system/etc/AudioFilter.csv
10.adb shell ln -s /system/sd/etc/AudioPara_TMUS.csv /system/etc/AudioPara_TMUS.csv
11.adb shell ln -s /system/sd/AudioPara4.csv /system/etc/AudioPara4.csv
12.adb shell reboot
ok at this point they're running off sdcard. here is where running sym links importance runs in. you can have several different eq settings saved in your /system/sd/etc/filename.csv(it can be anything u want like headphones.csv or what not) for purpose of this write up im using AudioFilter.csv as stock and AudioFilterv3.csv as the "loud" one. when u want to switch on the fly (and heres where terminal would come in handy) its just a few commands.
edit: remember if you want to do it in terminal type su (hit enter). then type mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system (hit enter). now follow the rest of the instructions starting with step 2 and leave off adb shell in the begening of each step.
1.adb remount
2.adb shell rm /system/etc/AudioFilter.csv (dont worry only removes sym link)
3.adb shell ln -s /system/sd/etc/Audiofilterv3.csv(or whatever ur alt eq is named) /system/etc/AudioFilter.csv
4.adb shell reboot
Now enjoy your new settings. Now to fig out how to have them take effect without rebooting...
Well done men is the start i will try it but i must flash to JF 1.5, then i test your work THK!!!
Am reading this while at gym.
Has anyone tried doing it with gscript.
2 ways and I am no expert but:
Without symlinks just stick one lots of files, eg. Heavy metal in1 folder on fat32 sd and another lot in another folder, eg. Hiphop. Then have 1 gscript to replace the folders in system/etc with the modified audio files in heavy and another gscript to replace files with those in hiphop? And then you can also have gscript automatically reboot....
With symlinks have 1 script use audio files from 1 folder and another gscript use another set of files?
Will this work? I use similar gscripts to backup and restore data from my workout app..
I will have a crack at it later tonight but have to figure out the whole eq level thing first. Wonder if I can use similar settings to the way core player does on WM?
ok... had a quick look at file in excel 07... looks bloody complicated 2 me..... could take a while..... someone want to make a hiphop one and a hard rock/heavy metal one and then i will have a crack at the gscript thing?
MontAlbert said:
ok... had a quick look at file in excel 07... looks bloody complicated 2 me..... could take a while..... someone want to make a hiphop one and a hard rock/heavy metal one and then i will have a crack at the gscript thing?
Click to expand...
Click to collapse
Honestly I don't know much about gscripts yet, but don't see why that wouldn't work. I think that's similer to what lucidrem is doing in other theard to put one of the premade ones on there.
Honestly I like the idea of having them on my sdcard now that I have it done, lol. Think you can write a script that would do the bottom 4 steps in my post to switch eq? I edited my post to add commends from tereminal insted of adb . You can use the different ones the op made for test of theory.
I'm gonna try and make some eq's tonight.
fastludeh22 said:
DONE...
...Now enjoy your new settings. Now to fig out how to have them take effect without rebooting...
Click to expand...
Click to collapse
nice work man!!
works perfectly, just tried it out ^^
but yeah, the only problem now is the rebooting issue. i'm gonna start working on a program for the market which lets you choose the EQ setting, but it's pointless if you have to reboot each time ><
update: graphical representation of what i did to the DnB EQ uploaded. will be uploading a 'Rock' EQ shortly
So I'm gonna start making a personalized eq tonight. If I'm reading this correct you "loud" mod is just the eq turned up on all bands? Is there not a master gain, to just make it louder without effecting the different hz settings?
Also do we know what hz each "band" is, or just that left is bass and right is highs, lol?
Hi All,
Here is my second contribution to the Android community, android2sd!
I tried to make the installation a bit more straight forward and the readme very verbose.
There is NO going into recovery and wiping of the Android to install this construct. (Of course you can if you want to have a clean slate to build from but it is by your choice only!)
Remove .zip from filename, then unrar (sorry to zip users, zip was too big) the package and copy the android2sd.sh install script to the Android say /data/local and make executable with something like chmod 0750 and copy the android2sd.img install image to the sdcard. (Detailed instructions are in the readme file.) Once the install is complete, you can delete both install files.
Execute the script {where ever you installed it}ie:
/data/local/android2sd.sh and follow the instructions.
Included are several of my scripts (updated from the ones in data2sd) and the rules still apply, adjust or remove as you see fit. The readme explains them all.
I have noticed an improvement in speed based on the install, but you can judge for yourself and tweak as you see fit!
The construct uses Overlay Profiles to overlay the Android system and thus any changes to the Android once loaded, are actually done to the overlay profile thus you have like a safe mode which is the untouched Android under the overlay.
Hope you find it useful!
Darkstrumn
Darkstrumn said:
Hi All,
Here is my second contribution to the Android community, android2sd!
I tried to make the installation a bit more straight forward and the readme very verbose.
There is NO going into recovery and wiping of the Android to install this construct. (Of course you can if you want to have a clean slate to build from but it is by your choice only!)
Remove .zip from filename, then unrar (sorry to zip users, zip was too big) the package and copy the android2sd.sh install script to the Android say /data/local and make executable with something like chmod 0750 and copy the android2sd.img install image to the sdcard. (Detailed instructions are in the readme file.) Once the install is complete, you can delete both install files.
Execute the script {where ever you installed it}ie:
/data/local/android2sd.sh and follow the instructions.
Included are several of my scripts (updated from the ones in data2sd) and the rules still apply, adjust or remove as you see fit. The readme explains them all.
I have noticed an improvement in speed based on the install, but you can judge for yourself and tweak as you see fit!
The construct uses Overlay Profiles to overlay the Android system and thus any changes to the Android once loaded, are actually done to the overlay profile thus you have like a safe mode which is the untouched Android under the overlay.
Hope you find it useful!
Darkstrumn
Click to expand...
Click to collapse
Damn man. Good work.
sounds interesting, what is this all about?
brilliant?!? I think.
So basically, this is a non-destructive method that enables us to run new roms on the G1 without flashing? Am I reading this right? If so... wow.
edit: or, erm... maybe not... i think i've been up too long. Gonna have to watch this thread to get a better grasp on this. interesting nonetheless.
Rename To RAR
Darkstrumn said:
Remove .zip from filename, then unrar (sorry to zip users, zip was too big) the package and copy the android2sd.sh install script to the Android say /data/local and make executable with something like chmod 0750 and copy the android2sd.img install image to the sdcard. (Detailed instructions are in the readme file.) Once the install is complete, you can delete both install files.
Click to expand...
Click to collapse
very interesting .. at first i failed to see this part as i'm sure many pay skip over the whole "rename to rar" thing - LOL - so this loads profiles from the SD to the phone
for anyone having trouble with the whole "rename" process try this:
http://files.lucidrem.us/jf/android2sd.rar
as i know windows with hidden file extensions does not allow a rename easily
So what exactly does this do? I see install instructions, but no description.
Overlay Profiles...
tr.slate said:
So what exactly does this do? I see install instructions, but no description.
Click to expand...
Click to collapse
Well,
I've worked up the natural progression to this XXX2SD business, and have made an Android2SD construct which can expand the Android similarly to the the previous constructs, but puts /system, /data and /cache on sd.
So let me explain the overlay thing:
An overlay profile is a snapshot of the Android file system, namely /system, /data, and /cache.
The initial profile is called 'android2sd' and is a snapshot of your android at the time of install, plus the file system structure as explained in the readme adding the mnt/ dir structure and additional scripts in bin/ (which you can remove or adjust as you need).
Typically I reckon folks would only have the one profile and under it your original Android. But you can create additional profiles and set them up however you like. The overlay is overlayed on top of the Android file system with any changes or edits to the system affecting the profile and not the Android under.
The effective change is that the /system /data/, cache are moved to the sdcard thus expanding them to however large your sdcp2 is; on a class 6 card also improving access time.
A second benefit is that the underlying Android is safe from alteration and can be booted into like a 'safe mode'. (It can also serve as the base for new profiles, or you can make new profiles from active overlays. These snapshots can serve as a form of backup, but that is a fringe benefit.
It cannot protect the Android from update.zip installs exactly, as those will modify the Android directly, but say you try a theme and it gafs your 'droid...you can reapply the firmware update to clean out the theme, then copy the desired profile back to the Android and restore the Android to the state of the profile. (I would recommend having a 'base' profile of the Android but not using that as an active profile which will thus serve as a backup) Note: To restore the Android as described above, you cannot restore using a profile with 250+ apps in /data as the Android doesn't have the space for it!
Originally I used unionfs for the overlays but it was too slow.
Hope that explains things here; the readme has far more detail.
I've gotta go, but if I see that I've been as clear as mud, I'll try to explain better when I have more time.
Hmm just out of curiosity: What are you using now? Bind mounts?
I got a little bit lost in setup, I am not sure if I had problems because I was using Cyanogens latest or something else but either way Im going back to JF to try this.
I installed it using the "-COMMIT" addition
But when I made it to installing/linking apps things wouldnt link
Maybe I will let a few other people try it first.
More info...
[email protected] said:
Hmm just out of curiosity: What are you using now? Bind mounts?
Click to expand...
Click to collapse
Yes. Originally it was to have a multi profile layered system using unionfs: union0 the ro base snapshot and union1 the rw profile containing the copy-on-write data. But as the tests went on, the unionfs was too slow to use for /data; Android is unforgiving of unresponsiveness and was ANR'ing the apps that didn't respond fast enough.
The faster bind mount means that union1 is now not used and union0 is rw.
The reason I wanted the union0,union1 path was that the union0 could serve as base and various profiles could be layered over any part of the file system granting "Lego" like flexibility in how the user could adjust their a2sdLoader.sh script (the android2sd loader which controls the overlay process).
You could have a pristine base and several "change" profiles that you layered to your liking and could change any sub layer to different effect.
While you still can under this paradigm, it is not as compact.
But the unionfs option is not completely done away with. It can still be used for the above layering but shouldn't be used for that apps and package system.
An example of the layering I'm on about:
The Android 0-layer which the base layer is a snapshot of.
The base layer is pristine (fully configured settings, but minimal apps loaded, maybe a particular base launcher layout and wallpaper).
A change profile containing my apps and package system
A change profile containing a version of etc with reconfigured bluetooth settings.
A change profile with a theme (manually installed, or snapshot to profile and restored to pristine)
Now I could take these 4 profiles and arrange several different setups:
'base' with all apps loaded, themed with custom bluetooth
'base' with all apps loaded, themed with normal bluetooth
'base' with all apps loaded with custom bluetooth
'base' with all apps loaded with normal bluetooth
'base' with all apps loaded
'base' themed with with custom bluetooth
'base' themed with normal bluetooth
'base' with custom bluetooth
'base' with normal bluetooth
...
Those would be set to serve as the ro union0 and the rw union1 which will hold the copy-on-write changes to the overlay (which preserves the sub layers)
You could have several more theme profiles and have a script that randomly chooses one at boot...
You could simply use the overlay to protect a favored configuration. Should anything untoward happen such as accidentally damaging the packages.xml file while experimenting with the system, you could simply delete the change profile, make a new blank change profile and the damaged files are undone.
The things one can do with the overlay concept are limited only by your imagination and need (and if they slow down app processing too much causing ANR's)
It vary well could if done correctly allow one to have multiple roms as profiles and switch them based on the selected profile, but I have yet to experiment on that...I reckon that is my next move! (Note that this path would have a high space cost as the roms are about 40MB zipped!)
brandenk said:
I got a little bit lost in setup, I am not sure if I had problems because I was using Cyanogens latest or something else but either way Im going back to JF to try this.
I installed it using the "-COMMIT" addition
But when I made it to installing/linking apps things wouldnt link
Maybe I will let a few other people try it first.
Click to expand...
Click to collapse
Taken from [Rom] CyanogenMod:http://forum.xda-developers.com/showthread.php?t=518851
"DO NOT RUN ANY OTHER APPS2SD APPLICATIONS ON THIS BUILD. YOU WILL BREAK YOUR SYSTEM. THEY ARE NOT NECESSARY BECAUSE THIS ROM WILL DO A2SD AUTOMATICALLY AND BETTER!"
The android2sd construct pretty much falls into the A2SD category and thus is likely the reason you had issues with the install.
My Android is based on JF 1.51... and thus your mileage will vary based on the rom you are using. I reckon with a rom derived from theh JF roms, the install may work as intended.
As I go into the next construct build process, I will see if I can't make it multi-rom compatible (to support multi-rom profiles) I'm sure it will take some time to do as I would have to use my actual Android to test with, but no worries!
Hope that helps a little. Sorry it's not better news though.
An excellent "misuse" of this concept would be to run ion (picking it for its speed and almost stock nature) with a hero overlay (picked due to known instability as we are still developing it) so that ion would serve as a "safe mode" for when you crash hero.
I have a spare phone if i crash this and a secondary sd for if that gets corrupted. Let me know if you need help testing.
twistedumbrella said:
An excellent "misuse" of this concept would be to run ion (picking it for its speed and almost stock nature) with a hero overlay (picked due to known instability as we are still developing it) so that ion would serve as a "safe mode" for when you crash hero.
Click to expand...
Click to collapse
Interesting thought, and if this could be done, I suppose it would be possible to have bluetooth working in ION while using a Hero overlay?
Request for feedback...
Hi All,
Those who've installed android2sd, how is it going?
Can you give some pros and cons of your experience so I may improve things going forward? (Hopefully no cons exists!)
I know that roms that already make use apps2sd will encounter issues as the apps2sd and android2sd function similarly and thus step on each other. I may be able to detect this condition and adjust for it going forward...we'll see.
Thanks in advance for your input!
Darkstrumn
LucidREM said:
very interesting .. at first i failed to see this part as i'm sure many pay skip over the whole "rename to rar" thing - LOL - so this loads profiles from the SD to the phone
for anyone having trouble with the whole "rename" process try this:
http://files.lucidrem.us/jf/android2sd.rar
as i know windows with hidden file extensions does not allow a rename easily
Click to expand...
Click to collapse
Thanks for putting the rar up, XDA wouldn't take the .rar and I didn't want to signup to a file-share site just yet.
And it being seemingly natural to make windows show file extensions, it didn't cross my mind to make a note about that.
Thanks again!
Darkstrumn said:
Thanks for putting the rar up, XDA wouldn't take the .rar and I didn't want to signup to a file-share site just yet.
And it being seemingly natural to make windows show file extensions, it didn't cross my mind to make a note about that.
Thanks again!
Click to expand...
Click to collapse
How come no one is trying this? It seems to me an excellent idea and would be really cool to boot mutipe roms if someone figures that out. I'm not testing this because I'm using appstosd and didn't want conflicts...but no one else with jf1.51 Rom is testing this idea?
Just curious
so wait a second. let me get this straight ... if I have a class 6 8gb card i might be able to install a hero build without rosie or widgets with the original launcher on the sd card that might actually come sorta, kinda, a little close to a speed that might be bearable? at least for like 5 minutes?
Can this be adapted to install bigger roms such as hero without the dangerspl .
XD
Ill try this with ion later tonight
wow this is beautiful work! now to test it!
Im trying so hard to understand this lol.. Correct me on my errors but from what i read this is my hypothesis on what i think this does..
This is like a apps2sd but with data and that type thing from the build we are using? And you Said this takes snapshots So we can create several profiles of the phone? Like for example have a profile with some apps loaded and another profile with all removed and be able to switch between them at will?
Alright, straight to it.
This is iAPK Suite 0.9. The newest incarnation of iAPK. It's functions have been vastly increased, while keeping it's sole purpose still unique.
The new version of iAPK merits it a new name, iAPK Suite. This means it not only installs APKs, it is a full fledged manager. It installs, deletes, backups, and restores APKs from your respective Android devices. Aside from being drag 'n' drop friendly, i've incorporated a tremendous amount of useful features. Hell, it even signs APKs with a simple click.
There are currently two versions. iAPK Suite and iAPK Mini. The Suite version allows full APK management, while the mini just has simple drag and drop as well as the docking panel without any other APK functions which makes the file size practically cut in half.
Mind you, the usage of this application gets a lot easier when you learn all of the shortcuts I implemented to making things a lot quicker. A wiki will be made to explore everything about iAPK and how to use every function i've built into it, even the not so obvious ones
..:: Screenshots ::..
{
"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"
}
..:: Features ::..
- Sleek Drag n' Drop User Interface
- Docking Panel
- File Type associations with .apk files
- APK Management
- Signs APKs
- Drag Multiple APKs for installation
- Drag Folders containing APKs for installation
..:: Wiki ::..
iAPK Suite 0.9 Wiki *DOWN*
..:: Download ::..
Download iAPK Suite for Windows (LINK UPDATED JUNE 2012)
..:: Issues/Todo ::..
- adb sometimes has an issue with apks installed from folders with spaces in their name. (Working on a fix)
- small animation glitches tend to appear depending on the environment. (Does not pose any functional problems)
- a system tray icon needs to be added to allow for easy configuration of certain adb options/switches. (Working on)
- several adb switches need to be added to allow forced apk installed (-r) and other various tags. (Working on)
- deleting apks has not been testing thoroughly. (Waiting for feedback)
- iAPK needs an installer instead of being just compiled into a zip. (Working on)
..:: Changelog ::..
v0.9
+ Added quicker docking panel
+ Added File type associations with .apk files
+ Added APK management through the Android Device Bridge (adb.exe)
+ Added APK manifest dumping using the Android Asset Packaging Tool (aapt.exe)
+ New UI built from scratch
+ New Information panel notifier
+ Added a mini version for smaller file size
v0.3
+ Added Update Checker(Now notifies the user if an update is available)
+ Added Directory APK Installing(Not tested)
+ Now checks to see if adb is in $Path or already specified instead of always making a copy of adb locally(Not tested)
+ Added a configuration panel(Intended for internal use, otherwise no use right now)
- Taken out some un-needed functions(may work a little faster for some people)
++ Will be available for Mac OSX, Linux in the next release.
++ Will incorporate a default filetype & shortcut for windows(allows auto-install on doubleclick)
v0.2
+ Added Multiple APK Installing functionality (Drag and Drop multiple APK's)
+ Cleaned up some more code
+ Operation manager for internal use (Allows for batch calculation and apk management)
+ Added small tool tip for future use
+ Added an operation summary at the end of each..operation.
- Taken out 99.9% of the popups
- Taken out clunky option gear graphic
++ Coming soon... Just mention it.
This application works globally for ANY Android Device. Posting it in here is just because i'm in this sub-forum a lot. But this application will work with ANY Android device. It would be nice if this thread was pinned for easy access
Pretty cool. Heres another alternative i use. I just created a batch file where i made it pickup a file as an argument and "adb install -r" it. I compiled it to an exe and gave it an icon and set it as a default program for apk's. Here it is for those interested. You can either set it as default program for apk filetype, or just drag an apk into it.
Link
I like it. Simple and nice interface and easy to work with it
Thanks
10 char.
qberty said:
Hey xda inhabitants!
Here's something I made to shorten APK installing. This is my take on an easy drag and drop apk installer with quick and to the point functions. It's very simple and straight forward, drag and drop your APK onto my program, and it will install it over ADB to your phone! Very simple as opposed to using the 0.04 second long browse button, Dragging and dropping saves a bunch of time!
Screenie-bo-beenie
Download-oh-...err
1.4MB RAR
1.6MB ZIP
Please let me know if you want features that adb can provide or ..just anything you want implemented.
Click to expand...
Click to collapse
Interesting. Does it support multiple/batch apk files? That would be useful for a restore.
wow..nice one
if can drag multiple apk files and batch install would be nice
Binary100100 said:
Interesting. Does it support multiple/batch apk files? That would be useful for a restore.
Click to expand...
Click to collapse
pingy_ping said:
wow..nice one
if can drag multiple apk files and batch install would be nice
Click to expand...
Click to collapse
Hmm..You guys are right.. it does not support multiple apks... It might since it's through adbs command, not sure if that would work. But I have a method of making multiple apks work at once. Lemme throw that on the table.
...Done.
Updated, and fixed v0.2 link.
pretty sweeet
sweet, love the idea of batch installs! Save a lot of time when switching between roms
Thanks! If anyone has anything else they want added. Let me know.
color me stupid but i cant get this to work...
may be that im on a pc at work.
there is nothing fancy needed to get it to work is there?
i am able to use the sdk tools and ADB can see my phone but the app keeps saying failed
any ideas would be great.
ceasee said:
color me stupid but i cant get this to work...
may be that im on a pc at work.
there is nothing fancy needed to get it to work is there?
i am able to use the sdk tools and ADB can see my phone but the app keeps saying failed
any ideas would be great.
Click to expand...
Click to collapse
I did some quick debugging and I found out that I broke the single APK installer by adding the multiple batch one. Damn lol. Well for now, untill I release the completely working one, just drop two or more apks on it for them to properly work. That is an error on my part, must have forgot an if/then/else somewhere along the road, I'll fix it now. Should be compiled within an hour. Thanks
Terribly sorry for the confusion. I have fixed the weird problem. Everything now works as it should. Please re-download v0.2 from the original post.
This is a really Nice utility
I have a couple of requests. Feel free to make them come true
1. Make it so if set as a default app for apks, when i double click an apk it launches this program, installs the apk, then shuts the program.
2. Make it so it detects if adb is currently in $path, u can do that using something like errorlevels in batch. So if it detects it, then it shouldnt have to extract the files such as adb and the dlls.
Just my $0.02
Great!! thanks!
Daneshm90 said:
1. Make it so if set as a default app for apks, when i double click an apk it launches this program, installs the apk, then shuts the program.
Click to expand...
Click to collapse
This.. is not the easiest thing to do, since I would now need to make my app utilize commandlines in win shells to allow me to add apk file locations to a command to be installed quickly. It's definitely possible, but unfortunately i can't complete it within an hour so, that'll take a bit longer.
Daneshm90 said:
2. Make it so it detects if adb is currently in $path, u can do that using something like errorlevels in batch. So if it detects it, then it shouldnt have to extract the files such as adb and the dlls.
Just my $0.2
Click to expand...
Click to collapse
This is definitely an easy task, never thought of that, consider it done as I have the exact code in my head
I'll compile everything when I get homerz.
$0.2 is actually 20 cents... wow. You put a lot thought into this one. lol
Anyway, keep in mind, I can do..just about ANYTHING with this app. So don't hold back with your suggestions.
qberty said:
This.. is not the easiest thing to do, since I would now need to make my app utilize commandlines in win shells to allow me to add apk file locations to a command to be installed quickly. It's definitely possible, but unfortunately i can't complete it within an hour so, that'll take a bit longer.
This is definitely an easy task, never thought of that, consider it done as I have the exact code in my head
I'll compile everything when I get homerz.
$0.2 is actually 20 cents... wow. You put a lot thought into this one. lol
Anyway, keep in mind, I can do..just about ANYTHING with this app. So don't hold back with your suggestions.
Click to expand...
Click to collapse
lol my bad. Typing on phone/in a hurry don't go too well
Btw wht did u write this in ? vb?
qberty said:
This.. is not the easiest thing to do, since I would now need to make my app utilize commandlines in win shells to allow me to add apk file locations to a command to be installed quickly. It's definitely possible, but unfortunately i can't complete it within an hour so, that'll take a bit longer.
This is definitely an easy task, never thought of that, consider it done as I have the exact code in my head
I'll compile everything when I get homerz.
$0.2 is actually 20 cents... wow. You put a lot thought into this one. lol
Anyway, keep in mind, I can do..just about ANYTHING with this app. So don't hold back with your suggestions.
Click to expand...
Click to collapse
Anything? Lol (I won't go there!) What is the advantage to this verses using su file manager to just copy and paste within the phone? I guess I should just try it out, but didn't want to waste my time cause I have no problems with adb commands, but some of my friends might like it! Thanks!
Proprietary Lib Cleaner (PLC)
Linux shell script that allows you to silence certain lines from chatty proprietary binaries/libs which makes logcat actually readable, instead of it getting spammed by binaries such as mpdecision or thermal-engine.
Made with intention to be easily extensible for end-user. (would love to see a big database of hexxable strings)
Article featured on XDA Portal!:
http://www.xda-developers.com/android/clean-up-your-logcat-code-with-lib-cleaner/
Why I have created it.
I have made this shell script because I have experimented earlier with replacing hex strings in proprietary files, which worked out very well. I have had a lot of hassle trying to make the hex string replace work. But I found this great tool called Swiss File Knife that allows you to make hex replacements by just entering the string. Because of this it was very easy to create a template system so that users can easily add more entries to the database, rather then needing to adjust code of script every time.
{
"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"
}
The template system works like this:
Every binary/library is placed in the corresponding directory but in a virtual replication, in these files are the lines that need to be hexxed out of the binaries are present. nothing less nothing more.
Example 1:
~/ProprietaryLibCleaner/dbs/system/bin contains mpdecision which is a regular text file with the following strings inside it:
Code:
num online cores: %d reqd : %d available : %d rq_depth:%f
hotplug_avg_load_dw: %d
UP cpu:%d core_idx:%d Nw:%f Tw:%d total_time_up:%f
DOWN cpu:%d core_idx:%d Ns:%f Ts:%d total_time_down:%f
cpu%d: core_idx: %d uptime: %f downtime %f
cpu%d: core_idx: %d Nw: %f, Tw :%d, Ns: %f, Ts: %d, util_high_and:%d
cpus_up: %d cpus_down: %d thermal_mask: 0x%x
Example2:
~/ProprietaryLibCleaner/dbs/system/lib/hw contains sensors.msm8960.so which is also a regular text file since its a patch, it only has a simple reference inside (but a very annoying one)
Code:
mCompEngine is NULL
These 2 examples are listed in the shell script, when more is added it is automatically appended in the 'database'
Last but not least is the patching process which is done on a 'fail-safe' method, it first checks whether its actually applicable before making any changes, if not it will skip it, so it won't make your files unusable
Instructions for normal usage:
1. Download latest release
2. Unpack somewhere on PC
3. Run script with ./PLC
4. Install ADB + ADB USB Driver if not installed
5. Install Swiss File Knife on Phone if not installed
6. View targets & patches
7. Set target and patch
8. Profit
Downloads
Latest version: v0.7 - here or here
Github page:
https://github.com/broodplank/ProprietaryLibCleaner
Additional Credits:
stahlworks - Swiss File Knife
Changelog
Version 0.7 - 19/04/2014
- updated adb downloading method
Version 0.6 - 19/04/2014
- updated lines of mpdecision
- updated compatibility with quotes ( ' ' ) inside lines, was causing thermal-engine patch fail
Version 0.5 - Initial Release - 15/04/2014
How to make a template / submit a patch
You can get readable strings from file by using 'strings' command.
When using the new beta method (auto submit by using my raspberry pi)
Enter:
1. Your XDA username
2. path to file
3. lines to be patched
If this tool gets abused it will INSTANTLY be taken offline!
http://plcsubmit.broodplank.net/
By posting it as a reply to this topic:
TEMPLATE said:
/path/to/bin/or/lib
Code:
string 1
string 2
string 3
string 4
Click to expand...
Click to collapse
I will merge it on github then.
By Github pull merge request
For the more advanced developer:
./dbs/system/path/to/bin/or/lib said:
string 1
string 2
string 3
string 4
Click to expand...
Click to collapse
But then in the git folder
Make a file (same name as target) in right folder with lines inside the file that need to be hexxed.
Then make a merge pull request on Github!
another one just in case (reserved)
Wow I just noticed the topic was horribly formated! tip to everyone DO NOT USE THE WYSIWYG Editor!
The Sensors get knocked out when you silence sensors.msm8960.so
imanoob said:
The Sensors get knocked out when you silence sensors.msm8960.so
Click to expand...
Click to collapse
I have had this once, it was the cause of a invalid hex replacement. but I have been using the hexxed sensors.msm8960.so for a while now and in the app sensorbox everything is showing, compared to nothing showing when a failed hexx is done. please show me the results of sensorbox.
it should work just fine.
Wow this looks promising .
I've been doing some little hex edits on some system binarys, will try this out .
Regards
superdragonpt said:
Wow this looks promising .
I've been doing some little hex edits on some system binarys, will try this out .
Regards
Click to expand...
Click to collapse
Thank you , I hope it becomes useful for you
Is it possible to run the patches directly on the phone via terminal emulator or adb shell (assuming all prerequisites like adb, drivers, and sfk are installed)?
First of all, thanks a lot for these scripts, and for the tutorial you provided in your other thread on how to patch them manually. The script seemed to work just fine but for some reason the resulting binaries would be a few bytes smaller than the original file and so I'd get an error that would say something about ELF header magic ( can't remember the exact error message) and they could not be executed. I decided to try to create my own script and finally managed to get something working. My original script is run from the phone itself, but I tried to port it to yours as a dbs/patcher script replacement, keeping as much of the original functionality as I could. It seems to work, but could maybe use some polishing. I thought you might be interested in it, as it does not require any installation of extra binaries (it uses grep and dd to perform the functions of sfk). Feel free to use any of it how and where you might see fit. To use it just put it into dbs in place of the original patcher script.
Update: The patcher in patcherv2.zip now correctly restores the file permissions.
As an interesting side note I noticed that with unmodified files, my CPU usage while the phone is otherwise idle and only a single core is active, is reported as 3% with periodic spikes every few seconds of up to 10%. Once the strings are cleaned from the files, the CPU consistently reports usage of 0% or 1%, and the spikes are completely nonexistent.
Chahk said:
Is it possible to run the patches directly on the phone via terminal emulator or adb shell (assuming all prerequisites like adb, drivers, and sfk are installed)?
Click to expand...
Click to collapse
yes with some modification to the code it can do that. but you will have to convert it to real sh script instead of bash. it's somewhat different.
bsimpson1 said:
First of all, thanks a lot for these scripts, and for the tutorial you provided in your other thread on how to patch them manually. The script seemed to work just fine but for some reason the resulting binaries would be a few bytes smaller than the original file and so I'd get an error that would say something about ELF header magic ( can't remember the exact error message) and they could not be executed. I decided to try to create my own script and finally managed to get something working. My original script is run from the phone itself, but I tried to port it to yours as a dbs/patcher script replacement, keeping as much of the original functionality as I could. It seems to work, but could maybe use some polishing. I thought you might be interested in it, as it does not require any installation of extra binaries (it uses grep and dd to perform the functions of sfk). Feel free to use any of it how and where you might see fit. To use it just put it into dbs in place of the original patcher script.
Update: The patcher in patcherv2.zip now correctly restores the file permissions.
As an interesting side note I noticed that with unmodified files, my CPU usage while the phone is otherwise idle and only a single core is active, is reported as 3% with periodic spikes every few seconds of up to 10%. Once the strings are cleaned from the files, the CPU consistently reports usage of 0% or 1%, and the spikes are completely nonexistent.
Click to expand...
Click to collapse
You're welcome. This may be caused because the strings are replaced with "nothing", It might be a good idea for me to count the numbers (in hex) of the string and then replace it all with zero's instead. I think this creates more compatibility, but I'm not 100% sure of that.
Some files indeed get corrupted by hexxing them, (at least when removing strings), maybe putting zero's there would fix it. as I am not advanced in hex at all I honestly don't know before I have tested it.. anyways, the binary templates that are included should not corrupt the files.
I really appreciate you have put this effort in updating the patcher. It really looks awesome, I have not tested it yet, but if it really can replace sfk consistently It will be great. I will take a look at the script and I am certainly interested in it! The script looks pretty advanced to me actually, for example that regex is just badass!
I think I will integrate your patcher and generate an option that lets you choose between your method (local patching, on PC) and my method (remote patching, on phone), that way users could choose what they prefer. Of course I will add your credits to the top because you made it. not me
I will look into this very soon, for the meanwhile you could create merge pull requests on the git if you'd like.
And btw I am really glad to hear that removing the strings actually lowered the cpu usage , that's a great thing! and is absolutely the goal of the script next to making it more readable ^^
Thanks a lot for your wisdom and effort on this patcher
broodplank1337 said:
yes with some modification to the code it can do that. but you will have to convert it to real sh script instead of bash. it's somewhat different.
You're welcome. This may be caused because the strings are replaced with "nothing", It might be a good idea for me to count the numbers (in hex) of the string and then replace it all with zero's instead. I think this creates more compatibility, but I'm not 100% sure of that.
Some files indeed get corrupted by hexxing them, (at least when removing strings), maybe putting zero's there would fix it. as I am not advanced in hex at all I honestly don't know before I have tested it.. anyways, the binary templates that are included should not corrupt the files.
I really appreciate you have put this effort in updating the patcher. It really looks awesome, I have not tested it yet, but if it really can replace sfk consistently It will be great. I will take a look at the script and I am certainly interested in it! The script looks pretty advanced to me actually, for example that regex is just badass!
I think I will integrate your patcher and generate an option that lets you choose between your method (local patching, on PC) and my method (remote patching, on phone), that way users could choose what they prefer. Of course I will add your credits to the top because you made it. not me
I will look into this very soon, for the meanwhile you could create merge pull requests on the git if you'd like.
And btw I am really glad to hear that removing the strings actually lowered the cpu usage , that's a great thing! and is absolutely the goal of the script next to making it more readable ^^
Thanks a lot for your wisdom and effort on this patcher
Click to expand...
Click to collapse
I'm glad to help! I'm not very familiar with binary files myself. I recently noticed that it's possible to simply pass the flag '-o' to the 'strings' command to print the byte offset along with each string! I think that would be a lot more reliable than using grep, not to mention faster. Since that's also how other users will be getting the strings to use for the templates it seems like a very good option also. I'll see if I can come up with a revised version
Unfortunately, the version of strings that's provided by busybox on my phone doesn't have the -o option, but i managed to find a version of the real strings binary with -o support that runs on android, so it could be very possible to eventually make a flashable zip or version that runs on the phone: View attachment strings-armeabi.zip (can't seem to remember where i found this)
bsimpson1 said:
I'm glad to help! I'm not very familiar with binary files myself. I recently noticed that it's possible to simply pass the flag '-o' to the 'strings' command to print the byte offset along with each string! I think that would be a lot more reliable than using grep, not to mention faster. Since that's also how other users will be getting the strings to use for the templates it seems like a very good option also. I'll see if I can come up with a revised version
Unfortunately, the version of strings that's provided by busybox on my phone doesn't have the -o option, but i managed to find a version of the real strings binary with -o support that runs on android, so it could be very possible to eventually make a flashable zip or version that runs on the phone: View attachment 2810739 (can't seem to remember where i found this)
Click to expand...
Click to collapse
Me neither hehe, I just tested the -o flag and you're right , it works, it returns idd the byte offset. that is nice. and it would be faster for sure, dd'ing some bytes to a certain area has to be faster then grep/replace. But my concern is that maybe the byte offsets are not the same on files, which could easily corrupt the binary if it doesn't match the template. And how do you calculate how many bytes should be flashed to the byte offset? or you just want to jump to the offset and then replace hex? i am not sure which is better honestly. Anyways, I appreciate it that you want to come up with a revised version maybe
Oh it didn't? Do you perhaps have an old version of busybox? I have "BusyBox v1.21.1-kk bionic" and for me it works in android (adb shell, with for example "busybox strings -o /system/bin/mpdecision"), so there wouldn't be need for a seperate binary, just an updated busybox.
Anyways, before we could seriously replace the method we need to do a lot of testing ;p
@broodplank1337 - is this script still being maintained, if not, are there any other alternatives?