[Mi 3 Android Development] feed3:
I'm looking inside framework few times during my lunch time right now.. Comparing our codes to hammerhead PA and also to our AOSP rom, there's some differences that is suspicious.

1. Quick boot;

.method private isQuickBootCall()Z
.locals 8

.prologue
.line 1045
iget-object v6, p0, Lcom/android/server/power/PowerManagerService;->mContext:Landroid/content/Context;

const-string v7, "activity"

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

move-result-object v0

check-cast v0, Landroid/app/ActivityManager;

.line 1048
.local v0, activityManager:Landroid/app/ActivityManager;
invoke-virtual {v0}, Landroid/app/ActivityManager;->getRunningAppProcesses()Ljava/util/List;

move-result-object v5

.line 1050
.local v5, runningList:Ljava/util/List;,"Ljava/util/List<Landroid/app/ActivityManager$RunningAppProcessInfo;>;"
invoke-static {}, Landroid/os/Binder;->getCallingPid()I

move-result v1

.line 1051
.local v1, callingPid:I
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;

move-result-object v2

.local v2, i$:Ljava/util/Iterator;
:cond_0
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

move-result v6

if-eqz v6, :cond_1

invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

move-result-object v4

check-cast v4, Landroid/app/ActivityManager$RunningAppProcessInfo;

.line 1052
.local v4, processInfo:Landroid/app/ActivityManager$RunningAppProcessInfo;
iget v6, v4, Landroid/app/ActivityManager$RunningAppProcessInfo;->pid:I

if-ne v6, v1, :cond_0

.line 1053
iget-object v3, v4, Landroid/app/ActivityManager$RunningAppProcessInfo;->processName:Ljava/lang/String;

.line 1054
.local v3, process:Ljava/lang/String;
const-string v6, "com.qapp.quickboot"

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

move-result v6

if-eqz v6, :cond_0

.line 1055
const/4 v6, 0x1

.line 1058
.end local v3 #process:Ljava/lang/String;
.end local v4 #processInfo:Landroid/app/ActivityManager$RunningAppProcessInfo;
:goto_0
return v6

:cond_1
const/4 v6, 0x0

goto :goto_0
.end method

Just one example of it. Found it in few other places through framework.

2. CPU boost

.method public cpuBoost(I)V
.locals 3
.parameter "duration"

.prologue
.line 2293
if-lez p1, :cond_0

const v0, 0x4c4b40

if-gt p1, v0, :cond_0

.line 2294
invoke-static {p1}, Lcom/android/server/power/PowerManagerService;->nativeCpuBoost(I)V

.line 2298
:goto_0
return-void

.line 2296
:cond_0
const-string v0, "PowerManagerService"

new-instance v1, Ljava/lang/StringBuilder;

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

const-string v2, "Invalid boost duration: "

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

move-result-object v1

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

move-result-object v1

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

move-result-object v1

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

goto :goto_0
.end method

I'm not really sure what this cpuboost really doing.

I'm not really a dev, my private github is a BIG mess and i dont have many free time. Any dev know really what does those method do and is it possible it is the culprit of those SOD bugs haunting us?