Lời nói đầu
Nó có thể bị trễ, nhưng tôi muốn thêm câu hỏi của riêng bạn vào câu hỏi của bạn, vì sự hoàn chỉnh. Câu trả lời này là một cách chắc chắn để chặn truy cập internet vào một ứng dụng. Nhược điểm? Nó không chặn Ý định, nó bị lỗi và có thể làm cho ứng dụng đích bị sập và nó yêu cầu quyền root .
Nó đã được thử nghiệm và xác nhận để hoạt động lên tới Android 7.1.2.
Cơ sở lý luận
Như những người trả lời khác đã đề cập, bất kỳ ứng dụng nào muốn truy cập internet, đều phải khai báo sự android.permission.INTERNET
cho phép không thể chối cãi trong phạm vi của nó AndroidManifest.xml
. Mặc dù vậy, làm thế nào để Android nhớ những quyền mà ứng dụng yêu cầu? Bằng cách lưu chúng bên trong packages.xml
, một tệp được bảo vệ nằm ở /data/system
.
Không cần phải nói rằng ai đó như chúng tôi có thể quan tâm đến việc chỉnh sửa tệp đã nói, với mục đích thêm hoặc xóa quyền, miễn là họ có quyền root. Đây là cách của chúng tôi để phủ nhận quyền truy cập internet vào một ứng dụng mà không cần VPN hoặc phần mềm tường lửa.
Các packages.xml
tập tin
Các packages.xml
danh sách tập tin tất cả các ứng dụng được cài đặt, cùng với đường dẫn và cho phép của họ. Mỗi ứng dụng được đặt giữa các <package></package>
thẻ; vì câu trả lời của tôi, tôi sẽ nhắm mục tiêu Nova Launcher của TeslaCoil. Các khổ thơ của ứng dụng trong tệp như sau:
<package name="com.teslacoilsw.launcher" codePath="/data/app/com.teslacoilsw.launcher-1" nativeLibraryPath="/data/app/com.teslacoilsw.launcher-1/lib" publicFlags="944258628" privateFlags="0" ft="16075caace8" it="16075cac965" ut="16075cac965" version="53000" userId="10083" installer="com.android.packageinstaller">
<sigs count="1">
<cert index="7" key="3082034d30820235a0030201020204638fbad3300d06092a864886f70d01010b05003057315530530603550403134c726f636b7a35353535204f553d44726f69642046726565646f6d20556e6974204f3d44726f69642046726565646f6d20496e63204c3d556e6b6e6f776e20533d556e6b6e6f776e20433d4c4b301e170d3134313230353030343535375a170d3434313132373030343535375a3057315530530603550403134c726f636b7a35353535204f553d44726f69642046726565646f6d20556e6974204f3d44726f69642046726565646f6d20496e63204c3d556e6b6e6f776e20533d556e6b6e6f776e20433d4c4b30820122300d06092a864886f70d01010105000382010f003082010a0282010100818b312365be3e55f48989d43468880067464eca65aa3ba73305178311fc2a053c143182f6d2ea635b57dc327adf8a5a9b763c03f0a48c38530114e6979358d6bfca37d161ca6fe8bb0d80f061d7b67bc1456cdfc38e0cda2ebd05c48113f701140950f0fe4315de6b95c7504129abb2c1a61f1e4f1229fb83f474dbcd7dc957b84a1b8a2aa0157b223609d77980a3f579c93fbb24a6f9fbb5a8e207cccdf1add616c95c732d5c114c0168fdbd9c00ddf211c2b8886b9498a34f389025802e334f404b7e4eb75f6308f086e5bdac64db10053c7ff8d21a350b941d5394ffbe2bd037139134eb065c2317625e65d3f628aecf7965a0d70b02e68aa8371efd1fe50203010001a321301f301d0603551d0e04160414a4e66b693ecdf3241883e3eed668354e1531ba11300d06092a864886f70d01010b050003820101003992f3f461a290db767911a4a519f035fe0c34e597e2fba2e31371e260bd2fc8f9a93c35e6f06553d02588d2f8453ee784d2ba09a696e66304e3e01f7c6bdf5b2747fc73f79d00379cc94eefa542c8eb308318364df2fa1a9c6a7ef0669d08f7b1f8635d0d4331e2817d5aeb0854760116c29801cf915ef67d5c0e04861cad4fa7b96fe8f9a0baf0cda649cd35a7122142ba38b2d16d9d319a8604a41fe0025d89be87f84ce8fc080ab54c76a96f3d9b70b1a5f5e18e48768e3684bca8a950665e16a6d50cf0045949baebca876d55eeba52ea421f33009872d9d654f8f8caa1bb465d754694d4bf6cb92f3299fbec3781849b37e6ba23ffe3d6c20ecb9bc65d" />
</sigs>
<perms>
<item name="com.android.launcher3.permission.READ_SETTINGS" granted="true" flags="0" />
<item name="com.google.android.c2dm.permission.RECEIVE" granted="true" flags="0" />
<item name="com.teslacoilsw.launcher.permission.C2D_MESSAGE" granted="true" flags="0" />
<item name="android.permission.EXPAND_STATUS_BAR" granted="true" flags="0" />
<item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
<item name="android.permission.INTERNET" granted="true" flags="0" />
<item name="android.permission.ACCESS_NETWORK_STATE" granted="true" flags="0" />
<item name="android.permission.SET_WALLPAPER" granted="true" flags="0" />
<item name="android.permission.SET_WALLPAPER_HINTS" granted="true" flags="0" />
<item name="android.permission.VIBRATE" granted="true" flags="0" />
<item name="android.permission.ACCESS_WIFI_STATE" granted="true" flags="0" />
<item name="android.permission.WAKE_LOCK" granted="true" flags="0" />
</perms>
<proper-signing-keyset identifier="10" />
</package>
Việc thụt lề được báo cáo nguyên văn từ các tập tin.
Thủ tục
Được trang bị kiến thức trên, giờ đây chúng ta có thể tiến hành kiểm tra các quyền của Nova Launcher, được bao bọc giữa <perms></perms>
. Không lâu nữa, chúng tôi sẽ tìm thấy người duy nhất chúng tôi cần chỉnh sửa:
<item name="android.permission.INTERNET" granted="true" flags="0" />
Để từ chối truy cập internet vào ứng dụng một cách hiệu quả, chúng tôi chỉ cần xóa toàn bộ dòng và khởi động lại thiết bị của chúng tôi. Nhận xét nó để sử dụng trong tương lai là vô ích: Android kiểm tra tệp này mỗi lần khởi động và sẽ lọc các bình luận của bạn .
Hạn chế
Thực hiện theo quy trình này sẽ cung cấp cho bạn một ứng dụng không thể giao tiếp với internet theo bất kỳ cách nào. Tuy nhiên, các ứng dụng và phần mềm được mã hóa kém dành cho Marshmallow trở lên có thể gặp sự cố khi cố gắng kết nối với internet , giống như Nova.
Hơn nữa, như Firelord đã chỉ ra, việc cập nhật một ứng dụng khiến các thay đổi trở lại, vô hiệu hóa các nỗ lực của chúng tôi và yêu cầu sự cho phép phải được xóa lại một lần nữa.
Sửa đổi thủ tục này
Để đảo ngược những gì chúng tôi đã làm ở trên, tất cả những gì cần thiết là thêm quyền mà chúng tôi đã xóa lại giữa những người khác và khởi động lại thiết bị.
Khước từ
Tôi không có cách nào liên kết với Nova Launcher hoặc nhà phát triển của nó.