วิธีการเพิ่มปุ่ม Reboot Recovery ในเมนูเมนู Galaxy S7 Edge Power

ผู้ใช้ Android จำนวนมากต้องการวิธีง่ายๆในการรีบูตเข้าสู่โหมดการกู้คืนโดยไม่จำเป็นต้องปิดอุปกรณ์ก่อน คู่มือสำหรับ Samsung Galaxy S7 Edge นี้จะช่วยให้คุณสามารถเพิ่มปุ่ม Reboot Recovery ในเมนู Power จากภายในระบบ Android

เราจะทำงานในไฟล์ res.apk และ services.jar ของสต็อก ROM ดังนั้นหากคุณใช้ ROM แบบกำหนดเองคู่มือนี้ไม่ได้มีไว้สำหรับคุณ ฉันได้จัดเตรียมลิงก์ไว้เพื่อดาวน์โหลดไฟล์ stock-framework res.apk และ services.jar

ที่ต้องการ:

  • เครื่องมือง่ายๆของ APK
  • กรอบขอบของ S7 .zip
  • S7 Edge Services jar .zip
  • ADB - ดูวิธีการติดตั้ง ADB บน ​​Windows
  1. สิ่งแรกที่คุณต้องทำก็คือดาวน์โหลดและดึงไฟล์ซิปลงบนเดสก์ทอปของคุณด้านบน
  2. ดาวน์โหลดเครื่องมือง่ายๆของ APK
  3. ตอนนี้เปิดใช้งานการแก้จุดบกพร่อง USB บน Galaxy S7 ของคุณโดยไปที่การตั้งค่า> เกี่ยวกับ> แตะ 'สร้างจำนวน' 7 ครั้งจนกว่าจะมีการเปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์ ไปที่การตั้งค่า> ตัวเลือกนักพัฒนาซอฟต์แวร์> เปิดใช้งานการแก้จุดบกพร่อง USB
  4. เชื่อมต่อ Galaxy S7 กับพีซีของคุณผ่าน USB และกด Shift + คลิกขวาที่โฟลเดอร์ ADB หลักและเลือกเปิดหน้าต่างคำสั่งที่นี่
  5. ตรวจสอบให้แน่ใจว่า ADB รู้จักอุปกรณ์ของคุณโดยพิมพ์ " อุปกรณ์ adb " โดยไม่ใช้คำพูด หากสำเร็จเทอร์มินอลคำสั่งควรแสดงเลขที่ประจำผลิตภัณฑ์ของคุณ
  6. ตอนนี้พิมพ์คำสั่งต่อไปนี้ลงในหน้าต่าง ADB:

adb pull /system/framework/framework-res.apk
adb pull /system/framework/services.jar

เปลี่ยนเป็นโฟลเดอร์ที่คุณต้องการ

  1. ตอนนี้เปิด APK Easy Tool แล้วเลือก "เลือก" ถัดจาก ไฟล์ APK เพื่อใช้งาน เลือกกรอบ res.apk ที่คุณดึงมาจาก Galaxy S7 ของคุณ ตอนนี้คลิกปุ่ม Decompile

  1. ตอนนี้เข้าไปในไดเร็กทอรีของไฟล์. APK ที่คอมไพล์แล้ววางไฟล์จากกรอบ res-zip ที่ฉันใส่ไว้ใน โฟลเดอร์ decompiled ของกรอบ res.apk ของคุณ
  2. ขณะนี้ใช้โปรแกรมแก้ไขข้อความผมขอแนะนำให้ใช้ Notepad ++ เพื่อจัดระเบียบโค้ด XML เปิด res / values ​​/ arrays.xml
  3. นี่คือที่ที่เราจะได้รับทางเทคนิคจริงๆ คุณต้องเพิ่มบรรทัดทั้งหมดที่ฉันแสดงเป็น ตัวหนา ใน snips ต่อไปนี้ของรหัส
  4. ค้นหาและ เพิ่ม สิ่งที่ฉัน กล้าได้กล้าเสีย

อำนาจ
datamode
เครื่องบิน
เริ่มต้นใหม่
ออกโรง
รายงานข้อบกพร่อง
ผู้ใช้
rebootrecovery
emergencymode
subscreen
screenrec

  • ตอนนี้ไปที่ res / values ​​/ strings.xml และ เพิ่ม ตัวหนา

กำลังชาร์จอุปกรณ์ที่เชื่อมต่อผ่าน USB
10, 32, 768, 10, 60
การกู้คืนระบบรีบูต

  • เอาล่ะเราทำกับกรอบ res.apk แล้ว ตอนนี้คุณสามารถคอมไพล์ใหม่ได้ใน APK Easy Tool
  • ตอนนี้เรากำลังจะทำงานกับ Services.jar เพื่อคอมไพล์ Services.jar ด้วย APK Easy Tool และคัดลอกไฟล์จากไฟล์ jar .zip ของบริการที่ระบุไว้ด้านบนนี้ลงในโฟลเดอร์ Services.jar ที่คอมไพล์ใหม่
  • ตอนนี้ใช้โปรแกรมแก้ไขข้อความเปิด smali / com / android / server / policy / GlobalActions.smali และอีกครั้งคุณจะเพิ่มบรรทัด หนา ในฟิลด์ # อินสแตนซ์

