Tuổi Thọ Pin Điện Thoại Chạy Mobile Proxy 24/7: Hướng Dẫn Vận Hành

Kiến thức cơ bản
Ilya Rusalowski
Ilya Rusalowski

Điểm Chính: Pin điện thoại mobile proxy 24/7 hỏng vì lão hóa theo thời gian ở mức pin (SoC) cao, chứ không phải vì số chu kỳ sạc. Giới hạn sạc ở mức 80% bằng công tắc OEM tích hợp hoặc smart plug + script ADB , đặt iProxy và OpenVPN ở chế độ Không bị hạn chế , tắt Trình tiết kiệm pin Android và Adaptive Battery , và giữ nhiệt độ môi trường dưới 25°C. Khi áp dụng đồng bộ, các biện pháp này đưa một điện thoại Android proxy thông thường từ mức mất 30–40% dung lượng trong 12 tháng sang giữ được trên 90% sau 12 tháng: kéo dài tuổi thọ phần cứng của cả dàn máy gấp 2–3 lần.

Vì sao sức khỏe pin là yếu tố giới hạn của điện thoại proxy 24/7

Tuổi thọ pin điện thoại mobile proxy là khoản chi phí lớn nhất và có thể dự đoán được trong mọi hoạt động proxy Android 24/7. Mobile proxy chạy trên những chiếc điện thoại Android thực, cắm vào nguồn điện suốt ngày đêm, và bản thân điện thoại là phần cứng tiêu hao. Trong khung thời gian một đến hai năm vận hành 24/7, pin là linh kiện hỏng đầu tiên. Một cell pin lithium-ion điển hình mất 25–40% dung lượng ban đầu trong 12–18 tháng sạc không quản lý. Điện thoại vẫn khởi động được, nhưng nóng lên khi tải cao, rớt kết nối proxy ngày càng thường xuyên, và cuối cùng phồng đủ để bung khung máy hoặc màn hình.

Số liệu phòng thí nghiệm đã giải thích lý do. Bảng lưu trữ BU-808 của Battery University ước tính rằng pin Li-ion gốc cobalt được lưu trữ ở 25°C giữ được khoảng 80% dung lượng sau một năm ở mức sạc 100%, so với 96% ở mức 40%; tại 40°C, trường hợp 100% tụt xuống còn 65% sau một năm.

Với một dàn máy bất kỳ quy mô nào, vòng quay thay máy đó là khoản chi lớn nhất có thể dự đoán trong vận hành mobile proxy. Cơ chế lão hóa đằng sau hiện tượng này đã được hiểu rõ và phụ thuộc vào những biến số mà người vận hành có thể kiểm soát: ngưỡng điện áp trên mà cell pin đứng yên, thời gian nằm ở mức điện áp đó, và nhiệt độ vận hành.

Bài viết này trình bày hóa học của quá trình lão hóa cell pin lithium-ion, hệ quả với vận hành 24/7, các đánh đổi cấu hình phía Android (nhiều tính năng “tiết kiệm pin” thực ra làm giảm uptime proxy), và những công cụ phần cứng có sẵn để quản lý việc sạc trên proxy farm bằng điện thoại.

Xây proxy farm mà không cần phần cứng chuyên dụng?
iProxy.online biến một chiếc điện thoại Android thành mobile proxy 4G/5G riêng qua ứng dụng: không modem, không rack, không code. Cài đặt dưới năm phút mỗi thiết bị, và bản dùng thử miễn phí 2 ngày cho phép bạn đo hành vi điện thoại với trạm phát sóng trên một máy trước khi nhân rộng.
Tạo mobile proxy của bạn

Cách hoạt động thực tế của cell pin lithium-ion

Một cell pin lithium-ion gồm ba bộ phận chức năng: cực âm bằng graphite, cực dương bằng lithium-cobalt-oxide hoặc hợp chất tương tự, và dung dịch điện ly cho phép ion lithium di chuyển qua lại giữa hai cực. Ngoài ra còn có một lớp ngăn (separator) chống các điện cực bị chập, và một bộ thu dòng ở mỗi phía: đồng phía cực âm, nhôm phía cực dương.

Khi cell pin đang sạc, lực điện đẩy các ion lithium ra khỏi mạng tinh thể cực dương và đi vào cực âm graphite. Các ion chèn vào giữa các lớp carbon thông qua quá trình gọi là intercalation. Khi cell pin xả, các ion di chuyển ngược lại, và năng lượng giải phóng khi chúng trở về cực dương chảy ra mạch ngoài thành dòng điện.

Mức pin (SoC) của cell pin, tức là cell pin đang đầy bao nhiêu, tương ứng với lượng lithium đang nằm ở cực âm so với cực dương. Tại SoC 100%, cực âm gần như bão hòa. Tại SoC 0%, cực dương gần như bão hòa.

Điện áp cell pin là cái mà điện thoại đo và báo cáo dưới dạng phần trăm. Nhưng điện áp không tuyến tính theo SoC. Quan hệ này giống một đường cong chữ S kéo dài, và sự phi tuyến đó chính là sự thật quan trọng nhất trong toàn bộ bài viết này.

Đường cong điện áp và điểm knee ở 80%

Vẽ điện áp theo SoC cho một cell pin lithium-ion điển hình thì sẽ thấy ba vùng:

  • Dưới ~20% SoC: điện áp tụt mạnh từ khoảng 3,4V xuống mức cắt 3,0V. Dưới 3,0V, cell pin tự ngắt để tự bảo vệ.
  • Giữa ~20% và ~80% SoC: điện áp tăng nhẹ nhàng từ khoảng 3,6V lên khoảng 4,05V. Đây là vùng làm việc êm dịu nhất của đường cong.
  • Trên ~80% SoC: điện áp tăng mạnh từ 4,05V lên trần cứng 4,20V (một số hóa học đẩy lên 4,35V, nhưng nguyên tắc thì vẫn vậy).

Phần chuyển tiếp trên 80% thường được gọi là “knee” của đường cong. Đây không phải lằn ranh marketing, mà là nơi hóa học chuyển từ thoải mái sang căng thẳng. Hai chuyện xảy ra khi cell pin vượt qua điểm knee:

  1. Cực âm graphite gần như đầy ắp lithium. Mạng tinh thể giãn nở cơ học như miếng bọt biển bị bóp gần đến giới hạn vỡ. Mỗi ion thêm chèn vào tốn nhiều ứng suất hơn và tạo thêm rủi ro lỗi cấu trúc.
  2. Điện áp tiến tới cửa sổ ổn định điện hóa của dung dịch điện ly. Tại 4,20V, các phân tử điện ly nằm ngay rìa khả năng sống sót mà không phân hủy. Trên ngưỡng đó, các phản ứng phụ tăng theo cấp số nhân.

