[LG Optimus L9 P760, P765, P768, P769] shucrut:
I don't have a P769, my model is P768.

I tried this method, let the unlock command rolling about a hour and nothing, phone just reboots normally. I followed the instructions just not flashing radio, because P768 dont stay f*cked up with P760 ROMs. But thanks anyway, i'm able to help if you need.

Also my phone is white (don't know if its relevant but..) and have the LG logo in the middle.

I saw you mentioned that this could be an adbd issue. I am not an expert but this binary is replaced when we flash a ROM via LG Software or not?

I decompiled the HiddenMenu.apk and appears that it looks for an specific value somewhere in nvpartition to tell if BL is locked or unlocked (it's smali):

This smal is from EUROPE OPEN v20b rom

.class public Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;
.super Landroid/app/ListActivity;
.source "BootLoader_Unlock.java"

# static fields
[B].field private static final NV_IDX_SWRV_FUSED_STATUS:I = 0x24[/B]

[B].field private static final NV_PATH:Ljava/lang/String; = "/dev/block/platform/omap/omap_hsmmc.1/by-name/nv"[/B]

[B].field private static final UNLOCK_VALUE:I = 0x1101[/B]

# instance fields
.field private final TAG:Ljava/lang/String;

.field private mTopMenu:[Ljava/lang/String;

# direct methods
.method public constructor <init>()V
.locals 3

.prologue
.line 27
invoke-direct {p0}, Landroid/app/ListActivity;-><init>()V

.line 28
const-string v0, "BootLoader Unlock"

iput-object v0, p0, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->TAG:Ljava/lang/String;

.line 29
const/4 v0, 0x1

new-array v0, v0, [Ljava/lang/String;

const/4 v1, 0x0

const-string v2, "BootLoader Unlock Check"

aput-object v2, v0, v1

iput-object v0, p0, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->mTopMenu:[Ljava/lang/String;

return-void
.end method

.method private showResult(I)V
.locals 4
.parameter "result"

.prologue
.line 111
new-instance v0, Landroid/app/AlertDialog$Builder;

invoke-direct {v0, p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V

.line 112
.local v0, ab:Landroid/app/AlertDialog$Builder;
const-string v1, "BootLoader Unlock"

new-instance v2, Ljava/lang/StringBuilder;

invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

const-string v3, "readNV(36): "

invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v2

invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v2

invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v2

invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

.line 113
const/16 v1, 0x1101

if-ne p1, v1, :cond_0

.line 115
const-string v1, "Unlock"

invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

.line 122
:goto_0
const v1, 0x104000a

const/4 v2, 0x0

invoke-virtual {v0, v1, v2}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

.line 123
const-string v1, "BootLoader Unlock Check"

invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

.line 124
invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->show()Landroid/app/AlertDialog;

.line 125
return-void

.line 119
:cond_0
const-string v1, "Lock"

invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

goto :goto_0
.end method

# virtual methods
.method public device_unlock_flag_read()I
.locals 9

.prologue
.line 77
const/4 v2, 0x0

.line 78
.local v2, intVal:S
const/4 v3, 0x1

.line 80
.local v3, rc:Z
new-instance v1, Ljava/io/File;

const-string v6, "/dev/block/platform/omap/omap_hsmmc.1/by-name/nv"

invoke-direct {v1, v6}, Ljava/io/File;-><init>(Ljava/lang/String;)V

.line 81
.local v1, file:Ljava/io/File;
const/4 v4, 0x0

.line 85
.local v4, reader:Ljava/io/RandomAccessFile;
:try_start_0
new-instance v5, Ljava/io/RandomAccessFile;

const-string v6, "r"

invoke-direct {v5, v1, v6}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

.line 86
.end local v4 #reader:Ljava/io/RandomAccessFile;
.local v5, reader:Ljava/io/RandomAccessFile;
const-wide/16 v6, 0x4800

:try_start_1
invoke-virtual {v5, v6, v7}, Ljava/io/RandomAccessFile;->seek(J)V

.line 87
invoke-virtual {v5}, Ljava/io/RandomAccessFile;->readShort()S

move-result v2

.line 88
const-string v6, "BootLoader Unlock"

new-instance v7, Ljava/lang/StringBuilder;

invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

const-string v8, "swrv_fused_status="

invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v7

invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_4

.line 96
:try_start_2
invoke-virtual {v5}, Ljava/io/RandomAccessFile;->close()V
:try_end_2
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_3

:goto_0
move-object v4, v5

.line 103
.end local v5 #reader:Ljava/io/RandomAccessFile;
.restart local v4 #reader:Ljava/io/RandomAccessFile;
:goto_1
if-eqz v3, :cond_0

.line 106
.end local v2 #intVal:S
:goto_2
return v2

.line 89
.restart local v2 #intVal:S
:catch_0
move-exception v0

.line 90
.local v0, e:Ljava/lang/Exception;
:goto_3
:try_start_3
const-string v6, "BootLoader Unlock"

new-instance v7, Ljava/lang/StringBuilder;

invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

const-string v8, "readNV(36): exception occurs: "

invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v7

invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0

.line 91
const/4 v3, 0x0

.line 96
:try_start_4
invoke-virtual {v4}, Ljava/io/RandomAccessFile;->close()V
:try_end_4
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_1

goto :goto_1

.line 98
:catch_1
move-exception v6

goto :goto_1

.line 95
.end local v0 #e:Ljava/lang/Exception;
:catchall_0
move-exception v6

.line 96
:goto_4
:try_start_5
invoke-virtual {v4}, Ljava/io/RandomAccessFile;->close()V
:try_end_5
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_2

.line 95
:goto_5
throw v6

.line 106
:cond_0
const/4 v2, -0x1

goto :goto_2

.line 98
:catch_2
move-exception v7

goto :goto_5

.end local v4 #reader:Ljava/io/RandomAccessFile;
.restart local v5 #reader:Ljava/io/RandomAccessFile;
:catch_3
move-exception v6

goto :goto_0

.line 95
:catchall_1
move-exception v6

move-object v4, v5

.end local v5 #reader:Ljava/io/RandomAccessFile;
.restart local v4 #reader:Ljava/io/RandomAccessFile;
goto :goto_4

.line 89
.end local v4 #reader:Ljava/io/RandomAccessFile;
.restart local v5 #reader:Ljava/io/RandomAccessFile;
:catch_4
move-exception v0

move-object v4, v5

.end local v5 #reader:Ljava/io/RandomAccessFile;
.restart local v4 #reader:Ljava/io/RandomAccessFile;
goto :goto_3
.end method

.method public onCreate(Landroid/os/Bundle;)V
.locals 3
.parameter "icicle"

.prologue
.line 37
invoke-super {p0, p1}, Landroid/app/ListActivity;->onCreate(Landroid/os/Bundle;)V

.line 38
const-string v0, "BootLoader Unlock Check"

invoke-virtual {p0, v0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->setTitle(Ljava/lang/CharSequence;)V

.line 39
new-instance v0, Landroid/widget/ArrayAdapter;

const v1, 0x1090003

iget-object v2, p0, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->mTopMenu:[Ljava/lang/String;

invoke-direct {v0, p0, v1, v2}, Landroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;I[Ljava/lang/Object;)V

invoke-virtual {p0, v0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->setListAdapter(Landroid/widget/ListAdapter;)V

.line 41
return-void
.end method

.method public onKeyDown(ILandroid/view/KeyEvent;)Z
.locals 2
.parameter "keyCode"
.parameter "event"

.prologue
.line 65
packed-switch p1, :pswitch_data_0

.line 72
:goto_0
invoke-super {p0, p1, p2}, Landroid/app/ListActivity;->onKeyDown(ILandroid/view/KeyEvent;)Z

move-result v0

return v0

.line 68
:pswitch_0
invoke-virtual {p0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->getWindow()Landroid/view/Window;

move-result-object v0

const/16 v1, 0x80

invoke-virtual {v0, v1}, Landroid/view/Window;->clearFlags(I)V

.line 69
invoke-virtual {p0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->finish()V

goto :goto_0

.line 65
nop

:pswitch_data_0
.packed-switch 0x3
:pswitch_0
:pswitch_0
.end packed-switch
.end method

.method protected onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V
.locals 1
.parameter "l"
.parameter "v"
.parameter "position"
.parameter "id"

.prologue
.line 45
if-eqz p3, :cond_0

.line 49
:goto_0
return-void

.line 48
:cond_0
invoke-virtual {p0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->device_unlock_flag_read()I

move-result v0

invoke-direct {p0, v0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->showResult(I)V

goto :goto_0
.end method

.method protected onPause()V
.locals 2

.prologue
.line 53
invoke-virtual {p0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->getWindow()Landroid/view/Window;

move-result-object v0

const/16 v1, 0x80

invoke-virtual {v0, v1}, Landroid/view/Window;->clearFlags(I)V

.line 54
invoke-super {p0}, Landroid/app/ListActivity;->onPause()V

.line 55
return-void
.end method

.method protected onResume()V
.locals 2

.prologue
.line 59
invoke-virtual {p0}, Lcom/lge/hiddenmenu/bootloadunlock/BootLoader_Unlock;->getWindow()Landroid/view/Window;

move-result-object v0

const/16 v1, 0x80

invoke-virtual {v0, v1}, Landroid/view/Window;->addFlags(I)V

.line 60
invoke-super {p0}, Landroid/app/ListActivity;->onResume()V

.line 61
return-void
.end method