Trong Android 6, làm thế nào để từ chối quyền truy cập ứng dụng để truy cập mạng?


30

Trong Android 6, người dùng (cuối cùng!) Có khả năng phê duyệt hoặc từ chối các quyền cụ thể đối với một ứng dụng.

Tuy nhiên, tôi không thể tìm cách phê duyệt hoặc từ chối truy cập mạng, thông qua Wi-Fi hoặc qua kết nối dữ liệu di động. Sự cho phép có liên quan xuất hiện trong "Các khả năng ứng dụng khác" và nó chỉ mang tính thông tin - rõ ràng không có cách nào để thay đổi nó.

Dưới đây là một ví dụ với ứng dụng Chess Free:

ảnh chụp màn hình


4
Bạn không thể. Hãy để tôi tìm một nguồn đáng tin cậy nhưng bạn không thể làm điều đó một cách tự nhiên vì nó sẽ ảnh hưởng đến lợi ích của Google rất nhiều (quảng cáo, đó là). Chỉnh sửa: Bạn sẽ thấy bài viết này thú vị: androidpolice.com/2015/06/06/ trên
Firelord

Câu trả lời:


27

Bạn sẽ không thể đạt được thành công thông qua cơ chế gốc của Android.

Cody Toombs tại Android Police đã chỉ ra rất rõ điều này trong bài viết: Android M sẽ không bao giờ yêu cầu người dùng cho phép sử dụng Internet, và điều đó có lẽ đã ổn .

Trong phần Quyền bình thường và nguy hiểm của tài liệu Tổng quan về quyền , Google đã lưu ý:

Quyền được chia thành nhiều cấp bảo vệ.

Có hai cấp độ bảo vệ ảnh hưởng đến các ứng dụng bên thrid: quyền bình thường và nguy hiểm.

  • Quyền bình thường bao gồm các khu vực nơi ứng dụng của bạn cần truy cập dữ liệu hoặc tài nguyên bên ngoài hộp cát của ứng dụng, nhưng ở đó có rất ít rủi ro đối với quyền riêng tư của người dùng hoặc hoạt động của các ứng dụng khác . Ví dụ: quyền đặt múi giờ là quyền bình thường.

    Nếu một ứng dụng tuyên bố trong bảng kê khai rằng nó cần sự cho phép bình thường, hệ thống sẽ tự động cấp cho ứng dụng quyền đó khi cài đặt. Hệ thống không nhắc người dùng cấp các quyền thông thường và người dùng không thể thu hồi các quyền này.

  • Các quyền nguy hiểm bao trùm các khu vực nơi ứng dụng muốn dữ liệu hoặc tài nguyên liên quan đến thông tin riêng tư của người dùng hoặc có khả năng ảnh hưởng đến dữ liệu được lưu trữ của người dùng hoặc hoạt động của các ứng dụng khác. Ví dụ, khả năng đọc danh bạ của người dùng là một quyền nguy hiểm. Nếu một ứng dụng tuyên bố rằng nó cần một sự cho phép nguy hiểm, người dùng phải cấp quyền rõ ràng cho ứng dụng đó.

(Nhấn mạnh của tôi)

Đáng ngạc nhiên hay không, các quyền sau đây nằm trong danh sách Quyền thông thường :

  • CHANGE_NETWORK_STATE - cho phép các ứng dụng thay đổi trạng thái kết nối mạng - tức là dữ liệu di động;
  • CHANGE_WIFI_STATE - cho phép các ứng dụng thay đổi trạng thái kết nối Wi-Fi;
  • INTERNET - cho phép các ứng dụng mở ổ cắm mạng.

Nếu điều đó không đủ, hãy kiểm tra các quyền được quản lý bởi AppOps tại đây . Nếu bạn không tìm thấy sự cho phép của mình được liệt kê ở đó, bạn sẽ không thể làm bất cứ điều gì với nó trong GUI.

Vì các phương pháp thay thế đã được bao phủ rộng rãi trên trang web này, hãy tham khảo:


12
Cảm ơn câu trả lời của bạn. Thật đáng thất vọng khi các tính năng bị tê liệt không phải vì sự bất khả thi về kỹ thuật mà vì lý do thị trường.
dr01

25

Bạn có thể sử dụng NetGuard (xem danh sách Tường lửa Internet của tôi để biết các lựa chọn thay thế khác), hoạt động mà không cần root và cho phép bạn chặn truy cập internet cho các ứng dụng một cách chọn lọc (WiFi hoặc dữ liệu di động và thậm chí luôn luôn hoặc chỉ khi màn hình tắt). Đó là từ nhà phát triển XPrivacy, vì vậy nó phải tốt;)

Netguard Netguard Netguard
NetGuard (nguồn: Google Play ; nhấp vào hình ảnh cho các biến thể lớn hơn)

NetGuard là mã nguồn mở, vì vậy bạn cũng có thể tìm thấy nó tại F-Droid .

Cập nhật: Lưu ý rằng các phiên bản gần đây của Netguard bao gồm Quảng cáo Google cũng như Firebase Analytics - hai điều mà IMHO không có kinh doanh trong ứng dụng tường lửa (hoặc bất kỳ bảo mật nào khác) - rất có thể là lý do nó không còn được cập nhật trên F-Droid repo chính thức (vẫn có sẵn trong tôi với các cảnh báo thích hợp).


1
Biến thể F-Droid của NetGuard thực sự đã thêm chức năng vượt quá mức cho phép trong Cửa hàng Play.
andDevW

Nó có thể chặn quảng cáo trong ứng dụng không?
Người chơi bất tử

1
@ImmortalPlayer nếu một ứng dụng bị từ chối truy cập mạng, nó cũng không thể tải quảng cáo. Vì vậy, câu trả lời cho điều đó sẽ là "có".
Izzy


4

Nếu bạn có quyền truy cập root, bạn cũng có thể sử dụng:

Tôi đã cập nhật thiết bị của mình lên Android 6.0.1 và cho đến bây giờ cả hai dường như đều hoạt động.


3

Truy cập Internet không thể bị từ chối đối với các ứng dụng riêng lẻ trên Android. Quảng cáo là nguồn thu nhập chính của Google.

Tuy nhiên, nếu bạn đang sử dụng Opera Max, bạn có thể hạn chế quyền truy cập internet vào các ứng dụng riêng lẻ. Bạn thậm chí có thể lưu dữ liệu, nhờ vào công nghệ nén của Opera.

Cài đặt Opera Max từ Play Store. Nó hoàn toàn miễn phí và dễ sử dụng. Không cần root.


Cập nhật : Không còn là fan của Opera Max sau khi họ bắt đầu phục vụ quá nhiều quảng cáo.
NVZ

3

Trước một số sự kiện gần đây , tôi muốn cải thiện câu hỏi này bằng cách giới thiệu Triangle của Google. Tải trên APKMirror hoặc APKPure và cài đặt nó với ADB .

Dưới đây là một số tính năng chính.

Dữ liệu di động được sử dụng Yêu cầu cho phép dữ liệu cho các ứng dụng bị chặn Tắt khi bật Wi-Fi Chặn mọi thứ theo mặc định

Đó không phải là VPN, nó chặn quyền truy cập Internet của ứng dụng của bạn. Hãy nghĩ về nó như một sự cho phép mới giống như sử dụng máy ảnh hoặc có quyền truy cập vào vị trí của bạn.


1
Điều này có sử dụng VPN / proxy như các ứng dụng tương tự không? Nó chặn truy cập từ các thư viện bản địa?
hackel

1
@hackel Tôi đã cài đặt nó (phải tải xuống vì nó nói không có sẵn ở nước tôi). Nó yêu cầu tôi kích hoạt VPN. Cũng dường như không chặn WIFI.
Bort

3

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.INTERNETcho 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.xmltập tin

Các packages.xmldanh 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ó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.