[Hero CDMA Themes and Apps] signals23:
NOTE: After some recent experimentation with another user who is trying to implement this, I came to the realization that in order to change the workspace grid numbers, all that needs to be changed is the cell size. The cellWidth and cellHeight are irrelevant.

TUTORIAL

NOTE: This tutorial uses the Rosie.apk from the latest ZenEXP ROM for it's example. This ROM is for the Hero, which is 320x480. I will take a look at other launchers, just post here which launcher you are using. Also, this will mess up your widget sizes. I plan on posting the widgets I use to this post that will work on a 5x5 workspace grid.

First off, you need to download the awesome APKTOOL by Brut.

http://xdaforums.com/showthread.php?t=640592

Make sure you follow his directions on how to get it up and running and load the frameworks files for your particular ROM (Very important).

Find the launcher APK you want to modify, in this case, we'll be modifying the Rosie.apk from the latest ZenEXP ROM. Run the APKTOOL as follows from a command prompt:

<path>\apktool d -t <framework file name> Rosie.apk

Browse to <path>\Rosie\res\layout-port and open workspace_screen.xml (note that everything is decoded for you!). Change the following, keeping in mind that this example uses a 320x480 screen resolution:

launcher:cellWidth="64.0dip" [I](320px / 64px = 5 cells)[/I]
launcher:cellHeight="82.2dip" [I](411px / 82.2px = 5 cells)[/I]
[I](NOTE: 480px - 25px status bar - 44px launcher bar = 411px)[/I]
launcher:longAxisEndPadding="44.0dip" [I](Used to be 55, this will add 11px to the workspace screen)[/I]
launcher:shortAxisCells="5" [I](Make sure this corresponds with your pixels above)[/I]
launcher:longAxisCells="5" [I](Make sure this corresponds with your pixels above)[/I]

Browse to <path>\Rosie\res\values, open dimens.xml and change the following:

<dimen name="cell_width">64.0dip</dimen>
<dimen name="cell_height">82.2dip</dimen>
[I](Make sure this corresponds to the numbers used previously)[/I]

Browse to <path>\Rosie\res\values-normal, open dimens.xml and change the following:

<dimen name="workspace_cellWidth">64.0dip</dimen>
<dimen name="workspace_cellHeight">82.2dip</dimen>
<dimen name="workspace_longAxisEndPadding">44.0dip</dimen>
<dimen name="launcher_control_height">44.0dip</dimen>
[I](Make sure this corresponds to the numbers used previously)[/I]

To expand the number of apps in the launcher drawer, change the following in the same file:
<dimen name="launcher_aagv_column_width">64.0px</dimen>
<dimen name="application_boxed_tv_layout_height">82.2px</dimen>
<dimen name="application_boxed_tv_layout_width">64.0px</dimen>
<dimen name="application_shortcut_layout_height">82.2px</dimen>
<dimen name="application_shortcut_layout_width">64.0px</dimen>

NOTE: There are a lot of padding code lines that can be changed to make the icons larger.

Browse to <path>\Rosie\res\values-normal, open integers.xml and change the following:

<integer name="folder_grid_columns">5</integer>
<integer name="workspace_screen_cl_short_axis_cells">5</integer>
<integer name="workspace_screen_cl_long_axis_cells">5</integer>
<integer name="workspace_shortAxisCells">5</integer>
<integer name="workspace_longAxisCells">5</integer>
<integer name="allprogram_grid_columns">5</integer>
[I](Make sure this corresponds to the numbers used previously)[/I]

Browse to <path>\Rosie\res\values-port, open integers.xml and change the following:

<integer name="folder_grid_columns">5</integer>

That's it! Open a command prompt and package it back up and make sure you sign the finished apk:

<path>\apktool build Rosie

I'm going to start digging through the stock launcher and launcher2 to see if the same thing can be done. As mentioned at the top, this will modify your widget sizing. An example of how to change the HTC agenda widget cell size is below:

Run APKTOOL on your chosen widget. Browse to <path>\htccalendarwidgets\smali\com\htc\htccalendarwidgets, open MyWidgetView.smali, search for "spanx" and change the following:

.method public getSpanX()I
.locals 1

.prologue
.line 140
const/4 v0, 0x5 [I]<------ 5 CELLS WIDE[/I]

return v0
.end method

.method public getSpanY()I
.locals 1

.prologue
.line 144
const/4 v0, 0x5 [I]<------ 5 CELLS TALL[/I]

return v0
.end method

Go here for an update.zip with the modded Rosie.apk file, if you want to mess around with it.

To resize non-HTC widgets, decompile the apk per the instructions above and locate the xml file in <path>\res\xml that contains the following (or something similar):

<appwidget-provider android:minWidth="320.0dip" android:minHeight="64.0dip"

Edit the dip sizes per your new cell size. The example above is the equivelant of a 4x1 widget. If that doesn't work and your widget is taking up too much space, then lessen the dip sizes until it does work. This is because the xml file is calling for the minWidth and minHeight.

I'd like to thank Brut for the awesome apktool and Britoso for some smali editing.