Vì sao đường cong quan trọng hơn phần trăm Khi điện thoại hiển thị “100%”, cell pin đang ở khoảng 4,20V. Khi hiển thị “80%”, cell pin đang ở khoảng 4,05V. Đó là chênh lệch 0,15V cho khoảng cách trông như 20% trên màn hình, và 0,15V đó tương đương chênh lệch tốc độ lão hóa gấp 2–3 lần; BU-808 tóm tắt cùng mối quan hệ đó thành: chu kỳ sạc tăng gấp đôi mỗi khi giảm 0,10V điện áp sạc đỉnh xuống dưới 4,20V/cell.

Vì sao mức pin (SoC) cao đẩy nhanh lão hóa

Cơ chế lão hóa thống trị ở SoC cao là sự phát triển của lớp Solid Electrolyte Interphase (SEI). SEI là một màng mỏng hình thành trên cực âm ngay lần đầu cell pin được sạc. Thực ra nó là lớp hữu ích: bảo vệ cực âm khỏi phản ứng liên tục với điện ly. Nhưng nó không ổn định. Ở điện áp cao, điện ly từ từ phân hủy trên bề mặt SEI, làm lớp này dày thêm và mỗi lần tiêu thụ một lượng nhỏ lithium có thể tham gia chu kỳ. Lượng lithium đó nay bị giam, và dung lượng dùng được của cell pin giảm xuống.

Sự phát triển SEI tuân theo quan hệ Arrhenius xấp xỉ với điện áp và nhiệt độ. Là quy tắc thực hành: mỗi 0,1V giảm điện áp sạc tối đa làm chu kỳ của cell pin tăng gấp đôi; cùng độ nhạy điện áp đó cũng giảm áp lực calendar aging. Nhiệt độ đi theo cùng chiều: mỗi 10°C giảm nhiệt độ vận hành là một lần kéo dài tuổi thọ có ý nghĩa, không phải thay đổi mỹ phẩm.

Còn một cơ chế thứ hai ở phía cực dương. Ở điện áp cao, các kim loại chuyển tiếp như cobalt, mangan, và nickel có thể tan ra khỏi mạng cực dương vào điện ly, di chuyển sang cực âm, và lắng đọng trên bề mặt cực âm. Việc này đầu độc SEI và đẩy nhanh sự thoái hóa tiếp theo. Đây là lý do cell pin bị sạc đến 100% theo thói quen có thể mất dung lượng nhanh hơn so với dự đoán chỉ từ số chu kỳ.

Calendar aging, tức là sự thoái hóa theo thời gian, điện áp và nhiệt độ bất kể cell pin có đang được sạc/xả hay không, là biến số quan trọng nhất với một điện thoại sống ở trạng thái cắm sạc. Bảng lưu trữ BU-808 cung cấp con số hữu ích cho người vận hành: cell pin Li-ion lưu trữ ở 100% SoC tại 25°C còn khoảng 80% sau một năm, trong khi cùng bảng đó báo cáo còn khoảng 96% ở 40% SoC. Một nghiên cứu calendar aging có bình duyệt trên cell pin Li-ion đi đến cùng kết luận về xu hướng: SoC lưu trữ 100% có tác động lớn, còn ảnh hưởng dưới 80% là nhỏ.

Với điện thoại proxy 24/7, hệ quả rõ ràng: cứ cắm sạc ở 100% thì calendar aging sẽ thống trị. Điện thoại gần như không trải qua chu kỳ sạc/xả, vì luôn đầy, nên không có “lý do chu kỳ” nào để bù lại.

Vì sao xả sâu cũng gây hại

Vấn đề đối xứng ở SoC thấp ít được nói tới, nhưng có thật.

Dưới ~20% SoC, cực dương gần như đầy lithium và cấu trúc tinh thể trở nên không ổn định. Với cực dương giàu cobalt, các nguyên tử oxy có thể bắt đầu thoát khỏi mạng tinh thể. Dưới 2,5V, tức là thấp hơn nhiều mức “0%” mà điện thoại hiển thị, bộ thu dòng đồng phía cực âm bắt đầu tan vào điện ly. Một khi cell pin tụt thấp như vậy, các đám tinh thể dendrit có thể hình thành trong những lần sạc sau, làm tăng điện trở nội và tạo rủi ro chập mạch.

Firmware của điện thoại tắt cell pin từ rất sớm, thường ở 3,0V điện áp cell pin, tương ứng với “0%” trên màn hình. Nhưng việc lặp đi lặp lại các chu kỳ gần ngưỡng cắt vẫn áp lực, và một cell pin thường xuyên tụt xuống 5% sẽ lão hóa nhanh hơn cell pin chỉ chạm đáy ở 30%.

Cửa sổ giữa 20% và 80% SoC là chế độ ít gây căng thẳng nhất về mặt cấu trúc và điện hóa cho cả hai cực. Đó là toàn bộ lý do “quy tắc 20-80” được lặp lại trong nghiên cứu pin.

Nghịch lý 79→80% so với 99→100%

Một thắc mắc thường gặp: nếu điện thoại được giới hạn sạc đến 80%, thì chẳng phải nó cứ liên tục dao động giữa 79% và 80% sao? Vì sao việc đó tốt hơn dao động giữa 99% và 100%?

Câu trả lời là biên độ phần trăm không quan trọng. Cái quan trọng là điện áp tại đó dao động xảy ra.

Chu kỳ 79→80% di chuyển cell pin giữa khoảng 4,00V và 4,05V. Tốc độ phát triển SEI ở mức điện áp này chậm. Phân hủy điện ly chậm. Mạng graphite còn chỗ để co giãn. Cell pin trải qua điều này như một chu kỳ vi mô nhẹ nhàng.

Chu kỳ 99→100% di chuyển cell pin giữa khoảng 4,17V và 4,20V. Tốc độ phát triển SEI ở đây nhanh hơn nhiều lần. Tốc độ oxy hóa điện ly cao theo cấp số nhân. Mạng graphite chịu áp lực tối đa. Ngay cả một lần top-up 1% ở mức này cũng gây tổn hại không cân xứng.

