Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are certain permissions hidden in developer.android.com

Android permissions are listed here:

Manifest.permission http://developer.android.com/reference/android/Manifest.permission.html

In AndroidManifest.xml at https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml, there are few extra permissions that are not listed in the Manifest.permission.
These hidden permission come with the @hide in thir description in AndroidManifest.xml.

Why there permissions are hidden?
Can these permissions still be used by applications if it is allowed for third party applications?

like image 324
Faheem Avatar asked Nov 02 '22 05:11

Faheem


1 Answers

Those type of permissions are for core system applications (from manufacturers) and/or low-level enough to be AOSP-specific.

Example:

<!-- @hide Allows low-level access to tun tap driver -->
<permission android:name="android.permission.NET_TUNNELING"
    android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
    android:protectionLevel="signature" />

This permission is reserved for Android's AOSP source code. It falls under SYSTEM_TOOLS permission group and can only be used when signed with the same signature as the OS.

The API team simply decided not to expose this permission, and I doubt anyone (except core system applications) can use them or even declare them be using them -- hidden APIs = private APIs.

like image 74
shkschneider Avatar answered Nov 15 '22 03:11

shkschneider