PPCGeeks

PPCGeeks (http://forum.ppcgeeks.com/index.php)
-   HTC Vogue Development (http://forum.ppcgeeks.com/forumdisplay.php?f=59)
-   -   Tutorial: Adding Registry Entries to your Rom (RGU Method) (http://forum.ppcgeeks.com/showthread.php?t=33527)

rstoyguy 07-31-2008 01:11 AM

Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
1 Attachment(s)
About this Tutorial
-=-=-=- -=-=-=- -=-=-=- =-=-=- -=-=-=-
This tutorial will show you how to add registry entries to your cooked rom. If you are wanting to learn about the
registry, follow this link first! http://www.wmexperts.com/articles/ho..._registry.html

A little preparation now, can save you a lot of time later.

This tutorial ASSUMES you have working knowledge of cooking your own rom. I AM NOT RESPONSIBLE FOR ANYTHING THAT HAPPENS TO YOU OR YOUR DEVICE by reading this tutorial! This tutorial will work with most windows-mobile based kitchens, Apache, Titan, Vogue and others.


Credits
-=-=-=- -=-=-=- -=-=-=- =-=-=- -=-=-=-
I would like to thank PPCGeeks and all those that made the kitchens possible! You all know who they (you) are!
And a special thanks to Hobbesisreal for the Registry tutorial I've linked, and AcesZHigh for providing the
tutorial basics on WinCeRegeditor! And of course mrgeoff, I found that he was the one that started the base for the registry edits in the RGU that I use and have attached!


Terminology used in this tutorial:
-=-=-=- -=-=-=- -=-=-=- =-=-=- -=-=-=-
OEM - Similar to a .CAB file, this is the method used to add files/programs to a cooked Rom. This is copied to
USER_OEM if using the ppckitchen, or into your OEM folder if you are using another kitchen.
GUID - GUID (or UUID) is an acronym for 'Globally Unique Identifier'. It is a 128-bit integer number used to identify resources.
RGU File - The file in the OEM that contains the registry entries.


What you will need:
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
1. CeRegEditor from: http://ceregeditor.mdsoft.pl/
2. zz_MyRegistry_OEM.zip attached to this post.


The steps involved:
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
This tutorial will teach you how to registry entries to your cooked rom. I will show you how to add the registry entries to the attached zzz_My_Registry_OEM by editing the *.RGU file. So here are the steps:

1. Download and extract "zzz_My_Registry_OEM.zip"
2. Copy "zzz_My_Registry_OEM" to your USER_OEM or OEM folder(s).
3. Registry Basics (If you need more, come back later...)
4. RGU Registry Syntax and proper formatting.
5. RGU file and it's formatting requirements.
6. Identify the registry entries you wish to include.
7. Export and/or enter your edits.
8. Flash and enjoy!


1. Download and extract "zzz_My_Registry_OEM.zip"
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
Ok, who needs help with this one? Be sure to extract with paths!


2. Copy your files to the new directory "zzz_My_Registry_OEM".
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
Just copy the files you want into the zzz_My_Files_OEM directory.
I have already created a custom OEM for you with a unique GUID, a sample initflashfiles.txt, and included a XML
file so the ppckitchen will identify your OEM.


3. Registry Basics
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
First I think we need a little education on registry formats. There are 5 types of registry entries I deal with on
a regular basis. These are:
1. DWord : For entering numerical data
2. String for entering alphanumerical data
3. Multi-string - advanced
4. Hex or binary data - advanced
5. DecDword - A decimal valued DWord. Not currently supported by BuildOS.

All entries must have proper syntax or buildos will not like it and say "Error building xxxxxx Hives". All entries
must have 3 components. The Key or location name, the Value Name, and finally the data. Let's take a look at the registry edit to kill the SMS Sent notification as it would appear as a registry entry for a RGU file:

Code:

; No SMS Sent Notification
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Inbox\Settings]
"SMSNoSentMsg"="1"

Let's examine the three lines above.
Line 1, is how to add a comment. Anything preceded by a ";" is considered a comment to the end of the line.
Line 2, is the Keyname where the value is located that you want to modify. If it does not exist, it will be
created. The Keyname is enclosed in brackets, [ and ].
Line 3, is the Valuename and the data. The value name is always enclosed in quotes.


4. RGU Registry Syntax and proper formatting.
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
That was simple enough, now let's look at the syntax required for the above registry values. These will be
followed by the names from above, an example or two to show the syntax, and then a few comments.

1. DWord : for entering numerical data. This is a HEXADECIMAL VALUE!

"Value1"=dword:00000001
"Value2"=dword:000001cf
"Value3"=dword:1cf

The key here is the value must be in hex! The actual data can be 8 digits long padded by zeroes. You could also omit the leading zeroes and that will work as well.

2. String : For entering alphanumerical data

"Value1"="blah, blah, blah"

This is straight forward. Most data here is text and simply enclosed in quotes. There are some advanced
functions, but I am here to show the basics. PM me or read below on exporting values.

3. Multi-string - advanced

"Curr0"=multi_sz:"alarm2", "", "alarm2", "default", "Empty", "alarm2", "infbeg", "infend", "infend", "", "", "",
"alarm2", "infbeg", "infend", "infend", "alarm2", "", "", "voicbeep", "RecEnd"

This is one that I almost always Export.

4. Hex or binary data - advanced

"AlarmHandle"=hex:\
21,00,00,35,2B,00,00,32,1F,00,00,35,2A,00,00,34,2D ,00,00,34,00,00,00,00,\
18,00,00,36

This is multi-line and I ALWAYS Export these!

5. DecDword - A decimal valued DWord. Not currently supported by BuildOS.
This is not supported by the current kitchens. I was introduced to this while making custom OEM's. It sure would be sweet though!

The OEM below is ALREADY LOADED with most of the registry edits I use in my rom!

rstoyguy 07-31-2008 01:12 AM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
5. RGU file and it's formatting requirements.
-=-=-=- -=-=-=- =-=-=- -=-=-=- -=-=-=-
Now that you have that down, let's talk about the kitchen requirements of a basic RGU file and it's format.

There are 4 basic rules:

1. The first line must be "REGEDIT4"
2. The second line is usualy a blank line. (enter will do just fine.)
3. any thing on a line after a ";" is ignored. This can be at the beginning of the line or after your entry. Comment well so you know what you have!
4. The end of the file always need to have two blank lines! Again enter will work. And while it is debated 1 or two, I always put two to be safe...

Here a complete sample RGU file including the SMS Notification hack from above:

Code:

REDEDIT4
 
; No SMS Sent Notification
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Inbox\Settings]
"SMSNoSentMsg"="1"


6. Identify the registry entries you wish to include.
-=-=-=- -=-=-=- -=-=-=- =-=-=- -=-=-=-
Site to learn more about registry:
http://www.wmexperts.com/articles/ho..._registry.html
You can also find some great links here for additional registry entries...


7. Export and/or enter your edits.
-=-=-=- -=-=-=- -=-=-=- =-=-=- -=-=-=-
The easiest way to do this is by using CeRegistry Editor mentioned above. Here are the steps as explained by
Aceszhigh from his tutorial: Tutorial: Integrating Custom Registry Settings into a ROM w/ ProvXML - Lazy Man's Way

Quote:

Originally Posted by aceszhigh
This part of the tutorial is only for if your tweak does NOT involve creating a completely new
registry key (as opposed to changing the value of an existing key).
1. Install CERegEditor (attached below). This program allows you to access/edit/export your device's registry from
your PC. Very useful!
2. Make sure you have an ActiveSync connection established. Fire up CERegEditor and click Connection -> connect. At
this point your device's registry should come up.
3. Navigate to the key you want to export. This could either be: a) a reg key you have already tweaked on your
current rom, or b) a key that you want to tweak on your future rom.
4. Now click EDIT -> export. NOT Export AS
For me, an error message usually pops up here. Click OK and disregard it.
Type in whatever name you want for the File Name.
SAVE AS a .ceReg! and click save
5. Now, if you are exporting a key from your device which already has been edited the way you want it...Do nothing
for this step.
If you prefer the value of the key to be changed, then open up your .reg file in NOTEPAD and change the value.

