[Galaxy S I9000 Android Development] jjwa:
Here's a guide on how to pick your favorite lockscreen (AOSP or SGS) for whatever theme they want to use. Maybe Doc would like to link to this post below the list of themes to help people pick their own lockscreen.

I did not really write this guide, it's more like I translated and simplified it a whole lot for this topic :). The real credit goes to the guys in this topic. But this should be a much easier guide.

Let me know if some things do not work for you (and also if it works really well! :)) or when parts are too difficult to understand the way I wrote them. That way maybe I can improve it for you. If you need help or have comments, you could also poke me in #project-voodoo on the Freenode IRC servers, so we won't spam up this topic as much.

Guide to get your favorite lockscreen (AOSP or SGS) in whatever theme you like!

1. Download the baksmali.jar and smali.jar files from http://code.google.com/p/smali/downloads/list. If these files have version info in their filename, rename them, for example baksmali-1.2.5.jar -> baksmali.jar.

2. Open the theme's zip, find /system/framework/android.policy.jar and copy it somewhere. Copy the smali/baksmali .jar files to the same place.

3. Open a DOS command line pointed at that location.

(Some Windows versions have an extra easy trick for this: hold your Shift key while you right-click in the folder, click "Open command window here".)

Type the following command: java -jar baksmali.jar -x android.policy.jar -o android.policy

4. Go to \android.policy\com\android\internal\policy\impl\ and open LockPatternKeyguardView.smali with Notepad (or an other simple text editor).

Find this text:.method private getLockScreenMode()Lcom/

5. Look at the block of text starting from the .method line you found, to the first '.end method' you can find. This is the block of text you want to change. Replace it with one of the blocks of text below to get the lock screen you want.

6. After changing the text, save LockPatternKeyguardView.smali and close it.

7. Use the following command to compile the changes back: java -jar smali.jar android.policy -o classes.dex

8. Open the android.policy.jar with something like 7zip or WinRar.

9. Copy your newly made file classes.dex into android.policy.jar, replacing the old .dex file.

10. Replace the android.policy.jar file of your theme with this modified one.

Done! Flashing that modified theme should now get you the lockscreen you wanted.

***To get the stock Samsung lockscreen (sliding glass, puzzle pieces), use this block of text ***

.method private getLockScreenMode()Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;
.registers 2

.prologue
.line 1247
invoke-direct {p0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->isMissedEventsArrived()Z

move-result v0

if-eqz v0, :cond_9

.line 1248
sget-object v0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;->PuzzleLock:Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;

.line 1251
:goto_8
return-object v0

:cond_9
sget-object v0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;->GlassLock:Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;

goto :goto_8
.end method

***To get the AOSP Android lockscreen (with the two horizontal sliders), use this block of text ***

.method private getLockScreenMode()Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;
.registers 2

.prologue
.line 1247
invoke-direct {p0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->isMissedEventsArrived()Z

move-result v0

sget-object v0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;->TapLock:Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;

return-object v0

if-eqz v0, :cond_c

.line 1248
sget-object v0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;->PuzzleLock:Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;

.line 1251
:goto_b
return-object v0

:cond_c
sget-object v0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;->TapLock:Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;

goto :goto_b
.end method