Rehber [Mediatek]Çift Tıklama İle Açma Ekleme Kılavuzu

mbtt

Deneyimli Üye
Deneyimli Üye
MIUI Sever
Adım
Lütfi
Cihazım
Le Pro3
Yaş
26
Konum
ankara
Katılım
22 Mayıs 2016
Konular
68
Mesajlar
102
Tepkime puanı
214
Puanları
43
DİPNOT
BU İŞLEMDEN DOĞACAK SORUNLARDAN ŞAHSIM VE FORUM MIUI TÜRKİYE SORUMLU TUTULAMAZ.


AÇIKLAMA
Bu kılavuz ile çift tıklama ile ekran açma özelliğini ekleyebilirsiniz.
mt6582 ve mt6592 işlemcileri için geçerlidir."3.4.67" Kitkat kernelinde denenmiştir.

Ricam eğer bu kılavuzdan en ufak bir yardım aldıysanız sadece konunuzun teşekkürler kısmında benim de ismim geçsin.


ANLATIM
services.jar
-> services.jar dosyasını ayrıştırın.
-> Ekte verdiğim dosyayı uygun dizine çıkarın.
Yani services.jar/smali/com/android/server/power bölümüne
-> services.jar/smali/com/android/server/power/PowerManagerService.smali bu dosyayı açın ve ;

Bunu arayın :

Kod:
.method public systemReady(Lcom/android/internal/app/IAppOpsService;)V

O kodun baş tarafına aşağıdaki satırları ekleyin.

