Introducing XDA:DevCon – A Conference For Developers By Developers
XDA Developers Android and Mobile Development Forum
Forgot your password?
 
Post Reply+
Tip us?
 
FireFart
Old
(Last edited by FireFart; 28th October 2009 at 07:26 PM.)
#1  
FireFart's Avatar
Senior Member - OP
Thanks Meter 0
Posts: 271
Join Date: Apr 2009
Location: Vienna
Default [HowTo] Get your Themes with cmupdater [Updated 28/10/2009]

Hey Guys!

All you have to do is put a additional file under /system/framework (so the Updater knows the Theme Version your running on) and create your own MetadataFile for Theme Support.
You can also create a Big MetadataFile with all the Updates in there, but thats a whole work to keep it up to date.

Take a look at the wiki, how the JSON-File has to look, and how the update will work:
http://code.google.com/p/cyanogen-up...ONMetadataFile

When you have questions: Just ask

Hope you like it

Update 28/10/2009:
CM-Updater 4.5 is out.
Get it here:
http://cyanogen-updater.googlecode.c...pdater_4.5.apk
Update 09/09/2009:
Added a HowTo
Update 08/09/2009:
CM-Updater 4.1 is out:
  • Fixed Bug when changing orientation while Barcodescanning
  • Fixed Bug with MD5SUM to Pad the String to 32chars
  • UpdateFolder can now be changed (i think its beta )
Suggestion for all Theme Developers(cause some host their themes on one click hosters):
Create a google code Project to host your themes and your JSON.
You can put up to 2gb Files on there and you have direct downloads.
For Barcodes use this link(creates permalinks):
http://qrcode.kaywa.com/

HowTo:
When you want to Use the Theme Update Feature, youn have to configure a Theme Server first. I haven't included one, because each ThemeDev has its own Theme JSON File.
Search your Favourite Theme Thread @ XDA and see, if the Designer already made it cm-updater compatible. If not ask him if he can do so and point him to this Thread.
If its compatible, just go to Settings-->Themes-->Theme Update Server, and enter the URL (must be a URL to a file called *.json) or just scan a Theme Barcode if the ThemeDev provided one. The Barcodescanning is the same as entering it manually, but it saves work so you don't have to type in the url.
The next Time you do a "Check now" the ThemeUpdaterServer File will be scanned (also the Rom Updates) and if the Theme matches some criterias (see below), it will show up in the App under Themes. All you have to do now, is download the File and hit "Apply Now".

When you are complaining about, the Themes and Roms are showing up even tough you already installed it, just disable the "Show all Updates" Option. When this is enabled, you will always see every Update(with a few limitations as described above). When you disable this feature, you will probably only see Updates.

How the Updater works (Themes):
Theme Developers put a File called
/system/framework/themes.theme
in their Themepackages, to tell the Update you are running a Theme with this name and this Version.(The Path is configurable)
When there is no themes.theme File present, the App assumes a Wildcard for Theme Checking (will come to this later).
When any of the described checks don't pass, the Update is Discarded and the App proceeds with checking the next Update in the List.
When you do now an Updatecheck, first the Rom Provided in the JSON File (Theme Update Server) must match the Rom your running. This is because a Theme is always designed for a specific Version of a Rom, and this is a Securityfeature that you can not mess up your System.
When your Rom Matches, the next thing from the JSON that gets compared is the Theme Name.
This must either match the Theme Name from the themes.theme, or if this File is not Present or you have the "Show all Theme Updates" Option enabled, the Wildcard is used. So this Updates will always show up, so you can install a Theme, if you dont have one installed.
Next thing is the Version. If Wildcard(no themes.theme File or Show All Updates enabled) is used, the Version is not compared. Otherwise its compared against the Version from the themes.theme, so you will only see updates for your Theme and no older Versions.
The last thing that must match is the branch. Its either Stable or Experimental. It depends on your Configuration (Show Experimental Builds), if this update shows up or not.

When your Update is not showing up, connect your Phone via USB Cable and do an
Code:
adb logcat | grep "<CM-Updater>"
You will see the Output from the App, and the Reason why an Update is discarded. It can be helpful for Theme devs to test their own Jsons.
If you like my work, buy me a beer(EUR) or in USD

Follow me on Twitter for the latest CM-Updater Updates

Check out the new CyanogenMod-Updater @ XDA or @ Google Code

Phone: Black TMobile G1
Rom: CyanogenMod v4.2.11.1
Recovery: Recovery 1.4
SPL: HardSPL 1.33.2005
Radio: 62.50S.20.17H_2.22.19.26I
 
question.com
Old
#2  
question.com's Avatar
Senior Member
Thanks Meter 30
Posts: 694
Join Date: Jun 2006
Location: providence, RI
damn i cant wait for this
 
prash
Old
#3  
prash's Avatar
Senior Member
Thanks Meter 15
Posts: 565
Join Date: Feb 2009
Location: Philadelphia

 
DONATE TO ME
Thanks for all your work! Already prepping to use and abuse this feature for my themes :]

Greatly appreciate your work.
Professional Graphic/Web Designer/Front-end Developer
TeamDouche

My Themes: Chroma, Mau5, AlienAqua, SystemForce3, and more.
If you like my contributions..Donate?
 
