[Verizon Samsung Galaxy Note II] imnuts:
This comes up frequently, and the icon is annoying. If you don't know what icon I'm talking about, it looks like one of the two that are attached to the post and lives next to the signal indicator. First, I'm going to assume you know how to decompile/recompile an APK. If you don't, well, go find out how to do that first, then come back because it isn't terribly difficult, and knowledge is power ;) Now, what you need is SystemUI and you need to decompile it into resources (images and xml) and smali (java bytecode). Once that is done, we're looking for one specific file.

In the decompiled apk, find smali/com/android/systemui/statusbar/policy/LocationController.smali and open it in your favorite text editor. Replace the entire contents of the file with the following (NOTE: This is for VRALL4, it may be slightly different if you are on a different build):

.class public Lcom/android/systemui/statusbar/policy/LocationController;
.super Landroid/content/BroadcastReceiver;
.source "LocationController.java"

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/android/systemui/statusbar/policy/LocationController$1;,
Lcom/android/systemui/statusbar/policy/LocationController$StatusBarHandler;
}
.end annotation

# static fields
.field private static final EVENT_STOP_GPS_TONE:I = 0x40

.field private static final GPS_NOTIFICATION_ID:I = 0x3d8d7

.field private static final GPS_NOTI_STATUS:Ljava/lang/String; = "gps_notification_sounds"

.field private static final TAG:Ljava/lang/String; = "StatusBar.LocationController"