Kod:
const/4 v3, 0x0
    new-instance v4, Landroid/content/IntentFilter;
    invoke-direct {v4}, Landroid/content/IntentFilter;-><init>()V
    const-string/jumbo v0, "android.intent.action.BOOT_COMPLETED"
    invoke-virtual {v4, v0}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    iget-object v0, p0, Lcom/android/server/power/PowerManagerService;->mContext:Landroid/content/Context;
    new-instance v1, Lcom/android/server/power/PowerManagerService$BootCompletedReceiver;
    invoke-direct {v1, p0, v3}, Lcom/android/server/power/PowerManagerService$BootCompletedReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$BootCompletedReceiver;)V
    iget-object v2, p0, Lcom/android/server/power/PowerManagerService;->mHandler:Lcom/android/server/power/PowerManagerService$PowerManagerHandler;
    invoke-virtual {v0, v1, v4, v3, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;

Aynı dosyaya aşağıdaki satırları ekleyin.
Kod:
.method static synthetic -wrap98(Lcom/android/server/power/PowerManagerService;I)V
    .locals 0
    .param p0, "x0"    # Lcom/android/server/power/PowerManagerService;
    .param p1, "x1"    # I
    .prologue
    invoke-direct {p0, p1}, Lcom/android/server/power/PowerManagerService;->writeOffScreenGestureState(I)V
    return-void
.end method

Aynı dosyaya aşağıdaki satırları ekleyin.

Kod:
.method private writeOffScreenGestureState(I)V
    .locals 5
    .param p1, "value"    # I
    .prologue
    :try_start_0
    new-instance v1, Ljava/io/File;
    const-string v3, "/sys/devices/platform/mt-i2c.0/i2c-0/0-0038/gesture"
    invoke-direct {v1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    .local v1, "file":Ljava/io/File;
    invoke-virtual {v1}, Ljava/io/File;->exists()Z
    move-result v3
    if-nez v3, :cond_0
    new-instance v1, Ljava/io/File;
    .end local v1    # "file":Ljava/io/File;
    const-string v3, "/sys/devices/platform/mt-i2c.0/i2c-0/0-005d/gesture"
    invoke-direct {v1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    .restart local v1    # "file":Ljava/io/File;
    :cond_0
    invoke-virtual {v1}, Ljava/io/File;->exists()Z
    move-result v3
    if-nez v3, :cond_1
    new-instance v1, Ljava/io/File;
    .end local v1    # "file":Ljava/io/File;
    const-string v3, "/sys/devices/platform/mt-i2c.1/i2c-1/1-005d/gesture"
    invoke-direct {v1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    .restart local v1    # "file":Ljava/io/File;
    :cond_1
    invoke-virtual {v1}, Ljava/io/File;->exists()Z
    move-result v3
    if-nez v3, :cond_2
    new-instance v1, Ljava/io/File;
    .end local v1    # "file":Ljava/io/File;
    const-string v3, "/sys/devices/platform/mt-i2c.0/i2c-0/0-0020/gesture"
    invoke-direct {v1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    .restart local v1    # "file":Ljava/io/File;
    :cond_2
    invoke-virtual {v1}, Ljava/io/File;->exists()Z
    move-result v3
    if-nez v3, :cond_3
    new-instance v1, Ljava/io/File;
    .end local v1    # "file":Ljava/io/File;
    const-string v3, "/sys/devices/platform/mt-i2c.0/i2c-0/0-004b/gesture"
    invoke-direct {v1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    .restart local v1    # "file":Ljava/io/File;
    :cond_3
    invoke-virtual {v1}, Ljava/io/File;->exists()Z
    move-result v3
    if-eqz v3, :cond_4
    new-instance v2, Ljava/io/FileWriter;
    invoke-direct {v2, v1}, Ljava/io/FileWriter;-><init>(Ljava/io/File;)V
    .local v2, "mWriter":Ljava/io/FileWriter;
    invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
    invoke-virtual {v2}, Ljava/io/FileWriter;->flush()V
    invoke-virtual {v2}, Ljava/io/FileWriter;->close()V
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
    .end local v2    # "mWriter":Ljava/io/FileWriter;
    :cond_4
    return-void
    .end local v1    # "file":Ljava/io/File;
    :catch_0
    move-exception v0
    .local v0, "e":Ljava/io/IOException;
    new-instance v3, Ljava/lang/RuntimeException;
    const-string v4, "Can\'t open gesture device"
    invoke-direct {v3, v4, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
    throw v3
.end method
========================================
PowerManagerService.smali dosyasını kaydedin.
services.jar dosyasını tekrar toplayın.
========================================

android.policy.jar
-> android.policy.jar dosyasını ayrıştırın
-> android.policy.jar\smali\com\android\internal\policy\impl\PhoneWindowManager.smali
dosyasını açın.

Aşağıdakini arayın

Kod:
.method public interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I
 #to find a line like this:
 sparse-switch v14, :sswitch_data_0                                        <  #in  MM   6.x.x  will be (sparse-switch v18, :sswitch_data_0)  >

Yukarıdakinden sonra aşağıyı ekleyin.

Kod:
    invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isScreenOn()Z
    move-result v0
    if-nez v0, :smartwake_off
    invoke-virtual/range {p1 .. p1}, Landroid/view/KeyEvent;->getAction()I
    move-result v0
    if-nez v0, :smartwake_off
    .line 2
    const-string v0, "persist.sys.off_gesture_switch"
    const/4 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    .line 3
    invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getTelecommService()Landroid/telecom/TelecomManager;
    move-result-object v0
    invoke-virtual/range {v0 .. v0}, Landroid/telecom/TelecomManager;->isInCall()Z
    move-result v0
    if-nez v0, :smartwake_off
    .line 4
    const-string/jumbo v0, "WindowManager"
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string/jumbo v2, "Pressed key code: "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual/range {p1 .. p1}, Landroid/view/KeyEvent;->getKeyCode()I
    move-result v2
    invoke-virtual {v1, v2}, 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
    .line 5
    const/16 v0, 0x31
    if-ne v2, v0, :gesture_c
    const-string v0, "persist.sys.off_gesture_u"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    const/16 v13, 0x1                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 6
    :gesture_c
    const/16 v0, 0x1f
    if-ne v2, v0, :gesture_o
    const-string v0, "persist.sys.off_gesture_c"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    move-object/from16 v0, p0
    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mKeyguardDelegate:Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;
    invoke-virtual {v0}, Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;->dismiss()V
    invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
    move-result-object v0
    const-string v1, "am start -a android.media.action.STILL_IMAGE_CAMERA"
    invoke-virtual {v0, v1}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
    const/16 v13, 0x1                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 7
    :gesture_o
    const/16 v0, 0x2b
    if-ne v2, v0, :gesture_e
    const-string v0, "persist.sys.off_gesture_o"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    move-object/from16 v0, p0
    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mKeyguardDelegate:Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;
    invoke-virtual {v0}, Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;->dismiss()V
    invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
    move-result-object v0
    const-string v3, "am start -a android.intent.action.DIAL"
    invoke-virtual {v0, v3}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
    const/16 v13, 0x1                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 8
    :gesture_e
    const/16 v0, 0x21
    if-ne v2, v0, :gesture_up
    const-string v0, "persist.sys.off_gesture_e"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    move-object/from16 v0, p0
    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mKeyguardDelegate:Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;
    invoke-virtual {v0}, Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;->dismiss()V
    invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
    move-result-object v0
    const-string v3, "am start -a android.speech.action.WEB_SEARCH -c android.intent.category.DEFAULT"
    invoke-virtual {v0, v3}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
    const/16 v13, 0x1                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 9
    :gesture_up
    const/16 v0, 0x13
    if-ne v2, v0, :gesture_down
    const-string v0, "persist.sys.off_gesture_up"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    move-object/from16 v0, p0
    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mKeyguardDelegate:Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;
    invoke-virtual {v0}, Lcom/android/internal/policy/impl/keyguard/KeyguardServiceDelegate;->dismiss()V
    const/16 v13, 0x1                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 10
    :gesture_down
    const/16 v0, 0x14
    if-ne v2, v0, :gesture_left
    const-string v0, "persist.sys.off_gesture_down"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    move-object/from16 v0, p0
    const/16 v1, 0x55
    invoke-virtual {v0, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendMediaButtonEvent(I)V
    const/16 v13, 0x0                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 11
    :gesture_left
    const/16 v0, 0x15
    if-ne v2, v0, :gesture_right
    const-string v0, "persist.sys.off_gesture_left"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    invoke-direct/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
    move-result v1
    if-eqz v1, :smartwake_off
    move-object/from16 v0, p0
    const/16 v1, 0x58
    invoke-virtual {v0, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendMediaButtonEvent(I)V
    const/16 v13, 0x0                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    goto :gesture_done
    .line 12
    :gesture_right
    const/16 v0, 0x16
    if-ne v2, v0, :smartwake_off
    const-string v0, "persist.sys.off_gesture_right"
    const/16 v1, 0x0
    invoke-static/range {v0 .. v1}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
    move-result v0
    if-eqz v0, :smartwake_off
    invoke-direct/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
    move-result v1
    if-eqz v1, :smartwake_off
    move-object/from16 v0, p0
    const/16 v1, 0x57
    invoke-virtual {v0, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendMediaButtonEvent(I)V
    const/16 v13, 0x0                                        <  ### register name (v17) can vary - look for the call "isWakeKey":Z  >
    :gesture_done
    move-object/from16 v1, p0
    iget-object v1, v1, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
    const-string v2, "vibrator"
    invoke-virtual/range {v1 .. v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Landroid/os/Vibrator;
    .local v0
    const-wide/16 v1, 0x64
    invoke-virtual/range {v0 .. v2}, Landroid/os/Vibrator;->vibrate(J)V
    goto :goto_7                                        <  ### label name can be changed, refer to the first label after "sparse-switch vXX,: sswitch_data_X", it's just after a few lines here. >
    :smartwake_off

Aynı dosyaya bunu ekleyin.

Kod:
.method protected sendMediaButtonEvent(I)V
    .locals 14
    .param p1, "keyCode"    # I
    .prologue
    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
    move-result-wide v1
    .local v1, "eventtime":J
    new-instance v11, Landroid/content/Intent;
    const-string v4, "android.intent.action.MEDIA_BUTTON"
    const/4 v5, 0x0
    invoke-direct {v11, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
    .local v11, "downIntent":Landroid/content/Intent;
    new-instance v0, Landroid/view/KeyEvent;
    const/4 v5, 0x0
    const/4 v7, 0x0
    move v6, p1
    move-wide v3, v1
    invoke-direct/range {v0 .. v7}, Landroid/view/KeyEvent;-><init>(JJIII)V
    .local v0, "downEvent":Landroid/view/KeyEvent;
    const-string v4, "android.intent.extra.KEY_EVENT"
    invoke-virtual {v11, v4, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
    iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
    const/4 v5, 0x0
    invoke-virtual {v4, v11, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
    new-instance v12, Landroid/content/Intent;
    const-string v4, "android.intent.action.MEDIA_BUTTON"
    const/4 v5, 0x0
    invoke-direct {v12, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
    .local v12, "upIntent":Landroid/content/Intent;
    new-instance v3, Landroid/view/KeyEvent;
    const/4 v8, 0x1
    const/4 v10, 0x0
    move-wide v4, v1
    move-wide v6, v1
    move v9, p1
    invoke-direct/range {v3 .. v10}, Landroid/view/KeyEvent;-><init>(JJIII)V
    .local v3, "upEvent":Landroid/view/KeyEvent;
    const-string v4, "android.intent.extra.KEY_EVENT"
    invoke-virtual {v12, v4, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
    iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
    const/4 v5, 0x0
    invoke-virtual {v4, v12, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
    return-void
.end method

========================================
PhoneWindowManager.smali dosyasını kaydedin.
android.policy.jar dosyasını toplayın.
========================================

build.prop
Kod:
# Smart Wake
persist.sys.off_gesture_switch=1
persist.sys.off_gesture_u=1
persist.sys.off_gesture_c=1
persist.sys.off_gesture_e=1
persist.sys.off_gesture_o=1
persist.sys.off_gesture_up=1
persist.sys.off_gesture_down=1
persist.sys.off_gesture_left=1
persist.sys.off_gesture_right=1

kodlarını build.prop dosyanıza ekleyin.


GEREKLİ DOSYA
 
Üst Alt