Computer >> Máy Tính >  >> Xử lý sự cố >> Android

Cách tạo một Zip có thể tháo rời cho các bản mod hệ thống Android

Nếu bạn là nhà phát triển Android muốn tạo ứng dụng dành cho / phân vùng hệ thống (chẳng hạn như ứng dụng gốc), có một số trường hợp nhất định bạn sẽ muốn tạo .zip có thể chạy nhanh cho ứng dụng của mình. Điều này để các tệp ứng dụng có thể được cài đặt đúng cách vào phân vùng / hệ thống.

Một số cách sử dụng khác của .zips có thể nhấp nháy bao gồm:

  • Đang sửa đổi DPI
  • Áp dụng phông chữ tùy chỉnh
  • Áp dụng hoạt ảnh khởi động tùy chỉnh
  • Xóa hoặc thêm các ứng dụng hệ thống

Hướng dẫn người dùng của bạn lộn xộn trong hệ thống tệp và di chuyển tệp theo cách thủ công là một sự lãng phí thời gian cho tất cả những người có liên quan - tạo .zip có thể nhấp nháy là một cách thuận tiện hơn nhiều. Hướng dẫn của Appual này sẽ chỉ cho bạn cách tạo một tệp zip có thể chạy được cho Android.

Chúng tôi cũng sẽ hiển thị cho bạn một tập lệnh addon.d, để các thay đổi hệ thống tùy chỉnh sẽ tồn tại trong flash ROM bẩn - do đó, người dùng sẽ không cần flash lại zip của bạn cho mỗi lần cập nhật.

Yêu cầu:

  • Trình khám phá tệp gốc (MiXplorer, Solid Explorer)
  • ZipSigner (để ký zip) hoặc trình cắm MiX Signer nếu bạn sử dụng MixPlorer
  • Bản sao lưu Nandroid rất được khuyến khích

Bạn cũng nên chuẩn bị tất cả các tệp sẽ được chuyển vào zip - APK, cấu hình, hoạt ảnh khởi động, v.v. Hãy sắp xếp mọi thứ trước khi chúng ta bắt đầu, vì đây là một quá trình phức tạp.

Mẫu Zip tùy chỉnh

Nếu bạn muốn tải xuống một tệp zip mẫu mà bạn có thể tùy chỉnh theo nhu cầu của riêng mình hoặc sử dụng nó làm cơ sở để tạo một tệp zip có thể nhấp nháy, bạn có thể lấy chúng tại đây:

  • TEMPLATE SCRIPT:TẢI XUỐNG LIÊN KẾT (các lệnh cơ bản / bạn phải thêm các giá trị tùy chỉnh của mình:ứng dụng, đường dẫn nhạc chuông, bootanimation…)
  • TEMPLATE ZIP:DOWNLOAD LINK (luôn hoan nghênh các ví dụ để hiểu rõ hơn về phần giải thích. Nó có thể giúp bạn hiểu cách cấu trúc tệp của bạn).

Mẫu phải đủ để bắt đầu sử dụng tập lệnh tùy chỉnh.

Bạn sẽ cần nhớ những đường dẫn chính này, bởi vì đây là những thứ trong phân vùng / hệ thống mà các tệp nén có thể nhấp nháy của bạn thường sẽ nhắm mục tiêu:

addon.d => backup script to survive a dirty flash (used by GApps package for instance)
app and priv-app => system apps to add or remove
etc => host file
fonts => your font
media => your bootanimation.zip
media > audio > alarms => sounds for alarms
media > audio > notifications => sounds for notifications
media > audio > ringtones => sounds for ringtones
media > audio > ui => sounds for various things such as low battery, unlock, camera,..
root of /system for build.prop file

Luôn nhớ rằng các tệp bị xóa khỏi các đường dẫn này sẽ được cài đặt lại sau khi có flash bẩn và các tệp đã được thêm theo cách thủ công sẽ bị xóa. Đây là lý do tại sao cần tạo một tập lệnh tạo bản sao lưu các mod / hệ thống của bạn.

Ví dụ về Tập lệnh cập nhật

