[PRJ/TT/Kernel] Dynamic ramdisk.. Now with button backlight notification. z4mod. - Vibrant Android Development

OK, this is a little strange, but I think the idea is useful for people that want to mod the ramdisk but don't want to fiddle with compilers and such. It requires a kernel, so I'm including a proof of concept here. However, once the basic support is in a kernel, you can change anything about the ramdisk and the boot process WITHOUT changing your kernel!
For example, say you want to change init.rc... You can do that, and if it fails to boot, if you stored it on your external SD card, just pop out the card and boot up, the change won't be able to copy over at boot, so you are back where you started. No odin, no kernel mod.
The basic idea is simple. It runs init.d style scripts (if found) BEFORE the android init process starts up. This allows you to change literally anything in the ramdisk without the hassle of building a kernel. You can replace the /sbin/init binary if you want to, whatever.
This also means you could install and/or upgrade a lagfix, even voodoo, by copying a single file to /system/etc/init.d and rebooting.
This is more useful for devs I think than for end users, but perhaps users will find it useful.
NOTE: This is DANGEROUS STUFF. If you store your files in a world-writable location like /sdcard, ANY app could change your ramdisk! As it is, any root app can do it with this change. Anything run in the pre-init scripts is, by definition, run as root. So watch your permissions and don't store stuff used by the pre-init scripts in a FAT filesystem. EXT2/3/4 and RFS will work fine if you set them to root-write only. If in doubt, use "chmod 700 <file>". All of this should be obvious to most people here, but I think it's important to point out just in case.
This is based on Unhelpful's 1.7 kernel. It runs great on my Vibrant. There is one known bug, it reverts the locale to en_GB on boot, which is mildly irritating. I can't figure out why this happens. If someone knows, please post. I did write a simple app that switches it back to en_US using MoreLocale 2 (market) on boot, if people want it.
Credit to Unhelpful (kernel source and nice build scripts), JAC and Supercurio (examples for setting up the ramdisk properly for this sort of thing).
All the init scripts live in /system/etc/init.d. P*** are pre-init scripts. E*** are early-init scripts run before /data and /dbdata are mounted, allowing you to override mount options and such at that point, S*** are standard init scripts that launch right before the Android OS starts up, so the full environment is available to them. So you now have 3 hooks to start init scripts up. The boot process will wait for them to complete, so don't do anything that takes a long time if you don't have to, or start it in the background with "cmd &" or similar.
http://www.tabbal.net/files/t959-ttabbal-v1.0.tar
Flash with Odin. I'll consider putting up a ZIP later. Please, be at a computer with Odin and a known good kernel when you do this, this should be considered beta at best. Hardware locked phones should probably avoid this as well. Also, disable voodoo before messing with this, it does not include the voodoo script. If you really want to try it, you should be able to copy it to the init.d directory, but it would be better to wait a bit.
If it works well, hopefully other kernel devs will include the framework. I may also start posting updates from Unhelpful's git tree if there is interest as well now that I have a decent environment set up. See his thread in the Captivate forum for details on what changes have been done. OC/UV is supported, but I haven't worked with it much. You have to enable it by creating a config file and putting it on the phone. I'd recommend the external SD card in case you have a problem with a bad config, so you can pull the card and boot without clock changes. The OC/UV config can also be changed at runtime.
There is no need to pre-flash anything, and init.d need not exist or have any scripts in it. The system will boot fine without them.
If you try it, please post your thoughts. I'd like to see if there is interest for this line of work. If you don't understand a thing I said above, please don't install it.
Updates:
http://www.tabbal.net/files/Kernel-ttabbal-v1.2.zip
http://www.tabbal.net/files/Kernel-ttabbal-v1.4.zip
http://www.tabbal.net/files/z4mod-ttabbal-v1.1.zip

Wow, I am afraid to mess with this today. (expecting an important phone call)
I will flash it tomorrow morning however. And post some results, I have an idea about what to do with this.
Thanks Travis!

I hope you find it useful! I forgot to note one thing. If you want to see what your pre-init scripts are up to, there's some info in /init.log. Not a ton, but you can at least see if your script was started and such from there.
Also, if anyone cares, it works on Frankin-Twiz Final. I decided to check it out once I got this little project working.
I'm curious to see what people come up with, I've seen some complaints about not being able to edit the ramdisk without building a kernel. So now they can.

ttabbal said:
I hope you find it useful! I forgot to note one thing. If you want to see what your pre-init scripts are up to, there's some info in /init.log. Not a ton, but you can at least see if your script was started and such from there.
Also, if anyone cares, it works on Frankin-Twiz Final. I decided to check it out once I got this little project working.
I'm curious to see what people come up with, I've seen some complaints about not being able to edit the ramdisk without building a kernel. So now they can.
Click to expand...
Click to collapse
You mind sharing your init setup. I am familiar with Unhelpfuls method and just want to see what you have changed from his.
I stayed away from his method with Voodoo as it was causing issues at diff points of development and went with the run-parts solution. But it may be in better shape now that you have gone over it.
Most users will only need one hook but options are always good.
I've always been one the fence about the runtime OC/UV. Most people are looking for a stable voltage file that will work with their phones in the thread, but it is def awesome for those that are familiar with what they are doing.

justanothercrowd said:
You mind sharing your init setup. I am familiar with Unhelpfuls method and just want to see what you have changed from his.
I stayed away from his method with Voodoo as it was causing issues at diff points of development and went with the run-parts solution. But it may be in better shape now that you have gone over it.
Most users will only need one hook but options are always good.
I've always been one the fence about the runtime OC/UV. Most people are looking for a stable voltage file that will work with their phones in the thread, but it is def awesome for those that are familiar with what they are doing.
Click to expand...
Click to collapse
Talk to braka, we been hi-jacking the init for a bit, I've been working on getting a Desire pport working on are rom.. ( Well, barak has been hi-jacking the init ) I just build kernels.

justanothercrowd said:
You mind sharing your init setup. I am familiar with Unhelpfuls method and just want to see what you have changed from his.
I stayed away from his method with Voodoo as it was causing issues at diff points of development and went with the run-parts solution. But it may be in better shape now that you have gone over it.
Most users will only need one hook but options are always good.
I've always been one the fence about the runtime OC/UV. Most people are looking for a stable voltage file that will work with their phones in the thread, but it is def awesome for those that are familiar with what they are doing.
Click to expand...
Click to collapse
The whole ramdisk is here:
http://github.com/travistabbal/linux-galaxy/tree/ttabbal-v1.0/usr/initrd_files_t959/
The pre-init stuff is in /init.sh.
The basic stuff is the same as his really, I just put the sync hooks in to stall the boot based on an older version of his stuff. The current version didn't seem to work for me. The boot didn't wait, and I couldn't see any reason it would, so I just used the property setting style.
As I said, I haven't tried voodoo with it yet, but I don't see any reason it wouldn't work. You might want to pull the "exec /sbin/init" out if you want more pre-init scripts available, but other than that, it should work fine. A fair bit of the ramdisk came from your voodoo release, useful stuff in there.
If you see any issues with the init.d stuff, let me know and I'll look into them and if I can fix them, send a pull request over to Unhelpful.
Yeah, 3 hooks is overkill, but I figured there might be some use for them all. Most scripts can run in the "standard" hook and work just fine.
I kept the runtime OC/UV stuff just because it was more work to take it out. If you have a nice stable file, I'm happy to include it in the downloads as a default. I'm sure I could pull at least older versions from your github, I honestly haven't messed with it much beyond adding the 600Mhz step and seeing that the phone would use it. I honestly don't see much call for changing that stuff constantly at runtime, but it's nice for experimenting. If it crashes due to low voltage, just reboot and no harm done.
As I'm sure someone will ask, no I won't test it with voodoo. I can't, my phone has the extra NAND so it's not compatible with voodoo. When Beta5 comes out, I'll test it though.