Trên thực tế, một điện thoại giới hạn ở 80%, dành phần lớn cuộc đời chạy chu kỳ vi mô quanh mốc 4,00V, có thể sống lâu hơn điện thoại không bị giới hạn từ 2 đến 5 lần. Bảng điện áp sạc BU-808 ước tính 300–500 chu kỳ ở 4,20V/cell, 600–1.000 chu kỳ ở 4,06V/cell, và 1.200–2.000 chu kỳ ở 3,92V/cell, đúng là vùng có ý nghĩa khi điện thoại proxy thôi nằm ở 100%.

Những thứ giết pin trong vận hành proxy 24/7, theo thứ tự

Với một chiếc điện thoại sống ở trạng thái cắm sạc làm nút proxy, các cơ chế lão hóa chiếm ưu thế xếp theo thứ tự tác động đại khái là:

  1. Calendar aging ở SoC cao. Nằm ở 100% trong nhiều giờ hoặc nhiều ngày là kiểu mẫu tệ nhất. Điện áp float ở 4,20V đẩy SEI lớn lên đều đặn.
  2. Nhiệt độ. Bảng lưu trữ BU-808 ước tính còn khoảng 80% sau một năm ở 25°C và sạc 100%, nhưng chỉ còn 65% ở 40°C và sạc 100%. Một điện thoại trong chồng máy, sát tường, mùa hè, không có luồng khí, là đang vận hành ở phần đắt đỏ của đường cong đó.
  3. Sạc với C-rate cao. Sạc nhanh làm nóng cell pin và gây áp lực lên các điện cực. Với vận hành 24/7, sạc chậm ở 0,3 đến 0,5C tốt hơn nhiều so với sạc nhanh.
  4. Xả sâu. Ít quan trọng hơn với điện thoại luôn cắm sạc, nhưng nếu máy thi thoảng tụt xuống 5% khi mất điện chớp nhoáng, những sự cố đó tích lũy tổn hại nhanh hơn so với điện thoại chạm đáy ở 30%.
  5. Số chu kỳ sạc. Đây là thứ mà spec tuổi thọ chu kỳ đo, nhưng với điện thoại luôn cắm sạc thì gần như không liên quan. Máy hầu như không trải qua chu kỳ sạc/xả, và hiệu ứng calendar thống trị.

Một mô hình tinh thần hữu ích: hãy hình dung mỗi phút điện thoại nằm trên 4,10V điện áp cell pin là đắt đỏ, mỗi phút nằm giữa 3,7V và 4,05V là rẻ, và mỗi phút dưới 3,4V là đắt đỏ trở lại.

Tính năng pin Android và tác động lên uptime proxy

Hai mô hình tinh thần giúp ở đây.

Cái đầu tiên là hệ thống App Standby Bucket, ra mắt trên Android 9 và siết chặt hơn ở mọi bản phát hành sau đó. Mỗi ứng dụng ngồi trong một trong năm bucket (active, working_set, frequent, rare, hoặc restricted) dựa trên tần suất người dùng tương tác với nó. Ứng dụng ở các bucket thấp hơn nhận được ít job, ít alarm, và (trong rarerestricted) bị giới hạn truy cập mạng. Tính năng Adaptive Battery, cũng từ Android 9, phủ thêm một mô hình machine learning lên trên việc gán bucket. Chế độ Doze (Android 6) nằm bên dưới tất cả những thứ đó và hoãn lại network và CPU nền khi máy không hoạt động và đứng yên.

Cái thứ hai là hợp đồng foreground service. Một ứng dụng giữ một foreground service kèm thông báo cố định hiển thị được hệ điều hành coi là công việc người dùng nhận biết được, và hầu hết các giới hạn dựa trên bucket bị tạm đình chỉ trong thời gian service chạy. iProxy, cũng như mọi ứng dụng mạng chạy dài, dựa vào foreground service để duy trì khả năng truy cập.

Một lưu ý hữu ích từ tài liệu chính thức Android Standby Bucket: “Các giới hạn này chỉ áp dụng khi thiết bị đang chạy bằng pin. Khi thiết bị đang sạc, hệ thống không áp đặt các giới hạn này.” Lằn ranh đó là lý do một điện thoại dành mọi phút cắm vào ổ điện tường nhìn chung vẫn chạy proxy ổn, kể cả khi nó đáng lẽ phải nằm ở bucket rare hoặc frequent. Đó cũng là lý do một điện thoại dùng sạc chu kỳ qua smart plug, tức là luân phiên giữa sạc và không sạc, có thể đột nhiên dính giới hạn bucket trong các khoảng thời gian không sạc. Và đó cũng là lý do vì sao có hai thay đổi áp dụng bất kể trạng thái sạc: bucket restricted của Android 12 và giới hạn foreground service của Android 15.

Phần tiếp theo là bản tóm tắt theo từng phiên bản về các thay đổi quan trọng với một ứng dụng proxy 24/7, tập trung vào điều mà người vận hành cần làm.

Cần các bước bấm chi tiết? Các tiểu mục theo phiên bản bên dưới giải thích cái gì thay đổi ở mỗi bản phát hành và lý do. Để xem các thao tác chạm thực tế đặt cả ứng dụng iProxy và app tunnel OpenVPN for Android sang “Không bị hạn chế” trên từng phiên bản Android, kèm ảnh chụp màn hình, xem cách tắt tối ưu hóa pin Android cho iProxy và OpenVPN . Để xem các công tắc hệ thống (Trình tiết kiệm pin, Adaptive Battery, giới hạn sạc 80%), xem hướng dẫn đi kèm về tắt Trình tiết kiệm pin Android và giới hạn sạc 80% trên điện thoại proxy .

Android 9 (API 28): App Standby Bucket, Adaptive Battery, FOREGROUND_SERVICE

  • App Standby Bucket và Adaptive Battery được giới thiệu. Ứng dụng ở bucket thấp hơn bị throttle dần các job và alarm.
  • Ứng dụng nhắm Android 9 phải xin quyền FOREGROUND_SERVICE. Không có quyền này, việc khởi động foreground service ném ra SecurityException.
  • Thông báo từ ứng dụng bị treo bị ẩn cho đến khi ứng dụng tiếp tục, thay vì bị hủy hẳn.

