[Packages][7-16] ICS V6 Supercharger- now w/ PDroid
7-16: Some news. Well, I have some borked hardware and have begun to feel like, to new users, this thread might be more frustrating than helpful.
Therefore, if you are new to the thread/process, I would like to recommend that you try the Auto-Patcher instead. It ports all the functions of this thread (it is what I use to make the packages in the repo) with the assurance that the output won't be incompatible with your ROM.
I am more than proud to have introduced so many of you to Botbrew and native Android package management. Inportb has put together a rock-solid platform that only improves with time. It was a distinct pleasure to watch it evolve, and I hope you all keep an eye on its progress.
I consider it to be the most powerful app available. There are literally limitless possibilities, software porting being among the least of them. I can't wait to compile my first ROM on a tablet- it will be Botbrew that makes it possible. The possibility of our mobile devices replacing laptops are only possible through things like this, and right now, Botbrew is the only game in town. I expect it to remain the standard.
Thanks, all. If you would like an existing package updated, you can always request it in the thread. I can no longer maintain in advance, but I will be happy to offer support on demand.
If you are new, please try the Auto-Patcher instead! Link above!
Offered Packages (only for Nook Color!)
Package that enable the v6 supercharger
Package that installs the framework for PDroid
(wait for it...)Package that enables BOTH the v6 supercharger and PDroid
If you don't know what the v6, PDroid, or even Botbrew does exactly, please see the information section farther down this post.
Download and install Botbrew, free from Google Play. Botbrew will bootstrap in opkg or dpkg-apt along with several other packages necessary to its operation.
Install package repository-mateorod and press the refresh packages button at top right.
Install the mateorod-whatever package of your choice.
This will be the only system app package you will need to install. Any dependencies will automatically be resolved by its installation. That includes the v6 script.
If your mateorod package includes the v6 supercharger
After reboot open a terminal and enter the following:
su -c v6
The v6 script will run immediately and you can configure it from there. If you have any lingering questions about the configuration, please see the artifact that is post #3.
If this is your first time upgrading the V6 since update 8, (the one mrg666 used to recommend) don't re-supercharge from your sdcard or you will encounter mount issues! Just configure from scratch.
If your mateorod package includes Pdroid
Install PDroid from Google Play and configure
**Should you ever wish to reverse these system changes, Botbrew completely takes care of that for you, restoring backups of every file modified by the process! Simply select the mateorod-whatever package and press Autoremove.
**Upon flashing a new nightly, just launch Botbrew. A repairable packages screen will automatically launch. Select those packages and reinstall them, then reboot. The Botbrew repo will keep up with the CM repo, so as long as you are upgrading to the latest nightly, you will be fine simply reinstalling!
Botbrew is a package manager developed by the totally patient and kind inportb. I make the pitch for its capabilities, as well as my rationale for using it to distribute this software at the top of the 2nd post's ALL-NEW Q&A.
To learn more about Botbrew, visit its homepageORthe thread here on XDA. v6 Supercharger
The v6 supercharger is a popular script that changes the way your android device's memory management is handled. It was developed by zeppelinrox and lent to Botbrew for the Nook Color by special dispensation. Read more and thank zeppelinrox here. PDroid
PDroid is a security app available for free on Google Play. It has just about a million applications, the foremost of which is allowing you to block permissions to apps (system and user) from having permissions you are uncomfortable giving. Apps that are given permission to access your contacts, for instance, can now be blocked from that privilege at your discretion.
Pdroid also allows you to set static or random values for sensitive info should an app require them. So apps like Swype and others that require IMEI numbers or phone numbers can now be used like on regular devices. See svyat's original thread and thank him here.
This is the only method to use these programs outside of smali editing your own apps! Usually this is an either/or, but not with these packages! Try the Auto-Patcher instead!
Q: So why Botbrew and package management and not flashable zips?
A: Ahhh...the million dollar question, I suppose. After all, almost all system changes have been done with flashable zips everywhere else, right?
Well, part of the experiment here is to get people comfortable with the idea of package management for their Android device. It is a method that people use with Linux (think Synaptic) and iPhones (Cydia) but is not yet in vogue with Android. But the advantage is not just theoretical, there is tangible and useful value that you will get to experience immediately.
For instance, installing system apps for ICS makes the most sense when done through a package manager. With the CM repo being compiled on a nightly basis, the system apps themselves are a moving target. What I mean by that is that the services.jar I mod today may break an install tomorrow. If I distribute the file in a flashable zip that people apply over their install every time they upgrade, well, once the Cyanogen repo updates and the services.jar no longer plays nice with the rest of the install, everyone who flashes that zip on a regular basis is in for a nasty surprise that morning.
With a package manager, the first person who realizes the services.jar is out of date (almost always me) just reports back to the thread. I quickly make a new file and update the Botbrew repo. Users don't have to monitor a thread, or personally make a new file, that only has to be done by one person.
Now, as is available in this thread, think if there are two different mods to that same services.jar. One user just wants the original mod, while the next would like them both. Neither user has the time or energy to personally decompile and mod the source code for every nightly, but flashing will only install one or the other services.jar. The package management method allows the software distributors to foresee this, and allow for it. That is why you see packages like mateorod-pdroid-v6, something that is just not available for any other nightly install.
One last benefit, and this one is a bit theoretical. As of right now, Botbrew only has a few people using it to supply software. But as awareness and the user base grows, more developers will see it as a means of reaching a wider audience. Right now, things like scripts and themes rely solely on word-of-mouth. Think of Botbrew as a potential store-front for all manner of software, everything that isn't a user app (because, of course, Google Play and others already do a fine job of that) could be found here, waiting for your perusal and discovery. That day isn't here yet, but by being willing to try a package manager, you are part of the growing user base that will attract devs. Getting users is the hard part, the devs will follow.
Q: So what is Botbrew, exactly, if it just distributes software?
A: At its base, as inportb will tell you, Botbrew is simply a sophisticated installer, with the capacity to add software repos at will. When you install the repository-meteorod package, you are simply downloading my list of available software. You could add as many repos as you want from the Opkg configuration tab in the menu. However, Botbrew also uses unique maintainer scripts that allow software to be installed with a delicacy and precision not available elsewhere. Modding a live install is no everyday thing, and as Android devices get beefier and more powerful, some of the system-mods can be done live on the device, no pre-made software necessary. That will put the power of every script, theme and mod right in your hands, to apply, try and uninstall at will, without having to flash. There are enormous benefits to this.
Okay, the package management proselytizing is done...on to practical matters.
Package date issues and build selection
Q:ZOMG! I just installed a package and now I have BOOTLOOPS! What do I do?
A: As they say, don't panic. Just reboot, and press the 'n' button as Cyanoboot loads. Use the menu to boot into recovery and reflash your ROM. The system app just went out-of-date and you were the lucky first user to discover it. Please come to the thread and report any such occurrence. I check each package on a nightly basis (because I love yooouououo) but I have missed a big repo change before and likely will again. I keep a close eye on the thread, and will update the Botbrew repo as soon as possible.
Q: What do you mean, a package goes out-of-date?
A: As I said above, ICS is, as of right now, in an experimental and alpha state. What we flash every night isn't even an official release. I think in Cyanogen's perfect world, the amount of users on CM9 as a daily driver would be much less, but with it's popularity and rapidly educated user-base, that genie is out of the bottle. But when the source code used to create these system apps is changed enough, the apps made from the older code are no longer compatible with the newer builds. When that happens...ZOMG! and all that jazz.
Q: Even though you just explained how it's basically risk free I am cautious by nature. How do I lessen the chances of bootloops?
A: Just flash in the morning. I check these packages almost every night on builds I set to be tested an hour or two before eyeballer and Samiam go live. By the time you wake up in the morning, there is a 95% chance the packages have already been vetted and replaced if necessary.
Q: How often do the packages go out-of-date?
A: Maybe once every three weeks, although I recently had one go out of date after two days (ouch, right?). If you install the packages only over the latest nightly, you'll likely never notice.
Q: So how do I know if the build I am using is covered by the Botbrew repo?
A: The absolute best way is to flash a nightly on the day it is released, go into Botbrew and install your packages then. That way you'll always be covered. Those packages will last as long as your nightly is installed. When you feel you are ready to update, just grab the latest nightly and do the same thing again.
Q: I am real partial to the build from (for example) March 3rd. What if I want to use Botbrew packages on a certain older nightly?
A: At the bottom of this Q&A there is a list of downloadable packages and the build dates they go with. The links download the package which is installable from any browser or file manager, as long as Botbrew is installed.
Q: What do I need to do after updating to a new nightly?
A: It's real easy. Just launch Botbrew. A screen should automatically appear that supplies you with the list of packages that have been damaged (read: overwritten) by the flash. Select those packages and press reinstall. Then reboot and you're done.
Q: Does it work on both eyeballer and Samiam303's builds?
A: The answer is yes, with a catch. Eyeballer clobbers his builds every night, which means he is using no prebuilts from earlier builds and everything in his build is fresh made from that night's source. Samiam currently does not. That means that if you are using Samiam's builds, I recommend you read your build.prop in /system and find the ro.build.date. The date that is there is the last time Sam clobbered, and you will need to use a package that corresponds with that date. You can download the package and save it to your sdcard, and whenever you update, simply check the build date. If he clobbers, pick the corresponding package and go from there. The list of older packages are at the bottom of this post.
Q: OpenGL? Do I need different packages if I do/do not have that enabled?
A: Nope. The packages work with or without OpenGL functionality.
Q: What about the (totally kick-butt) incremental updates that Team Win is distributing through GooManager?
A: The diff-cm.zips actually break the mechanism Botbrew uses to determine if a flash has been performed (symlinks). For now, we just hope user education will carry us until we come up with a more permanent solution. You WILL have to repair the packages after a flash. Just go into Botbrew and select the germane packages and reboot.
Installation problems and errors
Q: I just ran "su -c v6" and the terminal returned only a "$"! What gives?
A: That is an unfortunate side-effect of the package installation (one I hope I recently fixed!). Launch Botbrew, go to the v6 package and press reinstall. The script will work in the terminal as before, no reboot necessary.
Q: I pressed Auto-remove, but it failed! What went wrong?
A: It is an unfortunate bug in Opkg, the engine that powers Botbrew, where the autoremoval process sometimes fails. Just try it again until it works. I find that when it fails for me, the third try finishes the removal process completely.
Q: I just tried to install a mateorod package, but the install failed because of "check_data_file_clashes" and "file is already provided by * android-framework*"?
A: Yep, that is a designed file conflict, added to the packages to protect the integrity of the backups and prevent users from accidentally losing functionality they really wanted. The error means you already have a mateorod-whatever package installed. Look for it in the installed packages screen, uninstall that package first, and then try to install your other mateorod package.
Q: Can I get (your favorite mod, script, or theme) supported by a package from Botbrew?
A: We can certainly try. Botbrew is only limited to offering packages we can figure out how to make. Request it in the thread, and maybe we can find a way to package it up together.
These packages are available for those of you running an older nightly who do not wish to flash an update. If your build is past any of the dates below, you can install directly from Botbrew!
If Botbrew is installed, the packages below can be installed directly from any browser or file manager.
This is an artifact, almost. But if you have questions about the configuration process for the v6, this is what I used.
The V6 Supercharger menu asks users to confirm operations at several points, usually prompting you to press the Enter button, y for yes or n for no. Those are just confirmations of intent and those steps are skipped in the guide. They are common sense though, and should pose no problem.
The script and the method of modding the services file is the product of the hard work of zepplinrox. I just followed the directions to save people the effort. Any risks are yours and yours alone, as always.
1) Download and Launch Botbrew. Botbrew will bootstrap in some necessary packages
2) Install package [b]repository-mateorod[/] and press the refresh packages button at top right.
3) Install package mateorod-v6
4) Reboot. You will see an "Android is upgrading" pop up over your boot animation.
5) Open a terminal and run the following:
su -c v6
6) The script will run. The program should automatically run the Driver Options. (If not, enter option 26 in the main script menu to continue following this guide).
Choose 1-3 for scrolling speed. (do yourself a favor and select 1, for the fastest)
7) Y for yes to integrate into init.rc
8) Enter y if you do not want the V6 script animation.
9) The script will enter its main menu which has 30 options. Select option 7.
OpenGL Users: Some slightly less aggressive settings have been reported as resulting in increased stability with OpenGL.
10) You will be prompted to Super clean and Reboot. This is no longer necessary. The supercharger settings take place immediately. But you can do it if it makes you feel better.
11) Disable and reenable zRAM at 18% in settings/performance/memory management/zRAM in the device settings if you experience lag later. Since this requires reboots, I have changed this to as-needed. Update HacDan informs us our kernel does not have zRam compression. Verdict: Unneeded!
12) Rerun V6 script and read the info beneath the menu list. It should indicate that
-Launcher is Die-Hard, i.e. Supercharged
-ADJ fixes NOT NEEDED
-OOM Groupings Fixed
-Current AND prior minfrees = 8, 14, 75, 90, 95, 125 mbs
-Supercharger Service is installed, and
-Supercharger Level = 100% Supercharged.
If so, then you are correctly installed and running, and your values are sticking after reboot. That's it
Glad it worked for you. Unsupercharge is an option in the menu, should you want to undo the changes. This update makes backups of all of your original settings during the setup process, so they are quick to restore.
I have tried to repack the modded services.jar into the nightlies using Root Explorer with varying results. I haven't downloaded the last few updates, but navigating within zips has been buggy in ICS for me. When I tried to copy/paste, it appeared to work, but the file remained unreplaced.
I usually use the latest release candidate of Total Commander for file moving, as its dual window format is easy and it uses a progress bar for large operations. But it too is buggy using the nightlies.
FWIW: I have tried ES Explorer, Root Explorer, Total Commander, OI File Explorer 1.2, and Astro with only Astro working for me.
Having said that, replacing the file is easy on a home computer . I just try my best to find a way to do things entirely from the Nook as a personal idiosyncrasy.
Tried using astro to put the services.jar in, only getting bootloops (1 hour+ and counting, way too long). Tried putting it in before and then flashing the update.zip (2/25 ICS). Tried letting it boot for 2 hours, nada.
Only thing I can think of, is that you have something in your data that is working against this. My advice is to grab a clean nightly(one you haven't messed with) and put it on your sd. Boot into recovery clear cache and dalvik, update to that nightly, and see if you get through. If you can't than you might have to do a clean install.
But if you get through, than perhaps you should run titanium backup to be safe. Launch root explorer and swap the service.jar files. Reboot and clear caches. If you are able to reboot completely than continue on your directions, if not than perhaps your .jar file is corrupt.
I made a services.jar modded from eyeballer's 2/26 non-opengl build. Has cut down on the bugs so far. I will run it in my device tonight and if it looks unharmful, I will replace the top file tomorrow.
Not too long ago, we talked about how Sony was continuing its AOSP efforts on … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?