# [App][Free] StaticRomAnalyis -programmatically evaluate your ROM



## JBirdVegas (Jun 11, 2011)

This is a "simple" research app, and Rootz exclusive release, it uses Reflection to analyze the SettingsProvider to see how many fields exist.

These fields hold the values the system (ROM) uses to perform your favorite mods... the higher the number the more customizable the ROM, keep in mind lots of these are AOSP standards and not all fields hold UI mods (lots of low level work goes into roms).

I say this app is "simple" because I spent zero time on the UI... this app is going to be part of a larger project but I thought the community could help me do some baseline research, please!

I just need you to respond with the two orange fields the app displays and your device.

Let me know how your rom does!!!

NOTES:
*you shouldn't need root
*if you experience a crash, please include a logcat link to pastebin
*I'm really only interested in how your ROM responds this app may be updated to make reporting easier but I don't want to put more than the afternoon I've already lost writing this off project app :-/
*I would be happy to answer questions about the code but as its part of a larger project it will not be released, sorry









Download:
View attachment StaticRomAnalysis.apk


***Updated: now included a button to send the results via email to a testing account I started for this... this way I'll be able to get much more information about what makes our favorite roms so awesome!!! The email is plain/text with no attachments and no personal or device specific information, please feel free to check it out before you send, lol but please do send it haha!

**Updated: lowered API requirement to Android 2.2 so now everyone should be able to install without 'Problem parsing the package errors' removed nonLocalized strings from AndroidManifest thanks @Soulmech for the help finding that bug!


----------



## nexgeezus (Apr 5, 2012)

Rom: AffinitySeries1.0.Beta1

Elements in setting provider: 488

Edit. Galaxy Nexus CDMA

Tap'd from my Nexus to your eyes....


----------



## nutpn (Jun 9, 2011)

406 -on muzzys jr003r


----------



## xlinuxtrancex (Jun 18, 2011)

Cm10-20120911-EXPERIMENTAL-toro-M1
528 elements
Good luck with your project!


----------



## skynet11 (Aug 2, 2011)

547 on AOKP for Grouper (however it's a personal build with cherry picks, so I don't know if this helps you at all)


----------



## JBirdVegas (Jun 11, 2011)

Updated to make reporting a simple button click to send an email, I can get much more information this way 

but see the note nothing is personal or device specific this app only looks at the SettingsProvider for the fields and the /system/build.prop for the rom names and/or aliases... and its a plain text email so you can see exactly what you are sending 

Thanks for the help guys!!!


----------



## JBirdVegas (Jun 11, 2011)

skynet11 said:


> 547 on AOKP for Grouper (however it's a personal build with cherry picks, so I don't know if this helps you at all)
> View attachment 32786


It absolutely helps!!! It also goes to show anyone reading the thread why I'm doing this. Your personal build has 9 extra fields from the official Build 2 (538 fields)  see how the extra cherry-picks represent further advancements in ROM development









To be honest its the only way we can measure exactly how customizable a rom is, well that I have found anyways.

***I keep using the term 'Field' I'm refering to members of the frameworks/base/core/java/android/provider/Settings.java
***Here is the most recently added field to AOKP https://github.com/AOKP/frameworks_base/commit/5ee4661d5175f4fb0c79ceef79b5bcabcaba6482 in case anyone is still wondering


----------



## miketoasty (Jun 10, 2011)

533 on nightly CM10 build 9-24 on Toro.


----------



## Jaykid007 (Apr 20, 2012)

Vaniraosp!


----------



## BMc08GT (Jun 23, 2011)

559 aokp_d2vzw-userdebug current source plus commits for testing


----------



## JBirdVegas (Jun 11, 2011)

Only ten emails received, but so far cna has the highest score. Not going to lie that was unexpected, no offence intended.

ro.modversion: Codename-Android-3.6.0-GN-VZ
ro.build.display.id: JRO03R

Fields found: 600

PS after a week I'll export all the results, without email header info (so no email addresses are exposed, if anyone want to further analyze the data.

So spread the word... just noticed I built this against the 4.1 SDK but I'm at work and can't fix right now so I'll till tomorrow this will only install on 4.1 based devices, everyone else will receive a 'Problem parsing package error'

Again I'll fix it tomorrow morning sorry.

Edit: I was unaware of this but it seems dropbox uses reflection to store variables in the settings provider... interesting.
Proof came when I noticed these system keys in a result (the values of the keys is never collected just the presence of these keys)
DROPBOX_AGE_SECONDS
DROPBOX_MAX_FILES
DROPBOX_QUOTA_KB
DROPBOX_QUOTA_PERCENT
DROPBOX_RESERVE_PERCENT
DROPBOX_TAG_PREFIX


----------



## JBirdVegas (Jun 11, 2011)

**Updated: Lowered the Android API version to v3 better known as cupcake, lol if anyone is still on that!

parsing errors should be eliminated now on devices < 4.1

**Updated: Thanks to @Soulmech for helping me debug the parsing error, not that anyone cares but Blur requires localized strings in the AndroidManifest (no hardcoding Strings, they must be called via @string/resource_key) this is not a requirement in all OS versions but appears in Droid 4 Blur (maybe more idk).


----------



## synergy (May 10, 2012)

This is a neat project. 588 on September 27 codefireX build.

