Cách Thêm nút Khôi phục Khởi động lại vào Menu Điện cạnh Galaxy S7

Nhiều người dùng Android muốn có một cách đơn giản hơn để khởi động lại vào chế độ Khôi phục mà không cần phải tắt thiết bị của họ trước. Hướng dẫn này cho Samsung Galaxy S7 Edge sẽ giúp bạn thêm nút Khôi phục Khởi động lại vào menu Nguồn từ bên trong hệ thống Android.

Chúng tôi sẽ làm việc trong các tệp framework-res.apk và services.jar của ROM kho, vì vậy nếu bạn đang sử dụng ROM tùy chỉnh, hướng dẫn này không dành cho bạn. Tôi đã cung cấp liên kết để tải xuống các tệp stock-res.apk và services.jar bên dưới.

Yêu cầu:

  • Công cụ dễ dàng APK
  • Khuôn khổ S7 Edge .zip
  • Dịch vụ S7 Edge jar .zip
  • ADB - xem Cách cài đặt ADB trên Windows
  1. Vì vậy, điều đầu tiên bạn cần làm là tải xuống và giải nén các tệp .zip trên vào máy tính của bạn.
  2. Đồng thời tải xuống APK Easy Tool.
  3. Bây giờ kích hoạt USB Debugging trên Galaxy S7 của bạn bằng cách vào Settings> About> tap 'Build Number' 7 lần, cho đến khi chế độ Developer Mode được kích hoạt. Bây giờ chuyển đến Cài đặt> Tùy chọn nhà phát triển> bật USB Debugging.
  4. Kết nối Galaxy S7 với PC qua USB và giữ phím Shift + nhấp chuột phải bên trong thư mục ADB chính của bạn và chọn Mở cửa sổ lệnh tại đây.
  5. Bây giờ hãy chắc chắn rằng ADB nhận ra thiết bị của bạn bằng cách gõ ' adb devices ' mà không có dấu ngoặc kép. Nếu thành công, thiết bị đầu cuối lệnh sẽ hiển thị số sê-ri của thiết bị của bạn.
  6. Bây giờ gõ các lệnh sau vào cửa sổ ADB:

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

Thay đổi thư mục bạn chọn.

  1. Bây giờ hãy mở APK Easy Tool và chọn Chọn bên cạnh tệp APK để hoạt động . Chọn framework-res.apk bạn đã kéo từ Galaxy S7 của mình. Bây giờ bấm vào nút Decompile.

  1. Bây giờ hãy đi vào thư mục của tệp .APK đã được biên dịch và dán các tệp từ tệp .zip khuôn khổ res. Tôi đã cung cấp vào thư mục được biên dịch lại của khung công tác res.apk của bạn.
  2. Bây giờ sử dụng một trình soạn thảo văn bản, tôi thực sự khuyên bạn nên sử dụng một cái gì đó như Notepad ++ có thể tổ chức mã XML, mở res / values ​​/ arrays.xml
  3. Bây giờ, đây là nơi chúng ta sẽ thực sự mang tính kỹ thuật. Bạn cần thêm tất cả các dòng mà tôi hiển thị bằng chữ in đậm trong các đoạn mã sau.
  4. Tìm và thêm những gì tôi đã in đậm.

quyền lực
datamode
Máy bay
khởi động lại
lockdown
báo cáo lỗi
người dùng
rebootrecovery
-mã khởi động
màn hình phụ
screenrec

  • Bây giờ hãy vào res / values ​​/ strings.xml và thêm chữ in đậm .

Sạc thiết bị được kết nối qua USB
10, 32, 768, 10, 60
Phục hồi khởi động lại

  • Được rồi, chúng ta đã xong với framework-res.apk. Bây giờ bạn có thể biên dịch lại nó trong APK Easy Tool.
  • Bây giờ chúng ta sẽ làm việc trên Services.jar, do đó dịch ngược Services.jar bằng Công cụ Dễ dàng APK và sao chép các tệp từ tệp jar .zip Dịch vụ mà tôi đã cung cấp ở trên vào thư mục Services.jar mới được biên dịch lại.
  • Bây giờ sử dụng một trình soạn thảo văn bản, mở smali / com / android / server / policy / GlobalActions.smali, và một lần nữa bạn sẽ thêm dòng in đậm trong trường # instance

.field mEmergencyStringId: I
.field private mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction;

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây
  • Bây giờ tìm .method private 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" 
  • Phần tiếp theo là khó khăn, bạn cần thêm các dòng in đậm và sửa đổi gạch dưới.
 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 
  • Bây giờ tìm kiếm const-string / jumbo v4, im lặng và thêm những dòng này lên trên. Hai dòng in đậm phải khớp nhau.
 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" 

Tiếp theo chúng ta cần thêm một phần còn thiếu của dịch vụ Android 7, vì vậy chúng ta sẽ thêm lại nó để mod này hoạt động.
Tìm dòng cho .method private addCustomDialogItems (Landroid / đồ họa / drawable / BitmapDrawable; Ljava / lang / String; Landroid / nội dung / Intent; ILjava / util / ArrayList;) Z

Và thêm phương thức trên:

 .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 

Vậy đó, bây giờ biên dịch lại services.jar, và bạn có thể đẩy cả hai khuôn khổ res-res.apk và services.jar đã biên dịch lại vào điện thoại của bạn, hoặc bằng lệnh adb push hoặc với nút APK Easy Tool Install to Phone.

Nếu bạn nhận được vòng lặp khởi động sau khi đẩy vào điện thoại, hãy khởi động vào khôi phục tùy chỉnh và xóa Dalvik + Cache.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Facebook Twitter Google Plus Pinterest