Yolo22_3
Đã tốn tiền
Cập nhật liên tục ! Topic thuần chất Em yêu khoa học. Ae nào có vấn đề đọc hiểu nhưng muốn tỏ ra thượng đẳng mời ra chỗ khác. Không tiếp !
Bản chất vấn đề nó nằm ở chỗ này:
Thông thường, khi anh em mở app, thì OS nó mở package, tạo process chính, rồi process chính tự mở thêm các process phụ, process phụ mở thêm service . Sau khi tắt màn thì OS nó kill process chính, kill process phụ và các services, nhưng để lại process và services listener liên quan tới thông báo. Khi có thông báo từ GCM/FCM(firebase) đẩy về, thì cái service listener này nó nhận được và gọi process chính lên xử lý (nếu ae nhấn vào).
Nhưng thằng Xiaomi nó kill không chỉ app, mà còn process, và toàn bộ service liên quan tới thông báo, kill sạch sành sanh, của cả GCM/FCM (google) và của app. Tất nhiên là app nội địa nó đéo kill rồi
Thế nên sẽ chả có service nào của GCM/FCM push thông báo và cũng chả có cái service listener nào của app để nhận thông báo.
HyperOS/Miui quản lý việc kill app/process/service bằng cái app Power Keeper. Cái app này nó quản lý mấy cái setting ẩn trong máy (theo tôi nhé) là:
Còn thằng HyperOS EU và quốc tế thì nó mở 4 cái đầu, cái turbo nó khóa. Một số app nó không cho vào trong turbo nên nó đéo nổ sau khi tắt màn. Nên ae chỉ cần cho thêm tên app, process và service phụ trách thông báo vào, là nó nổ ngay. Nổ nhanh hơn vozer chém gió.
Tôi dùng Mi12 Ultra cài rom EU, bị mất thông báo chrome sau khi tắt màn. Các app khác vẫn nổ ngon. Còn rom Elite và TN thì tịt ngóp ngay cả khi mở màn. (rom lỏ vl mà ae khen lắm thế)
Tôi dùng cách dưới đây fix ngon lành, làm 1 lần, dùng mãi. Nổ tưng bừng trong 0,1s. nhanh xé gió, còn nhanh hơn mấy app trong list turbo ở trên.
Cách làm như sau:
(Nhớ cài driver: https://provider.xiaomi.eu/tools/driver.zip, bật USB debugging và USB debugging (Security Settings))
1. Đầu tiên là xử lý thằng GCM/FCM của google
- Lấy log của package: com.google.android.gms
Dùng lệnh (ví dụ): adb shell dumpsys activity services | grep com.google.android.gms
(Có thể gõ adb shell trước rồi ấn enter, rồi gõ nốt phần lệnh còn lại)
Sau đó copy log đem vào chatgpt/grok bảo nó tách tên package, process, service liên quan tới thông báo ra.
- Mở chatgpt lên, gõ:
Dựa theo mã nguồn và tài liệu của GCM/FCM(firebase) trên android, liệt kê hết tên package, process và service liên quan và hỗ trợ thông báo trong log trên.
- Rồi nó hiện như sau:
Tên package: com.google.android.gms
Tên process:
1. Đầu tiên là xử lý thằng GCM/FCM của google
- Lấy log của package: com.android.chrome
Dùng lệnh (ví dụ): adb shell dumpsys activity services | grep com.android.chrome
Sau đó copy log đem vào chatgpt/grok bảo nó tách tên package, process, service liên quan tới thông báo ra.
- Mở chatgpt lên, gõ:
Dựa theo mã nguồn và tài liệu của app Google Chrome trên android, liệt kê hết tên package, process và service liên quan và hỗ trợ thông báo trong log trên.
Rồi nó hiện như sau:
Package: com.android.chrome → gói chính Chrome Android.
Processes:
Như vậy:
Thêm pkg vào list: power_pkg_white_list và rt_pkg_white_list
Thêm process vào: power_proc_white_list
Thêm service vào: power_service_white_list
App Power Keeper nó tìm kiếm theo đoạn kí tự trong trên chứ ko tìm cả tên service, nên ae ko cần tiền tố đứng trước, như / : . hay tên của process
Ae thêm bằng adb nhé (mở khóa developer option, dùng máy tính, bật cmd,...)
Dùng lệnh sau:
Lưu ý:
Ae khởi động lại máy, sau đó có thể dùng SetEdit để kiểm tra xem mấy cái whitelist đó còn giữ thay đổi không. Vậy là xong. Nổ tưng bừng.
Rom China của một số máy nó khóa hết list (reboot là reset lại), một số máy thì lại mở list, nên ae cứ thử làm với list như trên trước xem.
Nếu Rom mà bị khóa hết white_list, thì ae tự chạy lại mỗi lần reboot.
Hoặc Ae dùng rom china, nếu bị reset list sau mấy ngày, có thể dùng cách này. Dùng Termux chạy adb qua Shizuku, auto bật adb mỗi khi khởi động, auto chạy lệnh mỗi xx ngày/giờ/phút
Ae làm theo hướng dẫn này nhé:
Một cách khác (chưa kiểm tra kĩ, nhưng có tác dụng y chang)
Chỉ cần thêm tên package (ví dụ com.android.chrome) vào một trong hai cái setting sau, nên dùng setedit để thêm vào, tránh ghi đè list app cũ nhé
cloud_turbo_sched_allow_list
turbo_sched_core_app_list
Hai list này sẽ bị reset về ban đầu sau khi khởi động, nên cần thêm lại mỗi lần reboot, ae có thể nghiên cứu tạo cronjob qua shizuku nhé (tôi không biết cái này, kaka).
Cái tôi chưa thử:
Gmail:
Mes và zalo:
HyperOS 2.0.216.0 đã test thành công
test vs messenger, zalo. Để qua đêm test ngon lành
Mã cho các bác đây:
adb shell settings put system rt_pkg_white_list...
Mời ae test
Có cái hình Lockscreen ko ae lại bảo xạo lol coca, nổ real time luôn:
Bản chất vấn đề nó nằm ở chỗ này:
Thông thường, khi anh em mở app, thì OS nó mở package, tạo process chính, rồi process chính tự mở thêm các process phụ, process phụ mở thêm service . Sau khi tắt màn thì OS nó kill process chính, kill process phụ và các services, nhưng để lại process và services listener liên quan tới thông báo. Khi có thông báo từ GCM/FCM(firebase) đẩy về, thì cái service listener này nó nhận được và gọi process chính lên xử lý (nếu ae nhấn vào).
Nhưng thằng Xiaomi nó kill không chỉ app, mà còn process, và toàn bộ service liên quan tới thông báo, kill sạch sành sanh, của cả GCM/FCM (google) và của app. Tất nhiên là app nội địa nó đéo kill rồi
Thế nên sẽ chả có service nào của GCM/FCM push thông báo và cũng chả có cái service listener nào của app để nhận thông báo.
HyperOS/Miui quản lý việc kill app/process/service bằng cái app Power Keeper. Cái app này nó quản lý mấy cái setting ẩn trong máy (theo tôi nhé) là:
Chi tiết hơn:power_pkg_white_list : danh sách package được bỏ qua không kill khi chạy tốn điện
power_proc_white_list : danh sách process được bỏ qua không kill khi chạy tốn điện
power_service_white_list : danh sách service được bỏ qua không kill khi chạy tốn điện
rt_pkg_white_list: danh sách package không bị giới hạn tài nguyên, hoạt động tối ưu hơn.
turbo_sched_core_app_list : các app trong list này được quyền cấp nhiều điện, chạy bằng big core, và không bị kill service. Ví dụ mấy app tin nhắn, email, social.
Vấn đề ở đây là thằng HyperOS nội địa nó khóa hết mấy cái list trên, thay đổi list trên sau khi khởi động lại thì nó reset về cũ. Có máy nó khóa hết, có máy thì không.anh em decomplie cái app quản lý việc kill app là thấy ngay
đây là của powerkeeper:
có vẻ như là oneplus ko có mấy cái setting đó, có mấy chổ đáng để thử thôi.
...Mã:adb shell settings list system
Còn thằng HyperOS EU và quốc tế thì nó mở 4 cái đầu, cái turbo nó khóa. Một số app nó không cho vào trong turbo nên nó đéo nổ sau khi tắt màn. Nên ae chỉ cần cho thêm tên app, process và service phụ trách thông báo vào, là nó nổ ngay. Nổ nhanh hơn vozer chém gió.
Tôi dùng Mi12 Ultra cài rom EU, bị mất thông báo chrome sau khi tắt màn. Các app khác vẫn nổ ngon. Còn rom Elite và TN thì tịt ngóp ngay cả khi mở màn. (rom lỏ vl mà ae khen lắm thế)
Tôi dùng cách dưới đây fix ngon lành, làm 1 lần, dùng mãi. Nổ tưng bừng trong 0,1s. nhanh xé gió, còn nhanh hơn mấy app trong list turbo ở trên.
Cách làm như sau:
(Nhớ cài driver: https://provider.xiaomi.eu/tools/driver.zip, bật USB debugging và USB debugging (Security Settings))
1. Đầu tiên là xử lý thằng GCM/FCM của google
- Lấy log của package: com.google.android.gms
Dùng lệnh (ví dụ): adb shell dumpsys activity services | grep com.google.android.gms
(Có thể gõ adb shell trước rồi ấn enter, rồi gõ nốt phần lệnh còn lại)
Sau đó copy log đem vào chatgpt/grok bảo nó tách tên package, process, service liên quan tới thông báo ra.

- Mở chatgpt lên, gõ:
Dựa theo mã nguồn và tài liệu của GCM/FCM(firebase) trên android, liệt kê hết tên package, process và service liên quan và hỗ trợ thông báo trong log trên.
- Rồi nó hiện như sau:
Tên package: com.google.android.gms
Tên process:
- com.google.android.gms : nó là cái Google play services
- com.google.android.gms.persistent : là sub-process, chịu trách nhiệm push đẩy thông báo, và các thứ khác.
- gcm.GcmService : thằng này là dịch vụ push/pull thông báo nè, nó phân phối cho service listerner của app
- gcm.nts.SchedulerService : thằng này lên lịch cho thằng trên
- chimera.PersistentApiService : thằng này hỗ trợ thằng thứ nhất
- chimera.PersistentApiServiceNoInstantApps : thằng này cũng hỗ trợ thằng thứ nhất (chi tiết ae mở chatgpt hỏi)
1. Đầu tiên là xử lý thằng GCM/FCM của google
- Lấy log của package: com.android.chrome
Dùng lệnh (ví dụ): adb shell dumpsys activity services | grep com.android.chrome
Sau đó copy log đem vào chatgpt/grok bảo nó tách tên package, process, service liên quan tới thông báo ra.

- Mở chatgpt lên, gõ:
Dựa theo mã nguồn và tài liệu của app Google Chrome trên android, liệt kê hết tên package, process và service liên quan và hỗ trợ thông báo trong log trên.
Rồi nó hiện như sau:
Package: com.android.chrome → gói chính Chrome Android.
Processes:
- com.android.chrome → tiến trình chính, chạy UI & service thông báo.
- com.android.chrome: privileged_process0 → xử lý tác vụ cần quyền cao.
- com.android.chrome:sandboxed_process0 → chạy nội dung web & Service Worker sandbox.
- org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService → nhận FCM/GCM push messages.
- org.chromium.chrome.browser.services.gcm.GCMBackgroundService → xử lý GCM/FCM nền.
- org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender → gửi upstream messages.
- org.chromium.chrome.browser.notifications.NotificationService → quản lý & hiển thị thông báo.
- org.chromium.chrome.browser.notifications.NotificationJobService → job nền hỗ trợ notifications.
- org.chromium.chrome.browser.ChromeBackgroundService → service nền tổng quát, sync & task.
Như vậy:
Thêm pkg vào list: power_pkg_white_list và rt_pkg_white_list
Thêm process vào: power_proc_white_list
Thêm service vào: power_service_white_list
App Power Keeper nó tìm kiếm theo đoạn kí tự trong trên chứ ko tìm cả tên service, nên ae ko cần tiền tố đứng trước, như / : . hay tên của process
Ae thêm bằng adb nhé (mở khóa developer option, dùng máy tính, bật cmd,...)
Dùng lệnh sau:
Có thể chỉnh lại thời gian tự reconnect lại gms:adb shell settings put system rt_pkg_white_list com.google.android.gms,com.android.chrome
adb shell settings put system power_pkg_white_list com.google.android.ext.services,com.google.android.gms,com.android.chrome
adb shell settings put system power_proc_white_list com.google.android.gms,com.google.android.gms.persistent,com.android.chrome,com.android.chromerivileged_process0
adb shell settings put system power_service_white_list gcm.GcmService,gcm.nts.SchedulerService,chimera.PersistentApiService,chimera.PersistentApiServiceNoInstantApps,org.chromium.content.app.PrivilegedProcessService0,org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService,org.chromium.chrome.browser.services.gcm.GCMBackgroundService,org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender,org.chromium.chrome.browser.notifications.NotificationService,org.chromium.chrome.browser.notifications.NotificationJobService,org.chromium.chrome.browser.ChromeBackgroundService
Cuối cùng là bật Autostart của app thôi ! Có thể tắt luôn cái Pause app... cũng được. Không cần chỉnh battery với lock app, chạy nền.... gì hết. Rất tiết kiệm pin !adb shell settings put gms_checkin_timeout_min 2
Lưu ý:
Ae khởi động lại máy, sau đó có thể dùng SetEdit để kiểm tra xem mấy cái whitelist đó còn giữ thay đổi không. Vậy là xong. Nổ tưng bừng.
Rom China của một số máy nó khóa hết list (reboot là reset lại), một số máy thì lại mở list, nên ae cứ thử làm với list như trên trước xem.
Nếu Rom mà bị khóa hết white_list, thì ae tự chạy lại mỗi lần reboot.
Hoặc Ae dùng rom china, nếu bị reset list sau mấy ngày, có thể dùng cách này. Dùng Termux chạy adb qua Shizuku, auto bật adb mỗi khi khởi động, auto chạy lệnh mỗi xx ngày/giờ/phút
Ae làm theo hướng dẫn này nhé:
Tất tật Shizuku + app:
![]()
GitHub - timschneeb/awesome-shizuku: Curated list of awesome Android apps making use of Shizuku
Curated list of awesome Android apps making use of Shizuku - timschneeb/awesome-shizukugithub.com
Mời ae nghiên cứu !www.reddit.com
Một cách khác (chưa kiểm tra kĩ, nhưng có tác dụng y chang)
Chỉ cần thêm tên package (ví dụ com.android.chrome) vào một trong hai cái setting sau, nên dùng setedit để thêm vào, tránh ghi đè list app cũ nhé
cloud_turbo_sched_allow_list
turbo_sched_core_app_list
Hai list này sẽ bị reset về ban đầu sau khi khởi động, nên cần thêm lại mỗi lần reboot, ae có thể nghiên cứu tạo cronjob qua shizuku nhé (tôi không biết cái này, kaka).
Cái tôi chưa thử:
- bỏ tên package và process lớn của app, ví dụ com.android.chrome, ra khỏi pkg và proc list rồi test. Nếu ok thì cũng có thể tiết kiệm được thêm pin (dù hiện tại có trong list t thấy cũng chả ăn pin).
Mời ae thử - các OS nội địa china khác như OriginOS, ColorOs,MagicOS, cũng có thể cùng nguyên lý như trên, ae thử xem nhé
Decompile file apk của app quản lý power và kill app (dùng apktook Apktool (https://apktool.org/)), như Powerkeeper trên HyperOS, Athena trên ColorOS,... Tìm mấy cái list thôi
Ae tự nghiên cứu nhé ! - cách đơn giản thế này sao ae chưa từng thử à
nếu ngon thì từ nay chúng ta lại dùng máy nội địa khỏi lo thông báo, khỏi cần unlock 
Gmail:
power_pkg_white_list: com.google.android.gm,com.google.android.gms
power_proc_white_list: com.google.android.gms
power_service_white_list: com.google.android.gm.notification.GmailFirebaseMessagingService,com.google.android.gm.sync.SyncService,com.google.android.gm.account.AccountService,com.google.android.gm.provider.MailSyncAdapterService,com.google.android.gm.notification.GmailNotificationService
rt_pkg_white_list: com.google.android.gm,com.google.android.gms
Mes và zalo:
Mình Turbo 4 pro, Rom nội địaĐã có báo cáo đầu tiên của bro @LeHung tìm tòi trên Turbo 4Pro, Hyper 2.2.
Các white_list không bị reset sau khi reboot, noti nổ ầm ầm![]()
HyperOS 2.0.216.0 đã test thành công
Mình Redmi Turbo 4 Pro, ROM nội địa HyperOS 2.0.216.0Đã có báo cáo đầu tiên của bro @LeHung tìm tòi trên Turbo 4Pro, Hyper 2.2.
Các white_list không bị reset sau khi reboot, noti nổ ầm ầm![]()
test vs messenger, zalo. Để qua đêm test ngon lành
Mã cho các bác đây:
adb shell settings put system rt_pkg_white_list...
Mời ae test
Có cái hình Lockscreen ko ae lại bảo xạo lol coca, nổ real time luôn:
Sửa lần cuối:
rivileged_process0


chứ ai rảnh đi mày mò đâu bác
chắc nó cũng có white_list thôi, mở setedit ra là tìm thấy