Sent from codefireX


----------



## Es0ter1c (Jan 24, 2012)

Did you pull the link for the app? I would love to give it a spin on my grouper.

Sent from my Nexus 7 using RootzWiki


----------



## JBirdVegas (Jun 11, 2011)

Es0ter1c said:


> Did you pull the link for the app? I would love to give it a spin on my grouper.
> 
> Sent from my Nexus 7 using RootzWiki


Link is still active but tapatalk doesn't like to show forum hosted file. Open in a web browser and you should see the DL link in the op 

please don't forget to send the results!


----------



## Es0ter1c (Jan 24, 2012)

Done and done! Thanks!


----------



## wigsplittinhatchet (Nov 5, 2011)

FC's on Droid X running Vortex Liberated

Log http://db.tt/tntIbsiR

Sent from my DROIDX using RootzWiki


----------



## JBirdVegas (Jun 11, 2011)

wigsplittinhatchet said:


> FC's on Droid X running Vortex Liberated
> 
> Log http://db.tt/tntIbsiR
> 
> Sent from my DROIDX using RootzWiki


That's an unknown API error that should have been resolved. The android.widget.Space is no longer in the project anywhere. Try redownloading from the op if you get the same error then I need to host somewhere others than on Rootz because the link posted shouldn't have any dependencies above 2.2.

If you still get that error then I would like to talk to you, if possible, via email or gchat so I can make a patch and push the fix.
JBirdVegas at gmail


----------



## wigsplittinhatchet (Nov 5, 2011)

Hmm. Re downloaded and all is fine now. 
323 Droid X VXL
Just another reason to hate Motorola







Looking forward to what may come of this overall project. Thanks

Sent from my DROIDX using RootzWiki


----------



## wigsplittinhatchet (Nov 5, 2011)

546 on my fresh AOKP build for Grouper
Much better than my droid x haha 

Sent from my Nexus 7 using RootzWiki


----------



## JBirdVegas (Jun 11, 2011)

As promised here is one week worth or results (31 emailed results):
View attachment testn00bware.staticromanalysis.zip


Contained in this zip is all the results emailed to me (minus header info) in four different formats

PDF // pdf, duh








CSV // text spreadsheet
ODS // Open Document spreadsheet
HTM // webpage format

in case anyone wants to do more research please contact me and I would be happy to help however needed.

I'll say this the ROM with the most Fields reported to date was 612 fields from:
ro.modversion: Codename-Android-3.6.5-Nexus7v
ro.rommanager.developerid: codenamedroid

and the ROM with the fewest Fields reported to date was 323 fields from:
ro.modversion: LYXR 1.0
ro.rommanager.developerid: deVorteX & SlothlyDX & Alphadon

closely followed by 325 from:
ro.build.display.id: 6.5.1_167_DR4-1_M1-219 // Moto 4 ICS (leak? maybe, not 100% if its official or leak)

I would love to still get responses from the community so please keep them coming!

Also to be noted (thanks yarley for pointing it out) this method of measuring the customizability of roms only evaluates the frameworks for switches that could do anything not just UI or SystemUI package changes. That being said when I was doing ROM development always used this location for my switches and most the development and developers I've worked with use the same location for their mod switches... So this won't take into account the mods to Launchers, email, gallery or any other package your developer may have changed but not used any switches in the settings provider. So this isn't a complete evaluation but it gives us a good idea of how many switches or value holders we have in a given ROM.

If you have any question please don't hesitate to ask, the only dumb question is the one not asked!


----------



## jedininjafication (Aug 15, 2012)

Is there any way someone could drop box me? From browser all I get is an HTML file and no link here. Thanks

*Shaolin Shadowboxing*


----------



## jedininjafication (Aug 15, 2012)

Nm...I got it

*Shaolin Shadowboxing*


----------



## djdarkknight96 (Jun 11, 2011)

So I would assume this ignores theme chooser theme mods?

DarkJelly Gnex on JellyBro sent this from the app.


----------



## djdarkknight96 (Jun 11, 2011)

Never mind I figured it out...theme chooser mods DO NOT affect the score...

Lightly modded theme:









Heavily modded theme:









DarkJelly Gnex on JellyBro sent this from the app.


----------



## clearyt1 (Feb 16, 2012)

Liquid Smooth Toro jb v2 build rc3 rockin a strong 609. Still the best ROM goin for my Gnex...


----------



## JBirdVegas (Jun 11, 2011)

djdarkknight96 said:


> So I would assume this ignores theme chooser theme mods?


I haven't looked at the ThemeChooser code to see if it uses the settings provider to store its drawable resource locations.

If it does then if you have a theme or not it wouldn't matter the Fields that the apps use in the Settings Provider would exist... in this method of gathering info, anyways. Now if we pulled the settings.db and looking there having a theme or not would make a difference in the count. (If it stores content URIs and I don't know that it does)
So yes it ignores themes but it could detect the frameworks support.


----------



## downtownjeff (Jun 7, 2011)

Liquid-JB-v2.0-RC3 got me a score of 609

VZW GNex 
Trinity kernel


----------



## lilcdroid (Jun 6, 2011)

JBSourcery 2.3.6 scored 564. Verizon Google Nexus.


----------



## iStatiK (Nov 3, 2011)

Sent from Valhalla


----------