Với một điện thoại proxy chạy Android 9 luôn cắm sạc, không có thứ nào trong số này gây chết người miễn là app vẫn giữ một foreground service.

Android 10 (API 29): Giới hạn khởi chạy activity nền

  • Các ứng dụng ở nền không còn có thể khởi chạy activity, với một danh sách miễn trừ nhỏ (notification trampoline, accessibility, v.v.).
  • Vị trí nền giờ cần một runtime permission riêng (ACCESS_BACKGROUND_LOCATION), tách khỏi vị trí foreground.

Một ứng dụng proxy thường không khởi chạy activity từ nền, nên tác động nhỏ. Thay đổi này chỉ ảnh hưởng nếu app đưa UI quay lại từ một lệnh từ xa.

Android 11 (API 30): Tự reset quyền, bắt buộc WorkManager

  • Các runtime permission tự reset cho ứng dụng người dùng không tương tác trong “vài tháng”. Tiền thân của tính năng hibernation app đầy đủ ở Android 12.
  • Firebase JobDispatcher và GcmNetworkManager bị vô hiệu hóa với app nhắm API 30+. WorkManager là scheduler duy nhất được hỗ trợ.
  • Vị trí nền không còn được yêu cầu qua hộp thoại runtime. Người dùng phải cấp từ Cài đặt một cách tường minh.

Với một ứng dụng proxy mà người dùng cài một lần rồi không mở lại trực quan nữa, tự reset là rủi ro có thật. Hoặc người dùng phải tương tác trực quan vài tháng một lần, hoặc hibernation phải bị tắt theo từng app (toggle đến ở Android 12).

Android 12 (API 31): Hibernation app, bucket restricted, cấm khởi FGS từ nền

Đây là phiên bản đầu tiên mà nhiều thay đổi có thể phá vỡ proxy 24/7 trên một điện thoại vốn luôn cắm sạc liên tục.

  • Hibernation app. Xây trên auto-reset của Android 11. Ứng dụng không dùng trong vài tháng bị thu hồi quyền và đưa vào trạng thái hibernation, nơi nó không thể chạy nền cho đến khi được mở lại. Toggle theo app: Cài đặt → Ứng dụng → iProxy → tắt “Tạm dừng hoạt động nếu không dùng” (hoặc nhãn OEM tương đương).
  • Bucket standby restricted. Một bucket thứ năm mới, dưới rare. Giới hạn áp dụng ngay cả khi đang sạc: tối đa một job mỗi ngày trong một phiên gom 10 phút, một alarm mỗi ngày (chính xác hoặc không chính xác), và throttle mạng rất nặng. Trigger: người dùng không tương tác với app trong 45 ngày, hoặc app bị đánh dấu vì broadcast hoặc binding quá mức.
  • Foreground service không thể khởi từ nền. App nhắm Android 12+ không còn có thể khởi một foreground service trong khi bản thân app đang ở nền, trừ một danh sách miễn trừ nhỏ (alarm, push message, accessibility service, chạm thông báo). Foreground service của proxy phải được khởi từ một context mà hệ điều hành xem là foreground (boot completion, exact alarm, tương tác người dùng).
  • Giới hạn phantom process. 32 process con mỗi app. Ảnh hưởng đến các app sinh nhiều subprocess; một app proxy đơn-process hiếm khi chạm trần này.

Hành động vận hành trên Android 12+: tắt hibernation tường minh cho app proxy, đảm bảo FGS được khởi từ một context được phép, và mở lại app trực quan ít nhất vài tháng một lần để giữ nó tránh xa bucket rare và mốc trigger 45 ngày của bucket restricted.

Android 13 (API 33): POST_NOTIFICATIONS thành runtime permission, siết bucket restricted

  • POST_NOTIFICATIONS thành runtime permission. Ứng dụng nhắm API 33+ phải xin quyền trước khi hiển thị thông báo thông thường. Tài liệu quyền thông báo Android tạo một phân biệt quan trọng cho foreground service: nếu người dùng từ chối quyền, thông báo của foreground service vẫn xuất hiện trong Task Manager, nhưng không có trong khay thông báo. Tức là service không tự nhiên biến thành background service chỉ vì quyền thông báo bị từ chối, nhưng người vận hành mất tín hiệu khay thông báo cố định dùng để phát hiện drop và restart.
  • Trigger bucket restricted giảm từ 45 ngày xuống 8 ngày cho app nhắm Android 13+. Một app proxy mà người dùng không mở trực quan trong một tuần lịch bình thường có thể rơi vào restricted.
  • BOOT_COMPLETED bị chặn ở trạng thái “restricted” do người dùng đặt. Tài liệu Android lưu ý: “Nếu người dùng đặt app của bạn vào trạng thái restricted về sử dụng pin nền trong khi app nhắm Android 13, hệ thống sẽ không gửi broadcast BOOT_COMPLETED hoặc LOCKED_BOOT_COMPLETED cho đến khi app được khởi động vì lý do khác.” Autostart lúc boot không được đảm bảo trong trạng thái này.
  • UI Task Manager cho người dùng thấy và dừng các foreground service từ khay thông báo, bất kể quyền thông báo có được cấp hay không.

Hành động vận hành trên Android 13+: cấp POST_NOTIFICATIONS ngay khi cài đặt đầu tiên để có khả năng quan sát và chẩn đoán, đặt app proxy sang “Không bị hạn chế” trong cài đặt pin theo từng app, và chấp nhận rằng cửa sổ 8 ngày nghĩa là app phải hoạt động trực quan định kỳ, hoặc qua sử dụng bình thường hoặc qua một watchdog ngoài (script ADB + cron) mở lại app theo lịch cố định.

Android 14 (API 34): Bắt buộc khai báo loại foreground service, ANR JobScheduler

  • Bắt buộc khai báo loại foreground service. Mọi foreground service chạy dài phải khai báo loại trong manifest: dataSync, mediaPlayback, connectedDevice, specialUse, shortService, health, remoteMessaging, v.v. App không khai báo loại thì bị kill; app khai báo sai loại có thể bị Google Play đánh cờ vi phạm chính sách.
  • Cưỡng chế ANR JobScheduler. Nếu onStartJob hoặc onStopJob chạy quá lâu trên main thread, hệ thống sẽ raise ANR (“No response to onStartJob”). Trước đây những thứ này fail im lặng.
  • ACCESS_NETWORK_STATE bắt buộc cho các lời gọi JobScheduler dùng setRequiredNetworkType() hoặc setRequiredNetwork(). Thiếu quyền thì ném SecurityException.