Now to open this file, right click on the new *.cereg file and select Open With... then Notepad. Now cut and
paste into the OEM's RGU file. Don't forget formatting!!!!

8. Flash and enjoy!
-=-=-=- -=-=-=- -=-=-=- =-=-=- -=-=-=-
Build your rom and Flash! Now everyTime you need to hard reset, re-flash, you can keep your registry edits if you
wish and know how...

This has been a great timesaver for me in the past, and I hope it will be for too. If you can think of an idea for
another tutorial, send me a pm to let me know and I will see what I can do...
HAVE FUN!!!

You can also find some great links here for additional registry entries...


Note: I will edit the content over the next few day to ensure accuracy and clear content....

rstoyguy 07-31-2008 01:28 AM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Adding Registry Entries to your Rom (RGU Method)

Reserved for commonly asked questions...

And a partial peek inside the RGU:
Quote:

REGEDIT4

;*** Change Power Settings ***
;================================================= ====
[HKEY_CURRENT_USER\ControlPanel\BackLight]
"ACBrightNess"=dword:00000005
"BatteryTimeout"=dword:0000001E
"BrightNess"=dword:00000005
"ACTimeout"=dword:0000003C
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Power\Timeouts]
"ACSuspendTimeout"=dword:0000012c
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Power\Timeouts]
"BattSuspendTimeout"=dword:0000003C