dthadamaja
Old
#4  
Senior Member
Thanks Meter 7
Posts: 226
Join Date: Feb 2008
This sounds great! Will definitely look into it more when I get the chance.
 
prash
Old
#5  
prash's Avatar
Senior Member
Thanks Meter 15
Posts: 565
Join Date: Feb 2009
Location: Philadelphia

 
DONATE TO ME
This is just amazingly awesome...



Of course its still on the old CMUpdater but still, things are ready to go now :]
Professional Graphic/Web Designer/Front-end Developer
TeamDouche

My Themes: Chroma, Mau5, AlienAqua, SystemForce3, and more.
If you like my contributions..Donate?
 
wiked1r
Old
#6  
Member
Thanks Meter 0
Posts: 88
Join Date: Feb 2009
Location: newark, nj
great idea
white rooted g1 .. and its updated
 
Honestly77
Old
(Last edited by Honestly77; 1st September 2009 at 05:43 AM.)
#7  
Senior Member
Thanks Meter 2
Posts: 291
Join Date: Dec 2007
So are there two buttons now? One to check mod update other for your theme update? Build in devs metadata file location and have a drop down menu so you can switch themes on the fly. Maybe add a link to go to a location with 5 or 6 screenshots that pop up in the browser? To make it super easy. Add an option to input your own custom locations and save them and make them nameable and selectable from a drop down menu. Devs can just include a location in thread topic of their metadata file. And when you need to add a feature...just add in new metadata file links as well. Like custom apns i suppose.
Current:
Phone: HTC EVO 4G LTE
Rom: 100% Stock

Retired:
Phone: HTC Sensation 4G
Rom: OrDroid 8.20 Sense 4 Port.

Phone: HTC Droid Incredible AMOLED
Rom: Kingdom Sense 3.0

Phone: White T-Mobile G1
Rom: SuperEclair 3.0 Beta 4.1
 
drpfenderson
Old
#8  
drpfenderson's Avatar
Senior Member
Thanks Meter 36
Posts: 727
Join Date: Oct 2008
Location: Portland, OR
Is there going to be some way for it to keep track of theme compatibility? For example, I have a theme (Enoch) which works with 4.0.4, but EnochX works only with 4.1.X. If they tried to install EnochX on 4.0.4, or Enoch on 4.1 - what would happen? Will CMUpdater know not to install incompatible themes? Perhaps there should be a JSON identifier for what build a theme is compatible against?
Follow me on the web
:: Phone: Google Nexus One - ROM: CyanogenMod 7.2 for N1 - Recovery: Amon_Ra 2.2.1 ::
:: Tablet: Google Nexus 7 - ROM: CM10 Kang 20120829-UNOFFICIAL - Recovery: TWRP 2.2.2.0 ::
Search, search, search BEFORE posting, please.
 
FireFart
Old
#9  
FireFart's Avatar
Senior Member - OP
Thanks Meter 0
Posts: 271
Join Date: Apr 2009
Location: Vienna
Quote:
Originally Posted by drpfenderson View Post
Is there going to be some way for it to keep track of theme compatibility? For example, I have a theme (Enoch) which works with 4.0.4, but EnochX works only with 4.1.X. If they tried to install EnochX on 4.0.4, or Enoch on 4.1 - what would happen? Will CMUpdater know not to install incompatible themes? Perhaps there should be a JSON identifier for what build a theme is compatible against?
The "mod" string in the json must match the ro.modversion from /system/build.prop . Otherwise you will not see the update. Maybe i will add multiple mod strings
If you like my work, buy me a beer(EUR) or in USD

Follow me on Twitter for the latest CM-Updater Updates

Check out the new CyanogenMod-Updater @ XDA or @ Google Code

Phone: Black TMobile G1
Rom: CyanogenMod v4.2.11.1
Recovery: Recovery 1.4
SPL: HardSPL 1.33.2005
Radio: 62.50S.20.17H_2.22.19.26I
 
DavidChill
Old
#10  
DavidChill's Avatar
Senior Member
Thanks Meter 8
Posts: 135
Join Date: May 2009
Location: Anaheim
Default impressive!

wow, i can not wait to use this! i'm glad that your including theme support so now we can handle themeing a lot easier

awesome work!
T-Mobile: Google Nexus One {ROOTED}
ROM: CyanogenMod 7.1.0
Died - 12/31/11 RIP

T-Mobile: SGSII {ROOTED}
ROM: _Thursdays' Tuesday ROM
Kernal: Faux's Latest 0.0.9u
SdCard: 16gb Turbo

Thanks to everyone for their great information!
Hit me up on Gtalk or email me: Social@DMRodriguez.net

Живая жизнь

 
Post Reply+
Tags
cmupdater, cyanogen, downloader, theme, update
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Go to top of page...

XDA PORTAL POSTS

Auto Test Your Android Apps with Robotium

You’ve just finished coding your very first app, but before you release it to the wild, you … more

Open Source CPU Info App for Windows

So you’re playing with your shiny new Windows 8 tablet PC, when one of your like-minded geeky … more

Guide to Using Adobe Air on Android

When writing an app with performance in mind, you most likely want to write it native code using the … more