.field private static final sLBSImages:[I

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

.field private LBS_ENABLED_CHANGE_ACTION:Ljava/lang/String;

.field private VZW_PROVIDER:Ljava/lang/String;

.field private mContext:Landroid/content/Context;

.field private mFocusToneGenerator:Landroid/media/ToneGenerator;

.field private final mHandler:Landroid/os/Handler;

.field private mMyContext:Landroid/content/Context;

.field private mNotificationService:Landroid/app/INotificationManager;

.field private mService:Landroid/app/StatusBarManager;

# direct methods
.method static constructor <clinit>()V
.locals 1

.prologue
.line 79
const/4 v0, 0x2

new-array v0, v0, [I

fill-array-data v0, :array_0

sput-object v0, Lcom/android/systemui/statusbar/policy/LocationController;->sLBSImages:[I

return-void

nop

:array_0
.array-data 0x4
0xc6t 0x0t 0x2t 0x7ft
0xc7t 0x0t 0x2t 0x7ft
.end array-data
.end method

.method public constructor <init>(Landroid/content/Context;)V
.locals 4
.parameter "context"

.prologue
const/4 v3, 0x0

.line 87
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V

.line 69
new-instance v2, Lcom/android/systemui/statusbar/policy/LocationController$StatusBarHandler;

invoke-direct {v2, p0, v3}, Lcom/android/systemui/statusbar/policy/LocationController$StatusBarHandler;-><init>(Lcom/android/systemui/statusbar/policy/LocationController;Lcom/android/systemui/statusbar/policy/LocationController$1;)V

iput-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mHandler:Landroid/os/Handler;

.line 78
iput-object v3, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mService:Landroid/app/StatusBarManager;

.line 83
const-string v2, "com.android.internal.location.intent.action.LBS_ENABLED_CHANGE"

iput-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->LBS_ENABLED_CHANGE_ACTION:Ljava/lang/String;

.line 84
const-string v2, "lbsEnabled"

iput-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->LBS_ENABLED:Ljava/lang/String;

.line 85
const-string v2, "vzw_lbs"

iput-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->VZW_PROVIDER:Ljava/lang/String;

.line 88
iput-object p1, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mContext:Landroid/content/Context;

.line 89
iput-object p1, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mMyContext:Landroid/content/Context;

.line 91
new-instance v0, Landroid/content/IntentFilter;

invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V

.line 92
.local v0, filter:Landroid/content/IntentFilter;
const-string v2, "android.location.GPS_ENABLED_CHANGE"

invoke-virtual {v0, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

.line 93
const-string v2, "android.location.GPS_FIX_CHANGE"

invoke-virtual {v0, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

.line 97
invoke-virtual {p1, p0, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;

.line 99
const-string v2, "notification"

invoke-virtual {p1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

move-result-object v1

check-cast v1, Landroid/app/NotificationManager;

.line 101
.local v1, nm:Landroid/app/NotificationManager;
invoke-static {}, Landroid/app/NotificationManager;->getService()Landroid/app/INotificationManager;

move-result-object v2

iput-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mNotificationService:Landroid/app/INotificationManager;

.line 109
return-void
.end method

.method private GenerateBeep()V
.locals 13

.prologue
const/4 v12, 0x0

const/4 v11, 0x1

.line 114
iput-object v12, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;

.line 115
const/4 v3, 0x0

.line 116
.local v3, MIN_VOLUME_LEV:I
const/4 v1, 0x7

.line 117
.local v1, MAX_VOLUME_LEV:I
const/16 v4, 0xe

.line 118
.local v4, VOLUME_STEP:I
const/4 v2, 0x0

.line 119
.local v2, MIN_VOLUME:I
const/16 v0, 0x64

.line 120
.local v0, MAX_VOLUME:I
move v8, v0

.line 122
.local v8, mCurVol:I
iget-object v9, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mContext:Landroid/content/Context;

const-string v10, "audio"

invoke-virtual {v9, v10}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

move-result-object v5

check-cast v5, Landroid/media/AudioManager;

.line 124
.local v5, audioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v11}, Landroid/media/AudioManager;->getStreamVolume(I)I

move-result v8

.line 126
const-string v9, "StatusBar.LocationController"

new-instance v10, Ljava/lang/StringBuilder;

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

const-string v11, "GenerateBeep: Volumei Level:"

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

move-result-object v10

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

move-result-object v10

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

move-result-object v10

invoke-static {v9, v10}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I

.line 128
if-lt v8, v3, :cond_2

if-gt v8, v1, :cond_2

.line 130
if-eq v8, v1, :cond_1

.line 131
mul-int/2addr v8, v4

.line 135
:goto_0
const-string v9, "StatusBar.LocationController"

new-instance v10, Ljava/lang/StringBuilder;

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

const-string v11, "GenerateBeep: valid Volume:"

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

move-result-object v10

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

move-result-object v10

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

move-result-object v10

invoke-static {v9, v10}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I

.line 144
:goto_1
:try_start_0
new-instance v9, Landroid/media/ToneGenerator;

const/4 v10, 0x1

invoke-direct {v9, v10, v8}, Landroid/media/ToneGenerator;-><init>(II)V

iput-object v9, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

.line 151
:goto_2
iget-object v9, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;

if-eqz v9, :cond_0

.line 152
iget-object v9, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mHandler:Landroid/os/Handler;

const/16 v10, 0x40

invoke-virtual {v9, v10}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;

move-result-object v7

.line 153
.local v7, m:Landroid/os/Message;
iget-object v9, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;

const/16 v10, 0x1c

invoke-virtual {v9, v10}, Landroid/media/ToneGenerator;->startTone(I)Z

.line 154
iget-object v9, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mHandler:Landroid/os/Handler;

const-wide/16 v10, 0x1f4

invoke-virtual {v9, v7, v10, v11}, Landroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z

.line 157
.end local v7 #m:Landroid/os/Message;
:cond_0
return-void

.line 133
:cond_1
move v8, v0

goto :goto_0

.line 138
:cond_2
const-string v9, "StatusBar.LocationController"

const-string v10, "Error getting current volume: Setting volume as max volume"

invoke-static {v9, v10}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I

.line 139
move v8, v0

goto :goto_1

.line 145
:catch_0
move-exception v6

.line 147
.local v6, e:Ljava/lang/Exception;
iput-object v12, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;

.line 148
sget-object v9, Ljava/lang/System;->err:Ljava/io/PrintStream;

invoke-virtual {v9, v6}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V

goto :goto_2
.end method

.method static synthetic access$100(Lcom/android/systemui/statusbar/policy/LocationController;)Landroid/media/ToneGenerator;
.locals 1
.parameter "x0"

.prologue
.line 60
iget-object v0, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;

return-object v0
.end method

.method static synthetic access$102(Lcom/android/systemui/statusbar/policy/LocationController;Landroid/media/ToneGenerator;)Landroid/media/ToneGenerator;
.locals 0
.parameter "x0"
.parameter "x1"

.prologue
.line 60
iput-object p1, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mFocusToneGenerator:Landroid/media/ToneGenerator;

return-object p1
.end method

.method private checkLBSStatus()Z
.locals 1

.prologue
.line 300
const/4 v0, 0x0

return v0
.end method

.method private final updateLBS(Landroid/content/Intent;)V
.locals 0
.parameter "intent"

.prologue
.line 290
return-void
.end method

# virtual methods
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.locals 15
.parameter "context"
.parameter "intent"

.prologue
.line 162
invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;

move-result-object v7

.line 163
.local v7, action:Ljava/lang/String;
const-string v1, "enabled"

const/4 v2, 0x0

move-object/from16 v0, p2

invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z

move-result v8

.line 171
.local v8, enabled:Z
const/4 v13, 0x0

.line 172
.local v13, valueFromPrefs:Z
const-string v1, "StatusBar.LocationController"

const-string v2, "onReceive: [GPS ICON]"

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

.line 182
const-string v1, "android.location.GPS_FIX_CHANGE"

invoke-virtual {v7, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v1

if-eqz v1, :cond_0

if-eqz v8, :cond_0

.line 184
const v10, 0x10806c7

.line 185
.local v10, iconId:I
const v12, 0x7f0a0083

.line 186
.local v12, textResId:I
const/4 v14, 0x1

.line 228
.local v14, visible:Z
:goto_0
if-eqz v14, :cond_2

.line 229
:try_start_0
new-instance v9, Landroid/content/Intent;

const-string v1, "android.settings.LOCATION_SOURCE_SETTINGS"

invoke-direct {v9, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

.line 230
.local v9, gpsIntent:Landroid/content/Intent;
const/high16 v1, 0x1000

invoke-virtual {v9, v1}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

.line 231
const/4 v1, 0x0

const/4 v2, 0x0

move-object/from16 v0, p1

invoke-static {v0, v1, v9, v2}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;

move-result-object v11

.line 233
.local v11, pendingIntent:Landroid/app/PendingIntent;
new-instance v1, Landroid/app/Notification$Builder;

iget-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mContext:Landroid/content/Context;

invoke-direct {v1, v2}, Landroid/app/Notification$Builder;-><init>(Landroid/content/Context;)V

invoke-virtual {v1, v10}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder;

move-result-object v1

iget-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mContext:Landroid/content/Context;

invoke-virtual {v2, v12}, Landroid/content/Context;->getText(I)Ljava/lang/CharSequence;

move-result-object v2

invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;

move-result-object v1

const/4 v2, 0x1

invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setOngoing(Z)Landroid/app/Notification$Builder;

move-result-object v1

invoke-virtual {v1, v11}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;

move-result-object v1

invoke-virtual {v1}, Landroid/app/Notification$Builder;->getNotification()Landroid/app/Notification;

move-result-object v5

.line 241
.local v5, n:Landroid/app/Notification;
const/4 v1, 0x0

iput-object v1, v5, Landroid/app/Notification;->tickerView:Landroid/widget/RemoteViews;

.line 242
const/4 v1, 0x0

iput-object v1, v5, Landroid/app/Notification;->tickerText:Ljava/lang/CharSequence;

.line 244
const/4 v1, 0x1

iput v1, v5, Landroid/app/Notification;->priority:I

.line 246
const/4 v1, 0x1

new-array v6, v1, [I

.line 247
.local v6, idOut:[I
iget-object v1, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mNotificationService:Landroid/app/INotificationManager;

iget-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mContext:Landroid/content/Context;

invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

move-result-object v2

const/4 v3, 0x0

const v4, 0x3d8d7

invoke-interface/range {v1 .. v6}, Landroid/app/INotificationManager;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;[I)V
:try_end_0
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0

.line 261
.end local v5 #n:Landroid/app/Notification;
.end local v6 #idOut:[I
.end local v9 #gpsIntent:Landroid/content/Intent;
.end local v11 #pendingIntent:Landroid/app/PendingIntent;
:goto_1
return-void

.line 189
.end local v10 #iconId:I
.end local v12 #textResId:I
.end local v14 #visible:Z
:cond_0
const-string v1, "android.location.GPS_ENABLED_CHANGE"

invoke-virtual {v7, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v1

if-eqz v1, :cond_1

if-nez v8, :cond_1

.line 191
const/4 v14, 0x0

.line 192
.restart local v14 #visible:Z
const/4 v12, 0x0

.restart local v12 #textResId:I
move v10, v12

.restart local v10 #iconId:I
goto :goto_0

.line 199
.end local v10 #iconId:I
.end local v12 #textResId:I
.end local v14 #visible:Z
:cond_1
const-string v1, "StatusBar.LocationController"

const-string v2, "onReceive: [GPS ICON] GPS is on, but not receiving fixes"

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

.line 200
const v10, 0x7f0200c5

.line 201
.restart local v10 #iconId:I
const v12, 0x7f0a0082

.line 202
.restart local v12 #textResId:I
const/4 v14, 0x1

.restart local v14 #visible:Z
goto :goto_0

.line 254
:cond_2
:try_start_1
iget-object v1, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mNotificationService:Landroid/app/INotificationManager;

iget-object v2, p0, Lcom/android/systemui/statusbar/policy/LocationController;->mContext:Landroid/content/Context;

invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

move-result-object v2

const v3, 0x3d8d7

invoke-interface {v1, v2, v3}, Landroid/app/INotificationManager;->cancelNotification(Ljava/lang/String;I)V
:try_end_1
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_0

goto :goto_1

.line 258
:catch_0
move-exception v1

goto :goto_1
.end method

Save the file, rebuild SystemUI.apk and enjoy