;*** First Boot Fixes ***
;================================================= =====
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock]
"GMT_OFFSET"=dword:00000168
"AppState"=hex:11
"TZIndex"=dword:00000004
"HomeDST"=dword:00000001
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
"NITZEnable"=dword:00000001
[HKEY_CURRENT_USER\CONTROLPANEL\PHONEEXTENDFUNCTION \CDMA]
"SyncSystemTime"=dword:00000001

;*** Change Misc Settings ***
;================================================= ======
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell]
"ShowTitleBarClock"=dword:00000002
[HKEY_LOCAL_MACHINE\Software\OEM\TFLOSettings]
"EnableSound"=dword:00000000
[HKEY_LOCAL_MACHINE\System\ErrorReporting\DumpSetti ngs]
"DumpEnabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Inbox\Settin gs]
"SMSNoSentMsg"="1"
[HKEY_LOCAL_MACHINE\SOFTWARE\OEM\SMS]
"RecvTimeStamp"=dword:00000001
;Enhance GPS
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\SUPL AGPS]
"GPSMode"=dword:4
;1/2 second delay for End Button during call
[HKEY_LOCAL_MACHINE\Software\HTC\Phone\PhoneExtendS etting]
"EndCallTime"=dword:50
;disable start/end call sounds
[HKEY_CURRENT_USER\ControlPanel\Sounds\Dialing]
"Script"=""
[HKEY_CURRENT_USER\ControlPanel\Sounds\Ending]
"Script"=""
;disable vol up/down beeps during call
[HKEY_CURRENT_USER\ControlPanel\Sounds\LoudestInCal lVolume]
"Script"=""
[HKEY_CURRENT_USER\ControlPanel\Sounds\QuietestInCa llVolume]
"Script"=""
[HKEY_CURRENT_USER\ControlPanel\Sounds\StandardInCa llVolume]
"Script"=""

; *** Peformance Changes ***
;================================================= =============
[HKEY_LOCAL_MACHINE\System\GDI\GLYPHCACHE]
"limit"=dword:00008000
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"CacheSize"=dword:00002000
"EnableCache"=dword:00000001
[HKEY_LOCAL_MACHINE\System\StorageManager\Filters\f sreplxfilt]
"ReplStoreCacheSize"=dword:00001000
[HKEY_LOCAL_MACHINE\Comm\AsyncMac1\Parms]
"DisablePowerManagement"=dword:00000000
[HKEY_LOCAL_MACHINE\Comm\Irsir1\Parms]
"DisablePowerManagement"=dword:00000000
[HKEY_LOCAL_MACHINE\Comm\PPTP1\Parms]
"DisablePowerManagement"=dword:00000000
[HKEY_LOCAL_MACHINE\Comm\L2TP1\Parms]
"DisablePowerManagement"=dword:00000000
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Cl ass\SDMemory_Class]
"DisablePowerManagement"=dword:00000000



Whosdaman 07-31-2008 01:34 AM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Good job, time to read lol

night_of_dreams 07-31-2008 01:38 AM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Great post! I've always wanted to add my registry into the kitchen so I don't need to do it every time after I cook. This thread should be sticky'ed.

rstoyguy 07-31-2008 01:44 AM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Quote:

Originally Posted by Whosdaman (Post 366496)
Good job, time to read lol

Thanks, remember, I'll update it tomorrow after a couple hours of sleep...

Quote:

Originally Posted by night_of_dreams (Post 366502)
Great post! I've always wanted to add my registry into the kitchen so I don't need to do it every time after I cook. This thread should be sticky'ed.

