Virtuous 3.0 Released

Late last week, Virtuous 3.0 was released.  It was a bit bumpier than I would have preferred, but we resolved the one issue which slipped through our testing rather quickly, with a small patch the same day.  If you are running 2.x and have been waiting for the dust to settle before upgrading, I would have to say it has settled.  Virtuous 3.0 has already surpassed 5,000 downloads (in just 4 days), with no major issues being reported.  It has been a lot of fun watching our user base grow daily to become one of the most popular ROMs for the Incredible.  If you have not taken a look at the change log, below are some of the features of 3.0.

  • New app separation model. Stock apps all in /system/app, Virtuous-added apps in /data/app. Only exceptions are Superuser, ROM Manager and Virtuous Buddy.
  • Enhanced Virtuous Buddy, which allows for toggling stock apps on and off rather than deleting them.  You can safely re-enable any app at any time.
  • Substantially improved method for placing apps in /data/app.  Most ROMs simply copy files into /data/app, where Virtuous now uses Android's package manager (pm) to manage such apps.
  • Latest versions of all Google apps, Adobe Flash, etc.
  • Option to use a modified version of Flash with Hulu app.  Credit to adrynalyne for modifying the latest version of Flash and ihtfp69 for the Hulu app.
  • And more subtle, behind-the-scenes enhancements to provide a stable yet flexible stock ROM.

Before anyone asks (again), no wipe is required to upgrade from 2.7 to 3.0.1.  I spend a lot of time making sure Virtuous' installation scripts properly handle upgrades, which are then diligently verified by our beta test group.  Granted, if you do encounter problems after an upgrade, a wipe will almost certainly clear that up.  So keep that option in your back pocket.

Thanks to all of you for supporting what has become an immensely successful project.  Your collective donations and positive feedback have been phenomenal and continue to be a source of motivation to produce better and better releases.

Hello There, Virtuous Buddy!

It took a bit longer than I originally anticipated but Virtuous Buddy is now ready to lend a helpful hand.  As I mentioned previously, the tool is based on Gscript but has been heavily modified at this point.  In fact, it no longer even looks similar.

Here are some of the cool features:
  • Virtuous Buddy's database of functions is updated dynamically. On startup, the script database is pulled from my web servers (do not worry, it is tiny; only 14k).  This allows for new functions to appear without your having to do anything!
  • Support for categories.  The original screenshot showed a long list of scripts, which was obviously going to become a nightmare over time.  As I was showing folks the app, the number one suggestion was adding categories (sub-menus); so I did.
  • Added confirmation prompts. So if while browsing you happen to click on a function/utility, a pop up box will appear to confirm you want to proceed.
  • Numerous functions already available to help manage the ROM with more to be added on request and as ideas come to mind.  All the removal tools are in place with options to easily re-add coming soon as well.  This will include functions such as enabling boot audio, toggling various system properties (i.e. Stagefright audio on/off, default install location to internal/sdcard), etc.
  • Automatic update notification and installation.  Virtuous Buddy is obviously not a Market app (thought it could be at some point).  To make sure everyone stays up to date, I built in functionality to prompt you when an update is available and automatically install if you choose to do so.
If you are still not convinced you should grab it, here are some screenshots:


I am looking forward to hearing some feedback on the tool, namely suggestions on the type of scripts/functions you would like to see made available.  Even if some of the requests require changes to the app itself, I am open to it and have set us up well to deal with those via the automatic update feature.

Download links have been pulled for Virtuous Buddy in anticipation of the ROM version 3.0.0, which includes a newer version.  The version of Buddy supporting 2.x will continue to function but is deprecated.  In other words, you should really just upgrade to Virtuous 3.0.0.

Coming Soon: Virtuous Buddy

One of the goals of Virtuous from the beginning has been to provide choices.  Start with stock, not strip much out and let you decide how you use your device, rather than me deciding for you.  Essentially all the automation to provide these choices has thus far been via ROM Manager.  While it continues to be a great tool and will remain a large part of the Virtuous offering, I have been looking for a way to provide some options without having to reboot.

Welcome Virtuous Buddy:


This tool will allow you to easily perform simple ROM management tasks without having to understand how to use adb or shell commands.  It is very similar to that of EZ-Customizer but allows for executing these options without having to reboot.

Virtuous Buddy is basically a re-branded version of Gscript.  It re-branded for a specific purpose: if you happen to have Gscript installed already, I did not want to trample your configs. So Virtuous Buddy sits off on its' own without bothering anything else.

Anyway, it is coming soon!

Virtuous 2.7 Released

Virtuous 2.7 has been released! Featured in this released is the introduction of Smooth Sense by Jercik. This provides a subtle UI enhancement consistent with the overall goals of this project, to stay close to stock. If you have not seen Smooth Sense, visit Jercik's original thread on XDA for an overview and some pictures. Check out the changelog for a detailed list of what is included.

This was the most throughly tested version made available thus far, thanks to our new beta testing group. Some of you may ask why there is no "patch" version being provided. The reality is that many folks have applied numerous mods, themes and other customizations, the permutations of which are simply impossible to test. By installing a full version of the ROM, we can be certain everyone experiences a seamless, bootloop-free upgrade process. And hopefully, re-applying your mods is quick and easy using ROM Manager.

Special thanks to ihtfp69 for providing an immense amount of guidance as I modified the framework-res.apk and to the beta test group who was diligent in providing valuable feedback and bug reports.

Looking for Beta Testers

We have a large enough user base at this point where I feel there is a need for a group of beta testers to validate the ROM before it is released to the masses. Especially considering how quickly updates get out now with ROM Manager.