I'm uploading a 1.1 now. The only big change is that I've fixed the backlight notification patch from Unhelpful's tree so it works with Vibrant now! Install the kernel, then copy lights.default.so to /system/lib/hw to get apps able to use it. Anything that can do LED notifications now turns on the button backlights instead.
See the other BLN threads for Q&A's, etc.. The big one, no, we can't flash/fade the LEDs. It would require changes to the binary firmware and nobody wants to try writing it.
http://www.tabbal.net/files/t959-ttabbal-v1.1.tar
http://www.tabbal.net/files/lights.default.so
This has been tested on my phone running Bionix 1.7 and worked with the MMS and GMail apps. I haven't tested the others.
Again, it's an Odin tar file. Put it in the PDA section and flash. If people ask for an update.zip, I'll put one together.
The warning above applies. This flashes a kernel, so it will overwrite whatever you have now. So if you have voodoo, disable it or add the voodoo script to init.d with an E prefix ie. "Evoodoo".

Thanks
I've been looking forward for a way to use the backlight buttons as notification since the phone came out and the idea was hatched a few days later. I'm admittedly new to all this so I have no idea what else this is capable of but I am VERY thankful for the button lights. Also there is another xda thread up with many replies and people offering up some rewards for making this work.

Can this be applied to eugenes froyo ?
Sent from my SGH-T959 using XDA App

dzeinz said:
I've been looking forward for a way to use the backlight buttons as notification since the phone came out and the idea was hatched a few days later. I'm admittedly new to all this so I have no idea what else this is capable of but I am VERY thankful for the button lights. Also there is another xda thread up with many replies and people offering up some rewards for making this work.
Click to expand...
Click to collapse
Rewards? Heh... I had no idea people were that interested in it. Hope it helps. My github has source, so I hope other kernel devs for vibrant add it.

skater991 said:
Can this be applied to eugenes froyo ?
Sent from my SGH-T959 using XDA App
Click to expand...
Click to collapse
Not sure. Froyo usually needs a different kernel. If JAC or KK kernels work, this one should. At worst, it will boot loop and you will have to flash a compatible kernel in download mode. So make sure you can get into download mode before trying it.

Thanks for this. It's working great, and I'm so glad to finally have backlight notifications.

Definitely would like an update.zip, just not comfortable doing it through odin...but I would love to have this
The cake is a lie!

metalfan78 said:
Definitely would like an update.zip, just not comfortable doing it through odin...but I would love to have this
Click to expand...
Click to collapse
Well, since you asked nicely.
http://www.tabbal.net/files/Kernel-ttabbal-v1.1.zip
MD5: 606a1ecaa934f97bd26f0bfb617b23b8
Tested just now via Clockwork. It even installs the library for you, so the button notification should work out of the box.
Running great for me on Bionix 1.9.1.

Wow...thanks, ill give it a go. So just flash through clockwork and good to go?
The cake is a lie!

metalfan78 said:
Wow...thanks, ill give it a go. So just flash through clockwork and good to go?
Click to expand...
Click to collapse
Yup.
Let me know what you think.

Is this ready for overclocking like JAC's OC/UV kernels? If so, any chance of posting a demo script for the OC/UV settings?
Also, can we add a user-script to enable AOSP bootanimation.zip files, or is support still commented out in this kernel?
Thanks for your time and hard work, cheers, =)

I have been wanting button notification since i got the phone. Can you choose which button lights up based on what the notification is?
for example menu = txt, home = missed call, etc....that would be awesome!

s0niqu3 said:
Is this ready for overclocking like JAC's OC/UV kernels? If so, any chance of posting a demo script for the OC/UV settings?
Also, can we add a user-script to enable AOSP bootanimation.zip files, or is support still commented out in this kernel?
Thanks for your time and hard work, cheers, =)
Click to expand...
Click to collapse
It's based on Unhelpful's way of doing OC/UV, you have to modify a file and push it to the phone to enable it, then set up the min/max settings with a script or SetCPU. There's a lot of detail over in Unhelpful's thread on the Captivate forum, so it's probably better to point you over there. They have scripts and such for it as well.
Not sure on the boot animation. I'll see if I can find it.

d_bot said:
I have been wanting button notification since i got the phone. Can you choose which button lights up based on what the notification is?
for example menu = txt, home = missed call, etc....that would be awesome!
Click to expand...
Click to collapse
That would be awesome, but it's not that complex. It's all of them for a notification. The Android API wouldn't really be able to deal with that level, but perhaps we could assign the buttons colors and use the color that the app requested? Maybe, but I'm not sure we can turn on just one of them from the code we have right now. The code looks to make a somewhat simple call that turns them all on at the same time. Hopefully as more people look into things, we will learn how to do stuff like that.

Related

Louder Volume Hack v1.0 by Meltus in the market now!!!