It is already. I maintain Post #8 in the stickied How To's For Developing. thread with links to all my tutorial's.

mrgeoff 07-31-2008 02:22 AM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Thanks for adding it to the holy grail of ROM Development! lol

boggsie 08-12-2008 09:09 PM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Paging: rstoyguy

A little bit off topic, but this is the closest (on topic) thread of yours.

I used CeRegistryEditor to extract the values in question.

Code:

[HKEY_CURRENT_USER\Software\TodayAgenda]
"FontSize"=dword:FFFFFFFF

I run that through the rgu to xml application:

Code:

<?xml version="1.0" encoding="utf-8"?>
<wap-provisioningdoc>
  <!--
Today Agenda
 -->
  <characteristic type="Registry">
    <characteristic type="HKCU\Software\TodayAgenda" translation="filesystem">
      <parm name="FontSize" datatype="integer" value="4294967295" />
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

I name the file _setup.xml and use makecab to create RegSetting.cab

There are a number of other settings that are in the xml, too - but this is the one that is preventing the cab from installing properly.

Any thoughts that you might have are certainly welcome and appreciated.

Best regards,
-boggsie

rstoyguy 08-12-2008 10:00 PM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Quote:

Originally Posted by boggsie (Post 380635)
Paging: rstoyguy

A little bit off topic, but this is the closest (on topic) thread of yours.

I used CeRegistryEditor to extract the values in question.

Code:

[HKEY_CURRENT_USER\Software\TodayAgenda]
"FontSize"=dword:FFFFFFFF

I run that through the rgu to xml application:

Code:

<?xml version="1.0" encoding="utf-8"?>
<wap-provisioningdoc>
  <!--
Today Agenda
 -->
  <characteristic type="Registry">
    <characteristic type="HKCU\Software\TodayAgenda" translation="filesystem">
      <parm name="FontSize" datatype="integer" value="4294967295" />
    </characteristic>
  </characteristic>
</wap-provisioningdoc>


There are a number of other settings that are in the xml, too - but this is the one that is preventing the cab from installing properly.

Any thoughts that you might have are certainly welcome and appreciated.

Best regards,
-boggsie

And this is well out of the range of the integer value...2147483647

You need to use base64 for this and xml. I'm trying to finger it out now. (learning/googling) A quick call to the colonel may help as he uses the same method when defining binary data in his themes...
Example: the "Manilla Theme" in ppcgeek_oem.rar

rstoyguy 08-12-2008 11:04 PM

Re: Tutorial: Adding Registry Entries to your Rom (RGU Method)
 
Quote:

Originally Posted by boggsie (Post 380635)
Paging: rstoyguy

A little bit off topic, but this is the closest (on topic) thread of yours.

I used CeRegistryEditor to extract the values in question.

Code:

[HKEY_CURRENT_USER\Software\TodayAgenda]
"FontSize"=dword:FFFFFFFF

I run that through the rgu to xml application:

Code:

<?xml version="1.0" encoding="utf-8"?>
<wap-provisioningdoc>
  <!--
Today Agenda
 -->
  <characteristic type="Registry">
    <characteristic type="HKCU\Software\TodayAgenda" translation="filesystem">
      <parm name="FontSize" datatype="integer" value="4294967295" />
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

Any thoughts that you might have are certainly welcome and appreciated.

Best regards,
-boggsie

I found a program at xda-developers that does quite abit as far as converting .reg to .xml. It converted your setting to
Code:


 
<wap-provisioningdoc>
<!-- *** COMMENTS *** -->
  <characteristic type="Registry">
      <characteristic type="HKCU\Software\TodayAgenda" translation="filesystem">
        <parm name="FontSize" value="-1" datatype="integer"/>
      </characteristic>
  </characteristic>
</wap-provisioningdoc>

Here is the thread. It even does the binary type like I'm looking for, by far the most advanced I've seen. Just rename your RGU to REG and go for it...
http://forum.xda-developers.com/showthread.php?t=390846

Edit: When running the program, click "Cab & Copy" tab up top, then the option in the lower left will do all the dirty work...


All times are GMT -4. The time now is 04:36 AM.

Powered by vBulletin® ©2000 - 2024, Jelsoft Enterprises Ltd.
©2012 - PPCGeeks.com


Content Relevant URLs by vBSEO 3.6.0