Cái lớn nhất cho app proxy là khai báo loại foreground service. Chọn sai loại giờ ảnh hưởng đến các giới hạn áp dụng, kể cả giới hạn 6 giờ của Android 15 được nói tiếp theo.

Android 15 (API 35): Giới hạn 6 giờ foreground service

  • Với app nhắm Android 15, các loại foreground service dataSyncmediaProcessing mới chịu giới hạn tích lũy 6 giờ trong mỗi cửa sổ 24 giờ, theo tài liệu timeout foreground service của Android. Sau 6 giờ chạy FGS, hệ thống gọi Service.onTimeout(), và nếu service không gọi stopSelf() trong vài giây, hệ thống ném RemoteServiceException (“A foreground service of type dataSync did not stop within its timeout”).
  • Sau khi hạn ngạch cạn, mọi nỗ lực khởi một FGS dataSync (hoặc mediaProcessing) khác ném ForegroundServiceStartNotAllowedException với thông báo “Time limit already exhausted for foreground service type dataSync”.
  • Ngân sách 6 giờ reset khi người dùng đưa app ra foreground. Với một nút proxy 24/7, việc đó không tự xảy ra.
  • Các loại foreground service không bị giới hạn 6 giờ gồm specialUse, connectedDevice, mediaPlayback, camera, phoneCall, microphone, và location (tuỳ chính sách Google Play hiện tại về việc sử dụng đúng từng loại).

Với một app proxy, đây là thay đổi nhiều khả năng phá vỡ một setup 24/7 nhất. Cách giảm nhẹ là khai báo một loại FGS không bị giới hạn, phù hợp với mục đích của app. Vai trò chuyển tiếp lưu lượng truy cập của iProxy hợp với specialUse hoặc connectedDevice hơn là dataSync, vốn được Google dự định cho việc đồng bộ dữ liệu người dùng định kỳ chứ không phải chuyển tiếp lưu lượng truy cập luôn-bật.

Android 16 (API 36): Siết hạn ngạch JobScheduler

  • Hạn ngạch thời gian chạy job theo bucket standby giờ được cưỡng chế cả với bucket active, không chỉ các bucket thấp hơn, theo tài liệu thay đổi hành vi Android 16 .
  • Hạn ngạch job top-state và job đồng thời với FGS. Các job khởi khi app đang hiển thị và tiếp tục sau khi app trở thành ẩn, cộng với các job chạy đồng thời với một foreground service, giờ tuân theo hạn ngạch thời gian chạy mà trước đây chúng có thể bỏ qua.
  • JobInfo.setImportantWhileForeground bị deprecate hoàn toàn và bị bỏ qua.
  • scheduleAtFixedRate chỉ chạy bù một lần thực thi bị lỡ sau khi app trở về một vòng đời hợp lệ. Trước đây, mọi lần thực thi bị lỡ chạy ngay lập tức.
  • STOP_REASON_TIMEOUT_ABANDONED mới phân biệt các job không được dọn dẹp đúng cách với timeout thông thường.

Với một app proxy dùng job song song với FGS chính, hệ quả thực tế là job không thể dựa vào việc thực thi đồng thời với FGS để có thời gian chạy không giới hạn. Công việc dài thuộc về bên trong FGS, hoặc bên trong một job user-initiated data transfer.

Android 17 (API 37): Tiếp tục siết khởi chạy activity nền

  • Background Activity Launch (BAL) siết thêm. Các app trước đây dùng MODE_BACKGROUND_ACTIVITY_START_ALLOWED cần migrate sang MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE, hoặc chấp nhận rằng khởi activity nền sẽ bị chặn.
  • Siết audio nền. Phát lại âm thanh, audio focus, và các API âm lượng giờ cần hoặc một FGS có khả năng while-in-use, hoặc quyền exact alarm với stream audio USAGE_ALARM. Chủ yếu liên quan đến app media.

Với một app proxy điển hình, Android 17 phần lớn vô hình: xác nhận targetSdkVersion là bản hiện tại và app không dựa vào việc khởi activity từ nền.

Những kẻ giết pin riêng từng OEM (trực giao với phiên bản Android)

Độc lập với Android gốc, các bản tùy biến OEM gắn kèm các trình quản lý pin hung hăng, từ chịu được (Pixel gốc) đến thẳng thừng thù địch (Huawei). Các kiểu mẫu và cách xử lý từng hãng:

OEM / skin Tính năng hung hăng Trạng thái mặc định Cài gì cho app proxy & VPN
Google Pixel (Android gốc) Tối ưu hóa pin theo app, Adaptive Battery, App Standby Buckets Optimized Không bị hạn chế cho iProxy + OpenVPN; cân nhắc tắt Adaptive Battery trên điện thoại fleet không có người trông
Xiaomi (MIUI, HyperOS) Trình quản lý autostart, Trình tiết kiệm pin MIUI, cảnh báo “high power consumption” Hạn chế (autostart tắt cho app non-system) Bật autostart, khóa trong Recents, đặt pin theo app sang Không bị hạn chế
Samsung (One UI) “Put unused apps to sleep”, danh sách Sleeping apps, Deep sleeping apps Danh sách Sleeping tự lớn dần theo thời gian Thêm vào Never sleeping apps; xác nhận không app nào nằm trong Sleeping hoặc Deep sleeping; “Put unused apps to sleep” tắt
Realme / Oppo / OnePlus (ColorOS) Cảnh báo “High background power consumption” dẫn tới hành động kill, App start manager Hung hăng trên ROM gốc Allow auto-launch bật, Background freeze tắt, Abnormal apps optimization tắt
Huawei / Honor (EMUI, HarmonyOS) Protected apps, manual launch lock, system cleaner Bảo vệ tắt theo mặc định Thêm vào Protected apps; trong Launch → Manage manually, bật Auto-launch, Secondary launch, Run in background