Here are the requirements for participating in Virtuous' beta testing:
  • Run ROMs which may be somewhat unstable or contain bugs.
  • Understanding of adb (Android debugger), primarily using logcat and being able to move files around via shell.
  • Effectively communicate any issues and bugs you encounter. Beta testing needs to result in feedback otherwise it's a preview program, which is not what I am after here.
  • Be willing to flash full versions of the ROM to test installation procedures. Similarly, there will be times I will ask for testers to start with a wipe to simulate behavior new users would see.
  • Communicate via Google Talk or IRC (Freenode).
If you would like to participate, please apply to join our dedicated Google Group.

Multiple Mods, Compatibility and Boot Loops

I am seeing a number of reports of people encountering boot loops after applying various combinations of themes and mods.  I blame myself for not clearly documenting the conflicts, so I'll do my best to cover it here.

  • Revolution Theme - Conflicts with statusbar and rotary lock mods (basically anything which alters framework).
  • Rotary Clock - Should work fine with statusbar mods, conflicts with Revolution Theme.
  • Status Bar Mods - Conflicts with Revolution theme.
  • Mods Outside of Virtuous - Assume they will conflict with all of the above.  This includes the circular battery mods.

Basically, if you are using the Revolution Theme, you cannot use any other mods.  You can, however, safely use the other goodies and app removal options.  Keep in mind, it is virtually impossible to test every permutation of mod install.  The more mods you combine, the greater the risk that you will break something.

If everything were implemented via Metamorph, this would not be a problem.  However, many mods replace the same exact framework as others.  For example, Rotary Clock replaces framework/framework-res.apk, and framework/android.policy.jar.  Revolution replaces essentially every file in the framework directory.  Status bar mods only replace services.jar.  Anywhere mods which overlap on the same framework files are very likely to send you into a boot loop.

The only guarantee I can provide is that if you stick to the options provided via EZ-Customizer, you will be completely safe.  Beyond that, expect the possibility of failure considering you are venturing into mods which require substantial modifications to essential libraries.

Virtuous Custom Kernel

Virtuous now has a custom kernel option available and being tested for inclusion in the main ROM package. All credit goes to Adrynalyne for providing it to us. The kernel is listed as "Virtuous Custom Kernel (v1)" in RM and includes the following:

  • Built with 2.6.32.15-gb7b01d1 sources, which is the exact version from the official OTA, ninja released by HTC recently. This is NOT the same source as the current KingX and Hydra kernels, as those are based on source from an earlier leak.
  • Standard frequencies and voltages, no overclocking or undervolting whatsoever.
  • Perflock disabled, allowing for underclocking, such as a screen-off profile in SetCPU.
  • All frequency governors made available, with the default set to "conservative". The stock kernel is "on-demand", so this should provide a subtle improvement to battery life.
  • Use SetCPU to change governors, restrict clock speed and build profiles. It cannot be included with this kernel package or Virtuous itself as the author disallows it (which I can understand and will respect). Feel free to grab it from the thread or purchase it via the Market.

Please report back on your results with the kernel, mainly pointing out whether there are any problems. Assuming there are no reports of major issues, this kernel will be included in the next version of Virtuous (no ETA on that). Again, thank you Adrynalyne for providing us a kernel which coincides with the overall goals of this project.

More EZ-Customizer Removal Options

Added a bunch of new removal options via EZ-Customizer.

One note because I know people will mention this: When you remove a stock HTC widget, it leaves fragments in the widget list. It's harmless but the only way to get rid of them is to delete /data/data/com.htc.launcher, which would result in having to reconfigure all your home screens. That, or editing the sqlite DB (which I've done before) which is a lot more work than it's worth.

The fragments are caused by the HTC launcher. You've got a few options:

  1. Delete the launcher cache. You'll only lose your home screen icons and widgets. To do this, remove /data/data/com.htc.launcher and reboot your phone or kill the com.htc.launcher process (it'll automatically restart).

  2. Going to preface by saying this is much more work than just readding icons and widgets to your home screen, but here it goes. The widget list is actually in an SQLite database under /data/data/com.htc.launcher/databases/launcher.db. Copy it onto your machine via ADB and use SQLite Database Browser | Download SQLite Database Browser software for free at SourceForge.net to edit it and remove entries for any widgets you've deleted. Save the DB, the copy it back into place. Kill the launcher or reboot. One note, you won't be able to directly read or write from the /data/data dir via adb, so you need to use /sdcard as a temporarily location when copying to and from the PC.
I recommend option #1. Use ShootMe to take screenshots of each of your home screens prior to starting and you'll have a reference for re-creating it all.

Anyway, you can strip the ROM down quite a bit now. Enjoy.

Virtuous 2.6 Coming Today

So, 2.6 is coming today folks. The update will show up as a notification via ROM Manager and I'll be offering it two different ways: as a patch upgrade from 2.5 and as a full download. The benefit is that the patch is only 4MB right now, versus 150MB+ for the full ROM. I'm going to try to do this going forward to make upgrades that much easier.

It's not a huge release but there are some changes you guys will appreciate. For example, after 2.6 is applied and you remove the stock apps from /data/app, you won't need to remove them again in subsequent releases -- I'm keeping track of what I've copied there so they won't be copied again. Similarly, the same will go for EZ-Customizer settings. So if you've used the customizer to remove some more stock apps, I'll keep track of that and remove them automatically when you re-apply the ROM.

The more minor changes are: Peep returns (it works again), Gmail/Voice Search fix integrated and ROM Manager is included with the ROM. I'm actually not providing an easy-removal option for ROM Manager because it's critical to the function of Virtuous. Those who are adamantly against using it will need to remove it manually via adb.

Expect a 2.6 notification in your status bar a bit later today.