yup, it's finally in the market!
if you want to elliminate the tedious adb/terminal commands, then this is the app for you!!
updates coming soon, along with an EQ app!!
cheers for everyone who helped me with this!
everyone who did help messege me!!
cool!
Quick?, safe to use with the dudes 1.3rc2?
Yeah sorry about the force closes, I'm gonna try fixing it tonight.
Spent ages trying getting rid of the force closes, thought id sorted it but evidently not ><
Its odd because it works fine for me off the market.
I should have it sorted by tonight
Sorry again guys
Will you include V5 mod?
Yeah, will be updating it a fair bit soon, just need to get the 'basics' working first
Just read the comments in the market and this made me chuckle a bit
"How does an app that does nothing but force close get a 3 star average?"
DOHCtor said:
Just read the comments in the market and this made me chuckle a bit
"How does an app that does nothing but force close get a 3 star average?"
Click to expand...
Click to collapse
A famous quote... "The two most common elements in the universe are hydrogen and stupidity."
i've had a few people e-mail me saying that this is 'bull*hit' and 'this will never work' and someone calling me a 'scammer, trying to steal peoples money' (seriously, how could i steal people's money when there's a refund policy lol ><)
gotta love the market.
also, just bought a new sd card (because mine conveniently corrupted itself out of spite) so i'm gonna do some serious testing now.
keep up the good fight!
Looking forward to trying it out once you get it updated.
Hey dan, it force closes for me too. Try looking at the code again and see if you have any invalid pointers(?) or what not.... i dont mean pointers, but you know what I mean. Let me know when you update it again so I can run it and debug it through DDMS and so I can also run a trace on it.
Im super excited about this one! There are 2 things that bother me about my g1. Volume and Battery life. I cannot wait to try this out tonight when you get it fixed!
Whats up with the comment from the user that says you have to have Lucid's Mod? Where did he read that at?
Anyhow, Thanks Meltus! Looking forward to it.
Love the idea for the audio mod app, I've used the terminal commands in the past to get it to work (since it no longer seems to work in TheDude's releases anymore). I'd imagine it still runs through the Terminal shell?
will the eq be included in this app or in a seperate app? I will buy both when they are working for sure- i like to support developers.... eg. bought rockon etc...
People see a lot of junk out in the market, so sometimes even good devs get hit with accusations- especially if accusers do not review XDA to know what is real.
How are you getting past the SDK limits in regards to raw audio? It seems that an EQ would beat the CPU to death trying to work correctly unless more resources were made available in the recent OS update.
This is one of several big reasons Coreplayer team hit a wall with Android. Not to mention video codecs would also kill the CPU and still be a battery hoggin' stuttery mess.
the EQ is not an actual program that modifies the sound, it's a set of files that alter the 'built-in' EQ that HTC never bothered to enable.
i'm just going to make an app that can change it on-the-fly.
but atm i'm stuck at trying to push files from the app to the phone. it seems quite simple but i've been trying for about 6 hours now and got fkin nowhere
any ideas anyone?
Is it something to do with the files you are trying to access the built in EQ? The CPU on the G1 does have the function, but I would have thought a driver would be needed from Qualcomm?
i havn't even started on the EQ app yet, this is just for my audiohack app.
The 'EQ', if you can call it that, is a just file with hex values which control the various different gain settings for the different frequencies.
check my signiture for more info and a how-to.
also, my Volume Hack is now fully working, but, only if you've used my files in the past. which is quite bizzarre. it just refuses to do it with the stock files from any build, but if i replace the stock files with EXACTLY the same files but through adb, it then works fine.
i have no idea whats going on. my app sets the system in r/w mode fine so that can't be it.
i hate java
Meltus said:
i havn't even started on the EQ app yet, this is just for my audiohack app.
The 'EQ', if you can call it that, is a just file with hex values which control the various different gain settings for the different frequencies.
check my signiture for more info and a how-to.
also, my Volume Hack is now fully working, but, only if you've used my files in the past. which is quite bizzarre. it just refuses to do it with the stock files from any build, but if i replace the stock files with EXACTLY the same files but through adb, it then works fine.
i have no idea whats going on. my app sets the system in r/w mode fine so that can't be it.
i hate java
Click to expand...
Click to collapse
Just keep plugging away at it. Surely, someone around here wil be able to help you over this speed bump.
Meltus, what it sounds like is just the need for the files to be accessed in the first place. I haven't tried the app yet, but I wonder if it would work since I only used terminal for your audio mods in the past? In which case, you could probably use the same terminal code if that's possible.
I did the mod through the terminal already but I couldn't find it in the market earlier. I figure you pulled it for now due to the problems people are running into but what would I search when it is there. I want to support the community if I can, be it just a simple review.

PORT; CM 5.0.7 test 3 by mssmison

Some Dev's have been asking me to take a look at this build for a while, I finally got around to spending an little time on it last night and this morning. This is a modified version of CyanogenMod 5.07 test 3.
Notes;
The google apps have been included, there were many changes I needed to make in order to get this to boot and run properly on the vogue (documented at the end of the post).
For speed of use I have OC'd to 500 as default, and setup compache, in order to set this back to defaults, either edit or delete the userinit.conf and or userinit.sh files in /system/bin
As I haven't changed the framework, apps or jar files there is no need to release a bunch of android update skins. Download metamorph from the market and use any morph from the android skins thread here; http://forum.xda-developers.com/forumdisplay.php?f=527 Just make sure that they are stated as being for CM5.0.7 Test 3
There are alot of CM specifics things that don't work due to not using a CM kernel, such as compache in spare parts etc. There may still be some quirks (none that I've found).
Speed wise it's pretty darn good, about the same as my other eclair build I'd say, but this has the custom code the CM wrote, (things like pngaligning new apps etc).
The nice thing about having a 'major' build running on the vogue is for updates and themes (as I discussed earlier).
What doesn't work for sure
Bluetooth audio routing (as with all eclair builds)
Camera app (as with all eclair builds)
Wifi (only cause no ones put out a wifi update yet, note; it can't be the same as previous wifi updates as there are other changes to take into account.. at least I think anyways, not having wifi mean I don't know )
Instructions;
As with always use an eclair kernel from here;
http://it029000.massey.ac.nz/vogue/files/?C=M;O=D
Download
Download the file from here; http://sharebee.com/1338342c
At this time I've not resized anything so please use 320x480, and don't complain about blurriness (we know).
I haven't made a wifi update either.
Copy the androidinstall.tar to your sdcard/andboot folder, flash your nbh by whichever means you use and install the system. Nand works best.
Follow the official thread here; http://forum.xda-developers.com/showthread.php?t=672992
As a final note, this will most likely be my last contribution to the vogue community as I'm getting a milestone. Those of you on my google talk list, feel free to contact me any time for help.
How I got it working;
Firstly after pulling the ramdisk out of the boot.img using splitboot I compared and merged the necessary changes for the sysinit.rc.
Combined the build.prop and trout.prop to create a working build.prop.
Unsquashed xbin.sqf with sqaushtools4
Merged the /system/bin folder from my old build (to ensure data works properly, without doing this data will show connected but there is no throughput)
Added the libs (libhtcgeneric-ril.so, libgps.so, libaudio.so, libaudiopolicy.so)
added the modem and calibrate screen app
added the vold.conf and apns-conf.xml
made adjustments to the memory parameters in the sysinit. CM defaults are too aggressive and closes programs to often.
Replaced the libskia.so (used for decoding jpegs)with a generic one from my other build, CM made some custom changes that crashed on the vogue.
I'm sure there was more, if I remember what it was I'll add it.
Nice work
Thanks for your work!
Looks interesting, downloading as we speak. Will try it out and post back.
Thanks for your contributions, you will be missed. I imagine you will be moving on to a new device? Which one?
mssmison said:
I'm getting a milestone.
Click to expand...
Click to collapse
He's getting a milestone.
I must say, this is actually faster on my vogue than your regular Eclair.
Even the dialer loads quick, no incoming phone call delay, it's great! Too bad you're leaving the vogue scene, I'd love to see more refining of this one.
threevolve said:
I must say, this is actually faster on my vogue than your regular Eclair.
Even the dialer loads quick, no incoming phone call delay, it's great! Too bad you're leaving the vogue scene, I'd love to see more refining of this one.
Click to expand...
Click to collapse
I'm sure someone will pick it up and tweak it, there's still a bit that could be done for sure. In fact I invite anyone who wants to work on it to do so
How is this in comparison to Incubus' Super Eclair?
threevolve said:
I must say, this is actually faster on my vogue than your regular Eclair.
Even the dialer loads quick, no incoming phone call delay, it's great! Too bad you're leaving the vogue scene, I'd love to see more refining of this one.
Click to expand...
Click to collapse
How stable is this compared to incubus' eclair lite?
Its fast
I have had it running for about an hour on my Kaiser, no problems found. It is fast and responsive. I just wish it could be useful in 320x240 (tried it, not very functional).
Another great release,
Thanks,
drewden123 said:
How is this in comparison to Incubus' Super Eclair?
Click to expand...
Click to collapse
Tenfold better. I never had much luck with any of Incubus' roms, lots of crashes, and not much in the speed department, not to mention that 9 out of 10 times it wouldn't even install, citing that there was no space left on the device.
This, however, is another fine product from mssmison. I have always been a fan of his eclairs, and this one does not disappoint.
Wifi update for Kaiser
EDIT: Removed file as it contained build.prop from another Android release.
kallt_kaffe said:
Wifi update for Kaiser
Click to expand...
Click to collapse
Thanks man
Works great in 320x428. The top row of the dialer is just barely nipped. Great build!
unable to open persistant property directory /dat/property errno(some sort of line i cant tell what it was) 2
Amazing, Installing now.
I'm getting an incredible
Click to expand...
Click to collapse
I know what that's like, i'm getting an EVO when it comes out
first post updated with new non corrupt tar
bandur said:
I have had it running for about an hour on my Kaiser, no problems found. It is fast and responsive. I just wish it could be useful in 320x240 (tried it, not very functional).
Another great release,
Thanks,
Click to expand...
Click to collapse
Without wifi I found every build fast.
jadenj5 said:
unable to open persistant property directory /dat/property errno(some sort of line i cant tell what it was) 2
Click to expand...
Click to collapse
put androidinstall in /andboot on your sd card (fat32).
robuser007 said:
put androidinstall in /andboot on your sd card (fat32).
Click to expand...
Click to collapse
should i rename it or just put it there
mssmison said:
As a final note, this will most likely be my last contribution to the vogue community as I'm getting a milestone.
Click to expand...
Click to collapse
There will be no more update from you for this release?