Vài ghi chú về các “tội phạm” nặng nhất. Xiaomi MIUI và HyperOS ra lò với autostart bị từ chối cho mọi thứ ngoài app hệ thống, nên nếu không bật toggle autostart tường minh thì app proxy đơn giản không khởi sau khi reboot. Samsung One UI giữ một danh sách Sleeping apps ẩn tự lớn dần: một app proxy người vận hành chưa mở thủ công có thể rơi vào danh sách đó sau vài tuần dù setup ban đầu trông ổn. Huawei EMUI và HarmonyOS trong lịch sử bắt phải đánh dấu app là “được bảo vệ” qua một màn Battery Manager riêng; không có thao tác đó, system cleaner sẽ kill app trong vài phút sau khi đẩy xuống nền.

Dự án cộng đồng dontkillmyapp.com theo dõi các “tội phạm” nặng nhất và biện pháp giảm nhẹ theo từng OEM, chấm điểm trên thang 1–5, đáng bookmark cho bất kỳ người vận hành nào đang chạy fleet hỗn hợp. Để xem bản đồng hành phía Android-version cho bảng này (Trình tiết kiệm pin, Adaptive Battery, giới hạn sạc 80% trên Pixel và Samsung), xem hướng dẫn tiết kiệm pin phía hệ thống .

Chính sách Wi-Fi sleep

Một số điện thoại ngắt Wi-Fi khi tắt màn hình để tiết kiệm pin. Với proxy thì đây là án tử: máy chuyển về chỉ dùng dữ liệu di động, hoặc rớt hẳn kết nối proxy. Khóa Wi-Fi sang “always on” hoặc “never disconnect when plugged in”, thường nằm ở Cài đặt → Wi-Fi → Nâng cao → Giữ Wi-Fi bật khi ngủ.

Cần làm gì, theo thứ tự ưu tiên

  1. Tắt hẳn Trình tiết kiệm pin. Đừng để nó tự bật. Xem hướng dẫn theo từng phiên bản .
  2. Đặt app iProxy và mọi app VPN tunnel mà nó phụ thuộc sang “Không bị hạn chế” (hoặc “Không tối ưu hóa”) trong cài đặt pin theo từng app. Đường dẫn khác nhau theo phiên bản Android; để xem luồng bấm cụ thể cho mọi phiên bản từ 9 đến 16, xem hướng dẫn đặt từng app sang Không bị hạn chế .
  3. Cấp POST_NOTIFICATIONS ngay lần cài đầu tiên (Android 13+).
  4. Tắt hibernation app và “pause when unused” cho app proxy (Android 12+).
  5. Whitelist app proxy khỏi các kẻ giết pin OEM theo bảng trên. Xiaomi: bật autostart, khóa trong recents. Samsung: tắt deep sleep, bật never sleeping app. Realme/Oppo: bật keep alive. Huawei: bật protected app.
  6. Đừng force-stop app proxy từ màn hình thông tin ứng dụng. Trên Android 15+, trạng thái stopped tồn tại cho đến khi có hành động trực tiếp hoặc gián tiếp của người dùng và hủy các pending intent; nếu chuyện này xảy ra, hãy khởi lại app.
  7. Xác nhận loại foreground service của app proxy không thuộc nhóm chịu giới hạn 6 giờ (Android 15+, app target SDK 35+).
  8. Khóa Wi-Fi luôn bật khi cắm sạc.
  9. Tắt Adaptive Battery, hoặc chấp nhận rằng nó có thể hạ độ ưu tiên của app proxy và kiểm tra định kỳ.
  10. Tắt Trình tiết kiệm dữ liệu và mọi toggle “hạn chế dữ liệu nền”.
  11. Mở app proxy trực quan vài tuần một lần để giữ nó tránh xa bucket rarerestricted (đặc biệt Android 13+, kích hoạt sau 8 ngày không dùng).

Quy tắc chung Nếu một cài đặt hứa hẹn tiết kiệm pin bằng cách giới hạn hoạt động nền, nó sẽ tổn hại uptime proxy. Proxy là hoạt động nền. Tắt mọi thứ thuộc nhóm này, và dựa vào các biện pháp phía sạc (sẽ nói ở phần tới) để kéo dài tuổi thọ pin.

Muốn một proxy farm được quản lý mà không phải trông coi nội bộ Android?
Chạy iProxy.online trên các điện thoại Android được hỗ trợ, theo dõi uptime, xoay IP, và lưu lượng truy cập theo từng thiết bị từ một dashboard hoặc qua bot Telegram, và kiểm chứng hành vi fleet trên bản dùng thử miễn phí 48 giờ, không cần thẻ.
Tạo mobile proxy của bạn

Giải pháp phần cứng: smart plug và sạc theo lịch

Cách đáng tin nhất để giữ một điện thoại 24/7 ở vùng vàng 20–80% là kiểm soát đầu vào điện thay vì dựa vào phần mềm. Một số máy có sẵn giới hạn sạc (Pixel 6a+ của Google có “Limit to 80%”, Samsung One UI 6.1+ có “Battery protection”, Sony có “Battery Care”, Xiaomi đưa ra một giới hạn sạc 80% ẩn trong HyperOS trên các model được chọn), nhưng đa số thì không, và ngay cả khi có, cách triển khai cũng không nhất quán.

Một smart plug, tức là một ổ cắm điện điều khiển qua Wi-Fi, giải quyết việc này một cách phổ quát. Phích cắm bật và tắt sạc theo lịch. Điện thoại báo cáo mức pin qua mạng (hoặc nó hiển thị trong bất kỳ dashboard quản lý fleet nào), và một vòng lặp đơn giản sạc đến ~80%, đứng yên, rồi tiếp tục khi SoC tụt xuống ~30%.

Các thiết lập thực tế:

  • Smart plug bán sẵn. TP-Link Tapo, Sonoff, và các phích cắm Wi-Fi tương tự giá $5 đến $15 mỗi cái và tích hợp với hầu hết nền tảng nhà thông minh. Cách thô là một lịch cố định (sạc 4 giờ, nghỉ 8 giờ), đủ tốt làm pass đầu nhưng không bám sát SoC thực tế.
  • Firmware Tasmota hoặc ESPHome. Flash smart plug bằng firmware mở cho phép điều khiển qua MQTT hoặc một HTTP API cục bộ, nghĩa là script có thể poll mức pin thực của điện thoại và bật/tắt phích cắm.
  • Home Assistant. Nếu Home Assistant đã chạy sẵn, tích hợp khá thẳng thắn: một battery sensor (qua script ADB hoặc một app phát quảng bá pin chuyên dụng) đọc SoC, và một automation bật/tắt phích cắm tại các ngưỡng.
  • Cắt nguồn USB tự chế. Một relay trên đường nguồn USB, điều khiển bằng ESP32 hoặc Raspberry Pi, có thể làm điều tương tự sát thiết bị hơn. Đây là phương án rẻ nhất ở quy mô lớn nhưng dễ gãy nhất.