ui_print("+-------------------------------------+");
ui_print("| CLEAN FLASH SCRIPT |");
ui_print("| |");
ui_print("| by Primokorn |");
ui_print("+-------------------------------------+");
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "mount", "/system");
ui_print(" ");
ui_print("***Deleting bloatwares***");
delete_recursive(
"/system/app/adaway.apk",
"/system/app/AdAway",
"/system/app/BasicDreams",
"/system/app/BookmarkProvider",
"/system/app/Calendar",
"/system/app/CalendarWidget",
"/system/app/CMFileManager",
"/system/app/CMWallpapers",
"/system/app/DeskClock",
"/system/app/Eleven",
"/system/app/Email",
"/system/app/ExactCalculator",
"/system/app/Exchange2",
"/system/app/Gello",
"/system/app/HexoLibre",
"/system/app/Jelly",
"/system/app/LiveWallpapersPicker",
"/system/app/LockClock",
"/system/app/messaging",
"/system/app/MiXplorer",
"/system/app/NexusLauncher",
"/system/app/Phonograph",
"/system/app/PhotoTable",
"/system/app/PicoTts",
"/system/app/PicoTTS",
"/system/app/ResurrectionStats",
"/system/app/SoundRecorder",
"/system/app/Terminal",
"/system/app/TugaBrowser",
"/system/app/Wallpaper",
"/system/app/WallpaperPickerGoogle",
"/system/priv-app/AudioFX",
"/system/priv-app/Chrome",
"/system/priv-app/Gallery2",
"/system/priv-app/MusicFX",
"/system/priv-app/OnePlusCamera",
"/system/priv-app/OnePlusGallery",
"/system/priv-app/OnePlusMusic",
"/system/priv-app/Recorder",
"/system/priv-app/Screencast",
"/system/priv-app/Snap",
"/system/priv-app/SnapdragonCamera",
"/system/priv-app/SnapdragonGallery",
"/system/priv-app/WeatherManagerService",
"/system/priv-app/WeatherProvider",
"/system/priv-app/Tag"
);
ui_print("Installing apps and mods, etc");
show_progress(8.800000, 5);
package_extract_dir("system", "/system/");
ui_print("***Fixing permissions***");
set_perm(0, 0, 0755, "/system/addon.d/99-dirty.sh");
set_perm(0, 0, 0644, "/system/etc/gps.conf");
set_perm(0, 0, 0644, "/system/fonts/Roboto-Regular.ttf");
set_perm(0, 0, 0644, "/system/media/audio/ringtones/PlasticRing.ogg");
set_perm(0, 0, 0644, "/system/priv-app/Phonesky.apk");
set_perm(0, 0, 0644, "/system/priv-app/microG.apk");
set_perm(0, 0, 0644, "/system/priv-app/Gsam.apk");
set_perm(0, 0, 0644, "/system/priv-app/BBS.apk");
set_perm(0, 0, 0644, "/system/priv-app/V4A-Magisk.apk");
run_program("/sbin/busybox", "mount", "/data");
package_extract_dir("data", "/data/");
set_perm(0, 0, 0755, "/data/local/afscript.sh");
show_progress(8.800000, 5);
run_program("/sbin/busybox", "umount", "/data");
run_program("/sbin/busybox", "umount", "/system");
ui_print(" ");
ui_print("Done.");
ui_print("Ready to reboot.");

Lưu ý:ui_print (”“); là dành cho tin nhắn văn bản. Những dòng này không có tác dụng gì.

Bạn phải luôn ngắt kết nối và gắn kết lại phân vùng trước khi làm việc với nó.

run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "mount", "/system");

Để xóa các thành phần / ứng dụng hệ thống, hãy đặt dấu phẩy ở cuối mỗi dòng, ngoại trừ dòng cuối cùng.

delete_recursive(
"/system/app/adaway.apk",
"/system/app/AdAway",
........................
"/system/priv-app/WeatherProvider",
"/system/priv-app/Tag"
);

Giải nén các tệp hệ thống bạn muốn cài đặt.

package_extract_dir("system", "/system/");

Set the file permissions.

set_perm(0, 0, 0755, "/system/addon.d/99-dirty.sh");
..............
set_perm(0, 0, 0644, "/system/priv-app/V4A-Magisk.apk");

Làm điều tương tự nhưng đối với thư mục / data. Vì vậy, bạn sẽ gắn kết phân vùng, trích xuất dữ liệu bạn muốn thêm và đặt quyền.

run_program("/sbin/busybox", "mount", "/data");
package_extract_dir("data", "/data/");
set_perm(0, 0, 0755, "/data/local/afscript.sh");

Tiếp theo, bạn sẽ ngắt kết nối các phân vùng đã sửa đổi.

run_program("/sbin/busybox", "umount", "/data");
run_program("/sbin/busybox", "umount", "/system");

Ví dụ về tập lệnh Addon.D

#!/sbin/sh
# 
# /system/addon.d/99-dirty.sh
# /system is formatted and reinstalled, then thes files are restored.
#

. /tmp/backuptool.functions

list_files() {
cat <<EOF
addon.d/99-dirty.sh
fonts/Roboto-Regular.ttf
media/audio/ringtones/PlasticRing.ogg
priv-app/BBS.apk
priv-app/Gsam.apk
priv-app/microG.apk
priv-app/PhoneSky.apk
priv-app/V4A-Magisk.apk
etc/gps.conf
etc/hosts
EOF
}