Why use a cooked rom?

Well I want to start off by saying that I've rooted my N1 and tried several cooked roms including CM's and the Modaco version. I keep searching for a reason to use a custom rom. Every time I do, I end up reverting back to stock. I just don't get the purpose. I understand cooking Windows Mobile roms to get newer OS versions that included new features and stuff, and cooking in new updated apps... I've searched and searched looking for some solid reason to stay on a custom rom, but I can't find one.
The Nexus One is just awesome and pretty clean as it is out of the box. It seems like when I use a cooked rom, it's more bloated then stock and I "try" to make it work as my stock rom did, with same apps and homescreen setup (I like Launcher Pro/Dialer One). I know some of the roms include "newer kernels" which I'm guessing is like a newer build but I don't see anything really that "pops" out. I understand rooting the device to gain full access to the system. But you can root a stock rom.
I also understand porting different systems like Desire/Hero/whatever. But aside from cosmetics, rooting, overclocking, and undervolting... why use a custom roms?
And mods, I've searched and searched, and read and read, I've seen the stickies. I'm looking for specifics.
player911 said:
aside from cosmetics, rooting, overclocking, and undervolting... why use a custom roms?.
Click to expand...
Click to collapse
I think you summed it up pretty well. cosmetics, rooting, overclocking, and undervolting.
For me, custom roms is worth it JUST for trackball wake up, and unlock, on the nexus. I hated having to use the power button way at the top.
For some, its so you can use an entirely open source phone, free from proprietary google apps.
The great chefs put a ton of thought into all the additions they use, create, and implement. Things that save battery life, improve user experience, or fix bugs / quirks.
There isn't a huge demand for ROM's for the N1 because we're at the forefront of Android right now. We're the one's with 2.2. We have flash. Everyone else is getting ports of what we get stock. This will continue for the foreseeable future, until Google selects another handset to be its in-house testing model, or launches Nexus Two/Dev Phone 4 (counting N1 as 3). Once we're obsolete, then, and only then, will you see the modding community pick up and you'll see big reasons to go with custom ROM's.
CM has the latest android code that is publically availalble. (He just synced code today). The little features that are missing are enough for me. Things like invisible lock screen, to the newly added gestures in the music app(great for driving).
If you're not a tweaker by nature then stock OS code will suffice. Me? I can't get enough of the new little things that add up to an overall great package.
/cm nutriding
Because it's fun.
720p recording.
http://forum.xda-developers.com/showthread.php?t=698287
Titanium Backup and N1 Torch
ATnTdude said:
There isn't a huge demand for ROM's for the N1 because we're at the forefront of Android right now. We're the one's with 2.2. We have flash. Everyone else is getting ports of what we get stock. This will continue for the foreseeable future, until Google selects another handset to be its in-house testing model, or launches Nexus Two/Dev Phone 4 (counting N1 as 3). Once we're obsolete, then, and only then, will you see the modding community pick up and you'll see big reasons to go with custom ROM's.
Click to expand...
Click to collapse
Yea that makes sense.
I just feel that custom roms are more bloated then stock. I've been looking into trying one of the "Super Clean OC/UV Rooted" roms. But then again I think the stock OS is just the Bee's Knee's.
What is "bloated"?
There are zillions of reasons for custom ROMs, visual and functional:
Apps2SD
USB and WiFi tethering
Locales
OpenVPN
Dropbear, Bash, etc (better Linux experience)
Trackball colors, notifications
Torch (using flash LED as flashlight)
Deep system options made visible / changeable, lots of customization options
Most of Froyo features were implemented in custom ROMs way before Froyo test build.
My setup is VERY far from stock. And I use everything mentioned above. I can't even move to Froyo, because I need Apps2SD to work - overloaded with big apps.
I think that's a great reason..
player911 said:
Yea that makes sense.
I just feel that custom roms are more bloated then stock. I've been looking into trying one of the "Super Clean OC/UV Rooted" roms. But then again I think the stock OS is just the Bee's Knee's.
Click to expand...
Click to collapse
No reason why you can't use Cyanogen's Quick Root + Pershoot's OC/UV Kernel on FroYo to benefit from rcxquake's wonderful modded Flash .apk and watch Hulu. It's obviously not quite as complete as CM 5.0.x (desperately missing trackball wake), and despite having root for some reason I still can't rm -f and pm uninstall com.amazon.mp3.apk from adb shell, but it gets almost everything done for me. The main thing that made FroYo live-able for me was the addition of ogdobber's Black Bar, which I had gotten very used to on CM5. That said, I can't wait for a CM flavor of FroYo...
willverduzco said:
No reason why you can't use Cyanogen's Quick Root + Pershoot's OC/UV Kernel on FroYo to benefit from rcxquake's wonderful modded Flash .apk and watch Hulu. It's obviously not quite as complete as CM 5.0.x (desperately missing trackball wake), and despite having root for some reason I still can't rm -f and pm uninstall com.amazon.mp3.apk from adb shell, but it gets almost everything done for me. The main thing that made FroYo live-able for me was the addition of ogdobber's Black Bar, which I had gotten very used to on CM5. That said, I can't wait for a CM flavor of FroYo...
Click to expand...
Click to collapse
Have you tried "adb remount" to remount the System partition in read/write mode first?

[Q] ROMs, kernels and why.