Để xem công thức phổ quát (một smart plug cộng một script ADB nhỏ đọc SoC từ điện thoại và bật/tắt phích cắm ở 30% và 80%), chạy được trên mọi model Android bất kể OEM có cung cấp giới hạn tích hợp hay không, xem phần smart plug + script ADB trong hướng dẫn tiết kiệm pin phía hệ thống .

Lưu ý: giữ điện thoại không ngủ Một số điện thoại đi vào deep sleep hoặc hibernate khi tháo sạc, kể cả khi vẫn bật màn hình. Hãy test từng model cụ thể: xác nhận điện thoại vẫn phục vụ lưu lượng truy cập proxy khi smart plug đang ở phần “off” của chu kỳ. Nếu không, có thể cần một app wakelock, hoặc các khoảng off cần ngắn hơn.

Một lịch mục tiêu hợp lý cho hầu hết điện thoại: sạc đến 80% (thường 1 đến 2 giờ từ 30%), đứng yên cho đến khi SoC tụt xuống 30% (thường 8 đến 12 giờ lưu lượng truy cập proxy bình thường), rồi sạc lại. Việc này tạo ra 2 đến 3 chu kỳ một phần mỗi ngày trong vùng điện áp êm dịu, thay vì float liên tục ở 4,20V.

Danh sách kiểm tra tuổi thọ thực tế cho người vận hành proxy

Cấu hình mỗi điện thoại một lần, tốt nhất là trước khi đưa vào sản xuất:

  1. Giới hạn sạc ở 80%, bằng bất cứ phương tiện nào có sẵn: toggle OEM tích hợp (Pixel 6a+, Samsung One UI 6.1+) hoặc một lịch smart plug. Công thức ADB phổ quát chạy được trên mọi model.
  2. Tránh để SoC tụt dưới 20%. Nếu tải lưu lượng truy cập làm điện thoại tụt nhanh hơn sạc có thể bù, đó là vấn đề dây/công suất sạc đáng giải quyết trước khi cell pin bắt đầu chịu thiệt.
  3. Tắt Trình tiết kiệm pin và Adaptive Battery ở cấp hệ điều hành. Xem hướng dẫn pin phía hệ thống .
  4. Đặt app iProxy và OpenVPN sang “Không bị hạn chế” trong cài đặt pin theo từng app, cộng với autostart, cộng với khóa nền. Hướng dẫn theo phiên bản: tắt tối ưu hóa pin Android cho iProxy và OpenVPN .
  5. Whitelist app proxy khỏi các kẻ giết pin OEM theo bảng trên. Xiaomi: bật autostart, khóa trong recents. Samsung: tắt deep sleep, bật never sleeping app. Realme/Oppo: bật keep alive. Huawei: bật protected app.
  6. Khóa Wi-Fi luôn bật khi cắm sạc, không cho ngủ.
  7. Chọn thiết bị có sẵn giới hạn 80% tích hợp khi có thể. Trang thiết bị Android được khuyến nghị cho iProxy đánh dấu các dòng Pixel 8/9 và Galaxy đời gần đây cụ thể vì tính năng này.
  8. Sạc chậm. Dùng adapter tường 1A hoặc 1,5A, không phải sạc nhanh 3A, cho vận hành cắm sạc. Dòng thấp hơn nghĩa là nhiệt độ thấp hơn và áp lực lên cell pin ít hơn.
  9. Quản lý nhiệt độ. Đừng xếp chồng điện thoại quá sát. Đừng đặt chúng trên router, modem, hoặc trực tiếp dưới nắng. Nhắm tới không khí xung quanh các điện thoại, lý tưởng dưới 25°C. Luồng khí quan trọng; xem phần fleet-hygiene trong hướng dẫn setup mạng proxy 4G .
  10. Kiểm toán hàng quý. Các bản cập nhật hệ điều hành có thể bật lại những tính năng đã tắt. Kiểm tra mỗi 90 ngày. Danh sách kiểm tra cài đặt kết nối bao trùm vệ sinh vận hành rộng hơn đi kèm với việc kiểm toán này.
Kiểm tra tính toán trên một điện thoại trước khi cam kết cả fleet?
Chạy một thiết bị Android duy nhất trên iProxy.online trong hai ngày, không cần thẻ. Đo hành vi cell pin dưới lưu lượng truy cập proxy thực tế, foreground service vẫn sống, pin không bao giờ float ở 100% nếu bạn giới hạn đúng, rồi mới quyết định số lượng thiết bị hợp lý.
Bắt đầu dùng thử miễn phí 48 giờ

Khi nào nên cho điện thoại nghỉ hưu

Dù chăm sóc tốt đến đâu, pin vẫn là vật tư tiêu hao. Ngưỡng nghỉ hưu thực tế cho một điện thoại proxy là khi dung lượng tụt xuống dưới khoảng 70% giá trị ban đầu. Dưới ngưỡng đó, ba việc thường xảy ra:

  • Điện áp tụt mạnh hơn dưới tải, gây rớt kết nối không liên tục, đặc biệt trong các đợt tăng lưu lượng truy cập.
  • Sel nóng lên nhanh hơn, đẩy nhanh quá trình tự thoái hóa.
  • Phồng vật lý trở nên rất có thể. Một cell pin phồng có thể bung màn hình, nắp lưng, hoặc trong trường hợp hiếm là thủng và cháy.

Hầu hết điện thoại Android báo cáo sức khỏe pin trong cài đặt hoặc qua ADB (dumpsys battery). Một người vận hành proxy chạy fleet nên theo dõi sức khỏe hàng tháng và luân chuyển điện thoại ra trước khi bắt đầu phồng. Một điện thoại nghỉ hưu ở 70% dung lượng rồi bán lại hoặc tái sử dụng là một khoản chi phí có kế hoạch; một điện thoại phồng đến mức bung màn hình ở 50% là một khoản chi phí có kế hoạch cộng với một thiết bị hỏng hoàn toàn. Chọn đúng phần cứng ngay từ đầu giúp ích ở đây: danh sách thiết bị được khuyến nghị của iProxy theo dõi các model có hỗ trợ hệ điều hành dài hạn, menu pin dễ đoán, và giới hạn 80% tích hợp giúp mọi thứ trong bài viết này dễ hơn.