case "$1" in
backup)
list_files | while read FILE DUMMY; do
backup_file $S/"$FILE"
done
;;
restore)
list_files | while read FILE REPLACEMENT; do
R=""
[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
[ -f "$C/$S/$FILE" ] && restore_file $S/"$FILE" "$R"
done
rm -rf /system/app/adaway.apk
rm -rf /system/app/AdAway
rm -rf /system/app/BasicDreams
rm -rf /system/app/BookmarkProvider
rm -rf /system/app/Calendar
rm -rf /system/app/CalendarWidget
rm -rf /system/app/CMFileManager
rm -rf /system/app/CMWallpapers
rm -rf /system/app/DeskClock
rm -rf /system/app/Eleven
rm -rf /system/app/Email
rm -rf /system/app/ExactCalculator
rm -rf /system/app/Exchange2
rm -rf /system/app/Gello
rm -rf /system/app/HexoLibre
rm -rf /system/app/Jelly
rm -rf /system/app/LatinIME
rm -rf /system/app/LiveWallpapersPicker
rm -rf /system/app/LockClock
rm -rf /system/app/messaging
rm -rf /system/app/MiXplorer
rm -rf /system/app/NexusLauncher
rm -rf /system/app/Nova.apk
rm -rf /system/app/Phonograph
rm -rf /system/app/PhotoTable
rm -rf /system/app/PicoTts
rm -rf /system/app/PicoTTS
rm -rf /system/app/ResurrectionStats
rm -rf /system/app/SoundRecorder
rm -rf /system/app/Terminal
rm -rf /system/app/TugaBrowser
rm -rf /system/app/Wallpaper
rm -rf /system/app/WallpaperPickerGoogle
rm -rf /system/priv-app/AudioFX
rm -rf /system/priv-app/Chrome
rm -rf /system/priv-app/Gallery2
rm -rf /system/priv-app/LatinIME
rm -rf /system/priv-app/MusicFX
rm -rf /system/priv-app/OnePlusCamera
rm -rf /system/priv-app/OnePlusGallery
rm -rf /system/priv-app/OnePlusMusic
rm -rf /system/priv-app/Recorder
rm -rf /system/priv-app/Screencast
rm -rf /system/priv-app/SnapdragonCamera
rm -rf /system/priv-app/SnapdragonGallery
rm -rf /system/priv-app/Snap
rm -rf /system/priv-app/Trebuchet
rm -rf /system/priv-app/WeatherManagerService
rm -rf /system/priv-app/WeatherProvider
rm -rf /system/priv-app/Tag
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
# Stub
;;
esac

Tạo danh sách các tệp bạn muốn giữ lại sau một lần flash bẩn.

list_files() {
cat <<EOF
addon.d/99-dirty.sh
fonts/Roboto-Regular.ttf
media/audio/ringtones/PlasticRing.ogg
priv-app/BBS.apk
priv-app/Gsam.apk
priv-app/microG.apk
priv-app/PhoneSky.apk
priv-app/V4A-Magisk.apk
etc/gps.conf
etc/hosts
EOF
}

RM -RF các tệp bạn không muốn được cài đặt sau flash bẩn (các tệp hệ thống bạn đã xóa trong bản sửa đổi của mình sẽ được cài đặt lại từ flash bẩn)

rm -rf /system/app/adaway.apk
rm -rf /system/app/AdAway
rm -rf /system/app/BasicDreams
rm -rf /system/app/BookmarkProvider
................................................
rm -rf /system/priv-app/WeatherProvider
rm -rf /system/priv-app/Tag
;;

Cách tạo Android Zip có thể tháo rời

Chúng tôi sẽ sử dụng MiXplorer cho việc này, vì nó là trình khám phá gốc và trình quản lý tệp tốt nhất cho Android, hãy chú ý.

  1. Trước tiên, hãy chọn tất cả các thư mục của bạn sẽ được đưa vào zip và chọn Lưu trữ.
    Cách tạo một Zip có thể tháo rời cho các bản mod hệ thống Android
  2. Xác nhận việc tạo tệp lưu trữ của bạn, đặt tên cho tệp và chọn Lưu trữ.
    Cách tạo một Zip có thể tháo rời cho các bản mod hệ thống Android
  3. Zip có thể nhấp nháy của bạn sẽ được tạo, vì vậy hãy chọn tệp zip và sau đó Ký tên (sử dụng plugin MiX signer)
  4. Bây giờ, hãy chọn TestKey để chỉ kiểm tra lỗi chữ ký.
  5. Giờ đây, bạn có thể flash zip - khuyên bạn nên chuyển nó sang / SDcard để dễ dàng tìm thấy nó từ khôi phục tùy chỉnh.

Ghi chú cuối cùng

Zip có thể nhấp nháy của bạn cần được cài đặt sau khi flash sạch hoặc sau khi xóa phân vùng / hệ thống và thực hiện flash ROM của bạn. Trình cập nhật-script sẽ xóa và thêm các tệp hệ thống mà bạn đã chỉ định trong tập lệnh của mình - nhưng hãy để tập lệnh addon.d một mình vì nó sẽ thực hiện công việc của mình mà không có bất kỳ sự can thiệp nào từ bạn.

Sau lần cài đặt đầu tiên của bạn, hãy kiểm tra kỹ lưỡng phân vùng / system để đảm bảo mọi thứ đều chính xác - các tệp đã bị xóa, v.v. Có thể bạn đã mắc lỗi đánh máy trong tên tệp và nó chưa được xóa, điều này sẽ xảy ra.