I have searched for this sort of thread for a while. Though I've only been changing my phone around for a couple months(Rooted & ROM changes) It's clear that every developer/group feels there's is best. While I find that different ROMs have great features, it would appear that each and every one has it's flaws. I also find that a person can literally search for hours on how to install, manipulate, customize and BRICK a phone. As a "Senior Member" I still find myself lost. Due to recommendations, I've purchased more then my share of "helpful apps". I hope that the most "Senior Members" (w/ extreme, non bias, knowledge) can help remedy a few staples for all users.
A comparative, most stable and complete ROM list per phone (updated frequently)
What do I really need? I don't know. I have purchased Root Manager, Root explorer, Rom manager, Titanium Backup, Drop Box the list goes on. To date I'm not 90% sure what any of these do, nor how they work. Ex. I've backed up my ROMs with Titanium Backup but I've also backed them up with Rom manager. I've changed ROMs and couldn't figure out how to reinstall apps, settings etc. using either one of these. You can find yourself changing a ROM and taking 2 - 3 hr's reinstalling apps, themes and settings.
Kernels! there 30 times as many of these as there are ROMs. There should be some real understanding of these. It would appear that some kernels will change the look of the ROM or is it the theme, it changes? Neither? so why do I need them, what really are there function?
There are some brilliant minds at work here. Hopefully some of them can pitch in and offer answers to some basic "need to knows" for many.
Thank you all for the work that you do
I'm definitely an enormous Noob (capital N!) but by now I can flash ROMs fairly quickly and reinstall my apps in a few seconds with TiBu. I still do agree with you that it's a bit hard to take in *everything*. Something I've been wondering since I began flashing (ROMs, not anything indecent) is:
1. KERNELS. What the hell is their function exactly? I know their compatibility with the custom ROM depends on...which Captivate model the ROM is based on, I think. But how does one know or how can one tell which is compatible to which?
2. Modem. ?! How do I flash this? Why do I need to flash this?
3. Probably O/T but what the heck is ROM Kitchen?
4. What is the other way of flashing without using ODIN?
Knowing that would set me a little further from Noobers State, at least.
Lancered said:
I'm definitely an enormous Noob (capital N!) but by now I can flash ROMs fairly quickly and reinstall my apps in a few seconds with TiBu. I still do agree with you that it's a bit hard to take in *everything*. Something I've been wondering since I began flashing (ROMs, not anything indecent) is:
1. KERNELS. What the hell is their function exactly? I know their compatibility with the custom ROM depends on...which Captivate model the ROM is based on, I think. But how does one know or how can one tell which is compatible to which?
2. Modem. ?! How do I flash this? Why do I need to flash this?
3. Probably O/T but what the heck is ROM Kitchen?
4. What is the other way of flashing without using ODIN?
Knowing that would set me a little further from Noobers State, at least.
Click to expand...
Click to collapse
I'm not an expert but this is my understanding.
1. Kernel: Set of controls that lets the software interact with the hardware of the phone. Typically affects GPS, battery, bluetooth, wifi, display, etc.
2. Modem: How your phone connects to and transmits voice/data/everything.
3. ROM kitchen is a tool to help build ROM.
4. You can flash new ROMs through ClockWorkMod Recovery. You choose to install new software from zip on sd card. It lets you install ROMs, Kernels, & modems, provided they have been setup to work with CWM.
Hope that helps answer some things.
Lancered said:
I'm definitely an enormous Noob (capital N!) but by now I can flash ROMs fairly quickly and reinstall my apps in a few seconds with TiBu. I still do agree with you that it's a bit hard to take in *everything*. Something I've been wondering since I began flashing (ROMs, not anything indecent) is:
1. KERNELS. What the hell is their function exactly? I know their compatibility with the custom ROM depends on...which Captivate model the ROM is based on, I think. But how does one know or how can one tell which is compatible to which?
2. Modem. ?! How do I flash this? Why do I need to flash this?
3. Probably O/T but what the heck is ROM Kitchen?
4. What is the other way of flashing without using ODIN?
Knowing that would set me a little further from Noobers State, at least.
Click to expand...
Click to collapse
Three more excellent questions, all of which for nubies and Seniors (without tech understanding) need to know.
trekie86 said:
1. Kernel: Set of controls that lets the software interact with the hardware of the phone. Typically affects GPS, battery, bluetooth, wifi, display, etc.
2. Modem: How your phone connects to and transmits voice/data/everything.
Click to expand...
Click to collapse
Good info but it doesn't help explain why there are so many of each. How is one to know what should be installed.
Different kernels allocate the phones resources in different ways.
For example sucker punch Or paragon allows the user to over clock the processor, as well as under volt. Both can be used to speed the phone up or reduce battery use.
Harcore speed mode tweaks brigtness settings, uses some tweaks to improve performance, and changes default from 250hz to 500hz
I guess it is like saying different kernels are like tuning your car up in different ways with different performance goals.
Modems performance appear to vary based off of your location. Only way to know what is best is to try them.
I do understand many are new to this (even I was new at some point of time). But there is one thing I would like to bring up in this thread.
A simple Google search would tell what the basic functionality of a kernel is. Likewise for most of things asked here.
Be patient, there are lots of people here who would guide/help u. Don't sound impatient nor show ur frustration here. This is a forum created by enthusiastic users, not by employees who are paid to service people.
1. Kernel:
Kernel is the heart of the system that keeps the phone running. U can consider the core machine level interacting portion of OS that translates all instructions to a format that the CPU can understand.It has complete control over everything that occurs in the system. The kernel provides basic services for all other parts of the operating system, typically including memory management, process management, file management and I/O (input/output) management.
Every kernel thread here has an OP where it tells what version it is based off, its features, etc.
Best way to know which is best for u: try it out. What's good for me may not be good for u.
2. Modem:
How do I flash this? : Modem thread is a sticky on development forum, and has details how to flash too.
Why do I need to flash this?: This is the core component needed to access the phone spectrum/signals.
3. Probably O/T but what the heck is ROM Kitchen?: OP says it all. This is one place where u can create a ROM by picking features/apps of the provided list. More for creating ur own custom ROM.
4. What is the other way of flashing without using ODIN? Check the first sticky thread in QA section "FOR NEW CAPTIVATE USERS - READ HERE FIRST - FAQs | HELPFUL LINKS"
So here's my .02 cents coming from a software engineer perceptive...
The kernel... It's the core/kernel of an operating system. It's main functions (as stated above) are to interact with the hardware a.k.a. Device Drivers, to manage resources (things like memory management and processor time sharing a.k.a. multi-tasking), service interrupt requests, network services and the like. It also provides a System Call Interface (API) to the user space (apps running on the machine) so the apps can use system resources.
Now the why so many part... First of all in general there are MANY options available when compiling (building) the kernel. Things like CPU schedulers, file system support, system type support (in the captivates case ARM), etc. etc. etc. So there are many different ways to configure the kernel and that gives many options to "test" and see which might work better or not. Some of them are dead giveaways like compiling the kernel for MIPS and trying to run it on the captivate won't work but some are "tweaks" that may help a little or a lot, like CPU management options.
Second part of the why so many is the code. Again as mentioned above things like changing code to make the colors of the display more or less sharp (display device driver), make the file system faster (voodoo lag fix) or overclocking the processor, and different "modem" tweaks are all "enhancements" that people have made to the original Linux kernel source. So those things "creep" into existence over time, since there are many people working on them, and you see different versions of the Kernel from that as well.
Anyone that plays music can relate to the options available in that there are only 12 notes on a guitar fret board but millions (or more) ways to put them together to play music. There are certain things that have to be present in the Kernel (notes) but writing code to enhance them and/or combining options at compile time is much broader (music).
ROM. Well IMO this one has a bad nomenclature. ROM is actually Random Access Memory and we flash an image to the "ROM" (which it really isn't but I'll leave that one alone). The "ROM" in this case is the operating system (a version of embedded Linux), which is the basic software needed to run and admin the phone, things like the Kernel, bootloader, device drivers, and file system plus any user apps like the phone dialer, launcher, etc. that are included in the ROM. As you can imagine the possibilities of customization are almost endless when it comes to the ROM. Different kernels, different drivers, different apps and many combinations of those. Thus we see all the different "ROM"s for the captivate with all the different options and unfortunately problems as well.
The modem is actually part of the kernel. It's the device driver for the phone hardware of the captivate. Being that it's part of the kernel it "works with" other code that's elsewhere in the kernel and ROM that is "tweaked" for a particular phone in this case. So when you see "use an i9000 modem with an i9000 kernel" it's because the code in the modem is written to work with the other code in the kernel. It doesn't necessarily mean it will brick the phone and/or not work but it quite often means it won't work the best if it's not "matched".
An example of the why so many here might be (and I'm just using this as a random example not a real world example) in the code below (which is the Samsung modem code in the SuckerPunch source in this case) notice the comment there about "no spec" and having to confirm how much time is needed to initialize. That may be an example where someone could play with those timings and get better performance out of the modem...
static void msm_reset(struct modemctl *mc)
{
<sniped code for briefness here>
gpio_set_value(mc->gpio_cp_reset, 0);
msleep(500); /* no spec, confirm later exactly how much time
needed to initialize CP with RESET_PMU_N */
gpio_set_value(mc->gpio_cp_reset, 1);
msleep(40); /* > 37.2 + 2 msec */
gpio_set_value(mc->gpio_phone_on, 0);
gpio_set_value(mc->gpio_cp_reset, 0);
}
So that's one example of how you might get another modem version if someone played with that code and saw better performance.
I don't know if that all helps or muddies the water, but again it's just an old software engineer's .02 cents.
mxracer101 said:
So here's my .02 cents coming from a software engineer perceptive...
<..............>
I don't know if that all helps or muddies the water, but again it's just an old software engineer's .02 cents.
Click to expand...
Click to collapse
good work!
I do understand many are new to this (even I was new at some point of time). But there is one thing I would like to bring up in this thread.
A simple Google search would tell what the basic functionality of a kernel is. Likewise for most of things asked here.
Click to expand...
Click to collapse
For those seeking help, looking on XDA this is the #1 source for this information. Most other forums refer to XDA. So you should be in good hands
Be patient, there are lots of people here who would guide/help u. Don't sound impatient nor show ur frustration here. This is a forum created by enthusiastic users, not by employees who are paid to service people.
Click to expand...
Click to collapse
MOST crucial to understand this. PLEASE don't re-ask a question in several different locations. In most cases a question will be answered in a short time.
1. Kernel:
Kernel is the heart of the system that keeps the phone running. U can consider the core machine level interacting portion of OS that translates all instructions to a format that the CPU can understand.It has complete control over everything that occurs in the system. The kernel provides basic services for all other parts of the operating system, typically including memory management, process management, file management and I/O (input/output) management.
Every kernel thread here has an OP where it tells what version it is based off, its features, etc.
Best way to know which is best for u: try it out. What's good for me may not be good for u.
Click to expand...
Click to collapse
This is an area I see more questions about, then I do ROMs. Be awre that all ROMs have built in kernels, it's a good idea to let the intended kernel do it's thing. This is a fine tweaking operation, learn what one does for each ROM. Don't feel you need to change it, because it's being talked about in a ROM post.
HTML:
2. Modem:
How do I flash this? : Modem thread is a sticky on development forum, and has details how to flash too. Why do I need to flash this?: This is the core component needed to access the phone spectrum/signals.
^^^^SEE ABOVE^^^^ Dito
kernels; the function has been explained so i wont go there. there are kernel settings that cant be changed once compiled that effect performance and battery life, often making one better hurts the other, kernel hz will affect the snappiness, some kernel devs like to put out 2 or more versions depending on the users preference. also there have been many mods made for the i9000, i9000 devs typically dont make ports for the other phones so the code is made available for other devs to include in there own kernels. part of the reason for soo many is that things are constantly developing but some people like what has been out there for a while. there are also a number of compiling tweeks that one developer or another may prefer.
some kernels have stock recovery 2e or 3e, some have cwm recovery some have steam recovery, some have a modded cwm recovery. cwm recovery and steam give you access to the rom backups (nandroid) and some other features, steam has a touch screen interface but the modded cwm versions have similar functionality with a hardware button interface.
lagfixes; lagfixes are incorporated into the kernel. some have "voodoo" which is ext4 and is like what non samsung android phones often have. voodoo only has a couple options and most run it default. voodoo lagfix options may be incorporated into the recovery or handeled by the presence of a folder/text file in the voodoo folder.
there is also ulf (universal lagfix/ultimate lagfix). ulf lets you choose between jfs, ext4, ext3, ext2 and rfs file systems on each partition. it also lets you do the earlier ext2 loopback like one click lag fix. it is total overkill with options an the benifits of each is subject to opinions and anecdotal observation. but if yo specifically want jfs it is the only option available on the captivate right now.
wifi; different wifi drivers cause problems with certain routers because of a security measure. once a couple fixes for this were found new kernels appeared.
other "voodoo" features; supercerio is the developer of voodoo and is obviously a talented dev. he has created a color/brightness/sharpness fix for the galaxy s line but the port to captivate kernels took some time to come about. some kernels have it and some don't. there is also voodoo sound which lets you change the amp output for the headphones.
overclock/undervolt; there was at one time development on this for captivate kernels in 2.1. it was stable but a lack of captivate froyo source kinda killed it. also there was no interface for it, changing settings was done on in a text file that you had to write into a folder with a script, people had trouble understanding it. many kernels now are i9000 ports but the undervolt code often causes "charge death" some prefer not to overclock do to this instability, but then glitterballs came up with a fix. glitterballs prefers the overclock settings to be "mild" they really arent in reference to a pc though, 20-28% is significant but still there are others that make 30-60% overclocks available. the overclock setting on some of these kernels is a multi stage setup and isnt that user friendly involving an app and configuration files. there are also sceduler differences that can balence battery life and speed but i think samsungs settings are just fine
basically if you want overclock i recomend glitterballs work. if youre phone handle 1300+mhz you must go elsewhere if you "need" the max your phone can handle.
if you dont care for overclock there are many other things to look at. kernel hz set at 500 is snappy but you may prefer battery life and find one set at stock or 300hz
if color sound is important to you and thats a big reason to by a galaxy s then you want voodoo color and sound. im not gonna talk about files systems and lagfixes because despite the apparent differences in quadrant the every day results are up for debate.
modems; im not gonna tell you to match modem to kernel because i never found that to be true.. what i will tell you is that if you use bluetooth and "need" hsupa(over rated) then dont choose a north american captivate rom other than the armani based roms. there are 5 poular ones for non captivates phones and many more that work as well, choose at random for all i care, the biggest factor is gps performance and none of them do poorly, i recomend jl3 but kp1 can work better with some playing around, it seems to not give a stable position because it constantly updates stalites, the list is constantly changing in lbs test mode but it does get more satalites in my experience. others are jk3/4 and jl2(different phone that jl3) some say in there area jl2 gets better transfers but i dont find that to be true here.
ported roms; i9000/m and t959/d ports are great and at this time dont give up too much, they work with canadian t959d and i9000m modems as well as many other oversees modems that have the att 850 band . but on some, not all but some ports you may experience sleep death. it's a captivate issue and captivate roms since jf7 have a fix incorperated, i have mostly good results on the ported roms but 1 or 2 have given me sleep death.
captivate roms; work great! use as is or add a kernel with x,yand z features. with a captivate rom you give up either bluetooth or hsupa but hsupa is over rated on a phone unless you tether or upload files directly from your phone, it does help snappiness loading web pages but seriously my isp gives me 30% the upload bandwidth that i get with hsupa and i only see about 50% of the hspa potential in my area. my 3g connection gives me 300kbps and my isp gives me 600kbps. i think non hsupa is fast enough most of the time.
to the op, titanium backup does a backup of your apk's and data for those apps. it is not recomended to restore all system data if a new rom has a different base rom. this is what to use to restore apps after a flash, chose the restore apps and data setting, if you have problems factory reset and restore apps only.
cwm backs up the rom. it is a fall back incase a flash fails. you need cwm recovery either in the kernel or in an "update.zip" in the root of the internal sdcard. if you have 2e recovery or modded 3e recovery in the kernel you need to reinstall packages to get there from the update.zip. you may need to try twice. you navigate with the volume and select with the power button.
if you have a stock 3e recovery (rare now that there are altenatives, unless you flashed a stock leak or rogers rom as is) it will fail, you will need to odin/heimdal/neldar sgskernel flasher app flash another kernel to reach cwm recovery.
root explorer helps you reach the system files. if you think you need it then get it but it is really most useful for making tweeks or installing themes, some of that is better done in a script via update.zip or remotely via adb so you may not want or need it.
Asking what ROM is best is like asking which midsized car priced in the mid $20k's is the best. They are all pretty close in quality and only differ so much, according to what the dev felt was pertinent to them. Look them over and see what people have to say about them and try it out. If you don't like it, flash another one. It really is that easy. As some of posted in other threads, it's fairly hard to totally brick your phone unless you have absolutely no clue what you're doing. It took me months to get to the point where I felt comfortable flashing and it scared the **** out of me to finally take the plunge. Now that i've done it, i'd have no problem doing it again when/if I find another ROM I like better than the one i'm on.
The absolutely best info I got was from this thread. I have no idea why it's not stickied. Connexion2005 has done an amazing job putting these together and has taught me more in the time it takes to watch the videos, than WEEKS of reading threads.
How to videos
Extremely thorough, thanks all!
Lancered said:
Extremely thorough, thanks all!
Click to expand...
Click to collapse
You're welcome. It's why I started this thread
Thanks !!
Thanks to all who provided these great answers !!
Much appreciated.
This was a very informative read thanks
Sent from my SGH-I897 using XDA App
{
"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"
}
MikeyMike01 said:
Click to expand...
Click to collapse
Meaning what exactly?
How I love when people bash people who are new to particular technologies when those same people were once new themselves.
Point is, provide education not just answer the question.
askpcguy said:
How I love when people bash people who are new to particular technologies when those same people were once new themselves.
Point is, provide education not just answer the question.
Click to expand...
Click to collapse
That was my intention when I started this. It was great to see the guys above hashed it out. Even with all my posts There's a ton that people don't get. My hope is people will ask questions AND NOT BE LOOKED DOWN ON!
There are many MANY great people out there in the know, that are willing to help. Post your need, someone will eventually answer. NO QUEST IS DUMB!

[MODULE] Automatic SQLite DB Optimizer

Automatically optimizes SQLite databases on boot, on schedule, every X days.
Just a quick and dirty adaptation of an old SQLite3 optimizer script from init.d days to a Magisk Module using a service.sh script instead, with an internal date offset mechanism to run the script every X days (default: 3 - which is plenty, and specifically to stop silliness).
Update And credit note: finally after a fair bit of digging, i think i located the original author of the original init.d version of the main vacuum code snippet ive repurposed (stolen) for this module. It appears to be from user @mcbyte_it (doesnt seem to be current or active) and from a post here. Although i only saw derivative reworkings of this script, and used only the main sqllite script function, i arrived at a different method of tracking last run date, when his is arguably more mainstream/concise. Im fairly certain this is the originator especially as the post also has a zipalign script that was also suggested to me to do....and which i have been fiddling with for months....
The script will wait until boot is completed AND then until avg CPU usage is under 30%, to minimise the risk of possible corruption.
Disclaimer: As always any use of any 3rd party script/software/advice is at the users discretion. All reasonable efforts have been made to make this as safe as possible, but the responsibility ultimately falls to the user whether to use and run the script.
What it does:​It:
Reindexes
Vacuums
Analyzes
all .db files under /data.
It runs a 1st run optimize after install (temp file optimsql_first_run on sdcard is used to enable this, and removed after first run), and then on schedule after that.
By default it logs just script progress to /storage/emulated/0/autosqlite.log, but you can choose to enable more detail in the log if you wish
​User Configurable Options:​The schedule and loglevel can be changed by an external file on sdcard:
Create a file named autosqlite_options on sdcard (/storage/emulated/0/)
Inside create the follow key=value pairs to suit your preference:
interval=x (where x is the number of days between script runs, for the love of god do not put 1 (this goes out especially to the kind of people who put every app on their Magisk magiskhide/deny list) there is no benefit and you just heighten the possibility of corruption)
loglevel=x (where x is either 1 (detailed logging) or 0 (basic logging - default))
Requirements:​This module requires a working SQLite3 binary. If your ROM does not provide one (you can check via typing sqlite3 into a terminal), you can choose to use my SQLite3UniversalBinaries module located here:
https://github.com/stylemessiah/SQLite3UniversalBinaries
Dont forget you need to download a named SQLite3UniversalBinaries.vx.x.zip file from the Releases page under Assets. Do not try installing the source code with Magisk Manager, it will not go as you expect
All the modules action takes place in the service.sh file, its commented reasonably well for those wanting to check how it works
* See... now theres something else to use with my SQLite3 Universal Binaries module other than the GPay SQlite Fix Module <- dont use that anymore, it makes me stabby. It is literally the last resort for getting Google Pay/Wallet to work ,
Please note: the included LICENSE only covers the module components provided by the excellent work of @Zackptg5 's Magisk Module Extended, which is available for here for module creators
https://github.com/Zackptg5/MMT-Extended/
All other work is credited above and no one may fork or re-present this module as their own for the purposes of trying to monetize this module or its content without all parties permission. The module comes specifically without an overall license for this intent.
Download:
Repo: https://github.com/stylemessiah/AutomaticSQLiteDBOptimizer
Release: https://github.com/stylemessiah/AutomaticSQLiteDBOptimizer/releases/latest
Powered by Ponkle
@73sydney Nice! If you're looking for newer sqlite3 binaries, I have a build script you can use to build it or you can just grab the precompiled ones at my repo: https://github.com/Zackptg5/Cross-Compiled-Binaries-Android
Zackptg5 said:
@73sydney Nice! If you're looking for newer sqlite3 binaries, I have a build script you can use to build it or you can just grab the precompiled ones at my repo: https://github.com/Zackptg5/Cross-Compiled-Binaries-Android
Click to expand...
Click to collapse
cheers man, i was trying not to pinch all your toys
i mean i could have done an androidacy and scraped your repo for just the files i needed
plus im lazy
73sydney said:
optimizes SQLite databases
Click to expand...
Click to collapse
Nice
how about no schedule, i want to execute it whenever i want
possible ?
loopypalm said:
Nice
how about no schedule, i want to execute it whenever i want
possible ?
Click to expand...
Click to collapse
I refer the gentleman to the name of the module and title of the thread:
"Automatic SQLite DB Optimizer"
the distinct lack of the word "manual" should be a clue
what are they teaching in school these days?
i made this to be automatic and made special note about the intervals because theres people who would abuse this and run it every day if they could, both designed to avoid misuse/abuse:
interval=x (where x is the number of days between script runs, for the love of god do not put 1 (this goes out especially to the kind of people who put every app on their Magisk magiskhide/deny list) there is no benefit and you just heighten the possibility of corruption)
im not really interested in making a manual version option unless you can convince me where there is a use case benefit, because all i see is potential for misuse/abuse that i specifically made this to avoid....
running it by default it runs every 3 days which is twice a week and probably still overkill, but trying to cover all bases
your other option is to ask me for permission (sadly because of abuse in the past from certain entities trying to monetize my and others work, my contributions are not GPL etc) to fork and alter the code yourself....
73sydney said:
I refer the gentleman to the name of the module and title of the thread:
"Automatic SQLite DB Optimizer"
the distinct lack of the word "manual" should be a clue
what are they teaching in school these days?
i made this to be automatic and made special note about the intervals because theres people who would abuse this and run it every day if they could, both designed to avoid misuse/abuse:
interval=x (where x is the number of days between script runs, for the love of god do not put 1 (this goes out especially to the kind of people who put every app on their Magisk magiskhide/deny list) there is no benefit and you just heighten the possibility of corruption)
im not really interested in making a manual version option unless you can convince me where there is a use case benefit, because all i see is potential for misuse/abuse that i specifically made this to avoid....
running it by default it runs every 3 days which is twice a week and probably still overkill, but trying to cover all bases
your other option is to ask me for permission (sadly because of abuse in the past from certain entities trying to monetize my and others work, my contributions are not GPL etc) to fork and alter the code yourself....
Click to expand...
Click to collapse
i was planing to use it once a week
categorizing me with people who do dumb stuff is an 'insult'
i asked a simple question man, don't jump to level 3 mind game please ...
loopypalm said:
i was planing to use it once a week
categorizing me with people who do dumb stuff is an 'insult'
i asked a simple question man, don't jump to level 3 mind game please ...
Click to expand...
Click to collapse
Im sorry, did you miss the double smileys intended to completely avoid any misunderstanding that i was being jovial. the other tip off that i wasnt burning you was taking the time to write several paragraphs
Can i suggest you just set the options file interval to 6 or 7 and let the module do what its described in the title as doing, it would make no functional difference, other than saving you a trip to terminal?
As i said, give me a valid reason for adding a manual option and ill gladly consider it, choosing a reason that fits completely within the actual parameters of the existing module doesnt really fit that offer...
ill go further to why i specifically didnt put in an option to run it manually (really folks are lucky i didnt block the option to run it every day) because you should understand what the sqlite vacuuming and other processes do:
* They copy the data from the db file to temp file before optimising it and writing it back, at any point in this theres the potential for corruption (sudden power loss, other processes accessing the file etc). Ideally any such corruption would be minimised by journaling but anyone who had used Linux for long enough knows not to count on such things.
* If any db is being written to, then the optimization process will NOT optimize that db...for the above possible corruption reasons. Hence why i not only put in a wait till boot completed function BUT also added a function to block the script from running unless avg cpu load over 5 minutes is less than 30%. all this to try and make things as safe as possible. So im not overly fond of a manual option which bypasses these safeties i specifically put there to hopefully safeguard people as best as possible. I dont want to get messages about how my module hosed someones apps.
Perhaps that better addresses my reasons?
As said, you can also ask me to fork the code, and ill even tell you how to add a manual function, but i personally wont be releasing such a version without a better reason than i want to do it every 7 days, when the script as it stands can do that AND at a far more predictably safe time and way than you manually likely can or will use it....
BTw, how is actually responding, even taking the time to do so and being jovial about it "level 3 mind games?", whatever the hell that even is?
73sydney said:
.
Click to expand...
Click to collapse
i was planing to make a recovery backup of "DATA" after the optimization of DB files ...
if you want better result add a comand to kill the coresponding app, then it would be more stable
or tell the people to use FlushRam or something like that before the proccess start, to make sure the result will be good, or make a 2nd module for advanced users ...
even with the condition you said some system apps stays working in the background and messing with their data can lead to corruption
i don't know you or your previous work and i don't have time to care for that
i just asked a simple question
answer with "NO, my module will not do that"
this will save your time and other people time
loopypalm said:
i was planing to make a recovery backup of "DATA" after the optimization of DB files ...
if you want better result add a comand to kill the coresponding app, then it would be more stable
or tell the people to use FlushRam or something like that before the proccess start, to make sure the result will be good, or make a 2nd module for advanced users ...
even with the condition you said some system apps stays working in the background and messing with their data can lead to corruption
i don't know you or your previous work and i don't have time to care for that
i just asked a simple question
answer with "NO, my module will not do that"
this will save your time and other people time
Click to expand...
Click to collapse
1) whether before or after backup, the files will eventually get optimized - if you want a more manual version use SD Maid or as offfered you can ask me how to alter the code as it sits and make your own version.
2) Im not ever releasing a script that kills anyones apps in the background, i would consider that suboptimal, and basically malware
3) I never said that some "system apps stays working in the background and messing with their data can lead to corruption". What i said was i designed the script to best avoid corruption by running only after boot completed and when avg CPU usage over 5 minutes was less than 30%. The sqlite3 itself generally wont allow access to a file in use. Im just adding what i think is a reasonable level of extra safety by deciding when the optimization routine starts to run, and that it isnt abused/misused by running multiple times in an unreasonable timeframe
4) How does
I refer the gentleman to the name of the module and title of the thread:
"Automatic SQLite DB Optimizer"
the distinct lack of the word "manual" should be a clue
not equal "NO, my module will not do that", only with some attempt at humour and a long explanation (soon followed by a more reasoned explanation) because i didnt want to appear dismissive. Yet it looks like you’d have preferred dismissive??
You seem impossible to please anyway someone tried to do it....
To be honest Im tired of this circular conversation. Everyone else knew from the word automatic in the title how things was going to work. Ive made suggestions of alternatives (SD Maid) and even offered to give you the info to change the script for yourself, and cant do more than that.... please choose one and lets move on, please?

Categories

Resources