.field mEmergencyStringId: ฉัน
. mRebootRecovery mRebootRecovery ส่วนตัว: Lcom / android / server / policy / GlobalActions $ SinglePressAction;

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่
  • ตอนนี้หา เมธอดส่วนตัว createDialog () Lcom / android / server / policy / GlobalActions $ GlobalActionsDialog;
if-eqz v4, :cond_8 const v4, 0x10809f4 :goto_4 const v6, 0x10406e2 move-object/from16 v0, p0 invoke-direct {v5, v0, v4, v6}, Lcom/android/server/policy/GlobalActions$20;->(Lcom/android/server/policy/GlobalActions;II)V move-object/from16 v0, p0 iput-object v5, v0, Lcom/android/server/policy/GlobalActions;- >mRestart:Lcom/android/server/policy/GlobalActions$SinglePressAction; new-instance v4, Lcom/android/server/policy/GlobalActions$47; move-object/from16 v0, p0 iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 const-string v1, "tw_ic_do_rebootrecovery" const-string v2, "drawable" const-string v3, "android" invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I move-result v5 move-object/from16 v0, p0 iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 const-string v1, "tw_ic_do_rebootrecovery" const-string v2, "string" const-string v3, "android" invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I move-result v6 move-object/from16 v0, p0 invoke-direct {v4, v0, v5, v6}, Lcom/android/server/policy/GlobalActions$47;->(Lcom/android/server/policy/GlobalActions;II)V move-object/from16 v0, p0 iput-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction; invoke-static {}, Lcom/samsung/android/feature/SemCscFeature;->getInstance()Lcom/samsung/android/feature/SemCscFeature; move-result-object v4 const-string/jumbo v5, "CscFeature_Common_ConfigBikeMode" 
  • ส่วนถัดไปเป็นเรื่องยุ่งยากคุณต้อง เพิ่มเส้นหนา และแก้ไขขีดเส้นใต้
 const/16 v6, 0x80 const/4 v7, 0x1 move-object/from16 v0, p0 invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z new-instance v4, Lcom/android/server/policy/GlobalActions$BugReportAction; move-object/from16 v0, p0 invoke-direct {v4, v0}, Lcom/android/server/policy/GlobalActions$BugReportAction;->(Lcom/android/server/policy/GlobalActions;)V move-object/from16 v0, p0 iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList; const/16 v6, 0x100 move-object/from16 v0, p iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction; move-object/from16 v0, p0 iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList; const/4 v7, 0x1 move-object/from16 v0, p0 invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z const/16 v6, 0x200 #before was 0x100 const/4 v7, 0x1 move-object/from16 v0, p0 invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z 
  • ตอนนี้ค้นหา const-string / jumbo v4, เงียบและเพิ่มบรรทัดเหล่านี้เหนือมัน เส้นหนาสองเส้นต้องตรงกัน
 const-string/jumbo v4, "emergencymode" invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v4 if-eqz v4, :cond_15 move-object/from16 v0, p0 iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList; move-object/from16 v0, p0 iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mEmergency:Lcom/android/server/policy/GlobalActions$ToggleAction; invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z goto/16 : goto_7 :cond_15 const-string/jumbo v4, "rebootrecovery" invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v4 if-eqz v4, :cond_asc1 move-object/from16 v0, p0 iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList; move-object/from16 v0, p0 iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction; invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z goto/16 : goto_7 :cond_asc1 const-string/jumbo v4, "silent" 

ต่อไปเราต้องเพิ่มส่วนที่ขาดหายไปของ service.jar ใน Android 7 ดังนั้นเราจะเพิ่มอีกครั้งเพื่อให้ mod รุ่นนี้ทำงานได้
ค้นหาเส้นสำหรับ. metropore addCustomDialogItems ส่วนตัว (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / เนื้อหา / เจตนา; ILjava / util / ArrayList;) Z

และเพิ่มวิธีการข้างต้นนี้:

 .method static synthetic access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context; .locals 1 iget-object v0, p0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context; return-object v0 .end method 

ขณะนี้คุณสามารถคอมไพล์ไฟล์ services.jar ใหม่และคุณสามารถผลักดันทั้งกรอบ res.apk และ services.jar ที่คอมไพล์ใหม่กลับมายังโทรศัพท์ของคุณได้โดยใช้คำสั่ง adb push หรือด้วยปุ่ม APK Easy Tool Install to Phone

หากคุณได้รับลูปสำหรับบูตหลังจากกดโทรศัพท์จะเริ่มการกู้คืนที่กำหนดเองและล้างข้อมูล Dalvik + Cache

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

Facebook Twitter Google Plus Pinterest