Các con số tham chiếu

Những khuyến nghị trong bài viết này (giới hạn ở 80%, tránh float 100%, sạc chậm, quản lý nhiệt độ, cấu hình Android để nó không cắt ngang proxy) không phải là best practice tùy tiện. Mỗi điều tương ứng với một cơ chế thoái hóa cụ thể, tăng theo cấp số nhân với điện áp hoặc nhiệt độ: phát triển SEI, hòa tan kim loại chuyển tiếp khỏi cực dương, oxy hóa điện ly, mở rộng nhiệt độ Arrhenius. Các cell pin thực sự nhạy với điện áp và nhiệt độ, theo cách mà chỉ báo phần trăm trên màn hình không hé lộ.

Hai mốc tham chiếu để neo chi phí-lợi ích. Hãy coi chúng là ước lượng dùng cho hoạch định fleet, không phải bảo đảm cho mọi hóa học cell pin: mốc cơ sở đến từ các bảng lưu trữ và điện áp sạc của BU-808, trong khi kịch bản proxy 24/7 thêm các biến nhiệt độ, sạc nhanh, và Android không người trông từ thực tế lên trên.

  • Một điện thoại proxy 24/7 cấu hình Android mặc định, cắm sạc nhanh, nằm ở 100% suốt thời gian, trong một chồng máy nóng: thường mất 30 đến 40% dung lượng ban đầu trong 12 tháng.
  • Cũng điện thoại đó, giới hạn ở 80%, sạc chậm qua smart plug, với các trình tiết kiệm pin của hệ điều hành bị tắt và các kẻ giết pin OEM được whitelist, trong phòng 22°C có luồng khí: thường giữ được 90% trở lên dung lượng ban đầu sau 12 tháng, và nhiều khả năng vẫn trên ngưỡng nghỉ hưu 70% sau 36 tháng.

Chi phí cấu hình nhỏ: một smart plug mỗi thiết bị, một lần kiểm toán cài đặt cho mỗi model điện thoại, cộng với các toggle theo app và theo hệ thống được bao quát trong hướng dẫn Không bị hạn chế theo apphướng dẫn trình tiết kiệm pin phía hệ thống . Chênh lệch chi phí đầu tư giữa thay điện thoại mỗi 12 tháng và thay mỗi 30 đến 36 tháng tăng tuyến tính theo quy mô fleet, và trên bất kỳ fleet nào trên năm thiết bị, nó hoàn vốn thời gian cấu hình trong quý đầu tiên.

Frequently Asked Questions

Vì sao pin điện thoại chạy mobile proxy 24/7 chai nhanh hơn nhiều so với điện thoại dùng thường ngày?
Do lão hóa theo thời gian ở mức pin (SoC) cao. Một chiếc điện thoại luôn cắm sạc nằm ở khoảng 4,20V suốt nhiều giờ mỗi ngày, và quá trình hình thành SEI cùng phản ứng oxy hóa điện ly tăng theo cấp số nhân với điện áp. Ở mức float 100% tại 25°C, một cell pin lithium-ion thông thường mất khoảng 20% dung lượng mỗi năm dù không làm gì khác. Nếu giữ ở 50% SoC trong cùng điều kiện, cell pin đó chỉ mất khoảng 4% mỗi năm. Khác biệt hoàn toàn nằm ở cái giá phải trả khi nằm ở điện áp cao.
Khoảng sạc tốt nhất cho điện thoại mobile proxy 24/7 là bao nhiêu?
Khoảng từ 20% đến 80% mức pin (SoC). Dưới 20%, cấu trúc tinh thể cực dương trở nên không ổn định; trên 80%, điện áp vượt qua điểm knee ở khoảng 4,05V và tốc độ hình thành SEI tăng nhanh gấp hai đến ba lần. Một chu kỳ vi mô 79→80% diễn ra quanh 4,00V và rất nhẹ nhàng; một chu kỳ vi mô 99→100% diễn ra quanh 4,20V lại rất khắc nghiệt. Cùng là dao động 1% trên màn hình, nhưng hóa học bên trong cell pin khác xa nhau.
Sạc đầy 100% có thật sự làm pin điện thoại nhanh chai, hay đó chỉ là tin đồn?
Hoàn toàn có thật và đo lường được. Bảng điện áp sạc BU-808 của Battery University tóm tắt quy tắc thực hành: mỗi 0,10V giảm xuống dưới 4,20V/cell làm chu kỳ sạc tăng gấp đôi. Hạ ngưỡng trên từ 4,20V (100%) xuống khoảng 4,05V (80%) đủ để đưa một điện thoại proxy 24/7 từ chu kỳ thay máy mỗi năm sang nhiều năm sử dụng, miễn là nhiệt độ và các tính năng diệt pin của hệ điều hành cũng được kiểm soát.
Smart plug có thật sự giúp kéo dài tuổi thọ pin điện thoại trong proxy farm không?
Có, khi được dùng để bật/tắt sạc luân phiên giữa khoảng 30% và 80% thay vì cắm sạc liên tục. Một chiếc smart plug Wi-Fi giá $5–15 (TP-Link Tapo, Sonoff, hoặc bất kỳ nền tảng nào hỗ trợ Home Assistant hay MQTT) chạy script chu kỳ sạc có thể tăng gấp đôi hoặc gấp ba tuổi thọ dịch vụ của pin so với điện thoại bị bỏ mặc float ở 100% vĩnh viễn. Công thức phổ quát là kết hợp smart plug với một script ADB nhỏ đọc SoC từ điện thoại.
Khi nào nên cho một điện thoại mobile proxy nghỉ hưu trước khi pin gây vấn đề?
Khoảng 70% dung lượng ban đầu. Dưới ngưỡng đó, điện áp tụt mạnh hơn khi tải nặng (gây rớt kết nối proxy trong các đợt tăng lưu lượng truy cập), cell pin nóng lên nhanh hơn (đẩy nhanh quá trình tự thoái hóa), và nguy cơ phồng pin rất cao. Một điện thoại nghỉ hưu ở 70% dung lượng rồi bán lại hoặc tái sử dụng là chi phí có kế hoạch; một điện thoại phồng đến mức bung màn hình ở 50% là chi phí có kế hoạch cộng với một thiết bị hỏng hoàn toàn.