WHY INTERNET PERMISSION IS NEEDED?
...and other mistake usually made by privacy enthusiasts.
Let’s start from the permission denoscription on F-Droid:
- android.permission.INTERNET
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
The highlighted phrases are important:
# First phrase: Allows the app to create network sockets and use custom network protocols.
AM uses this permission for two reasons:
1. To provide ADB over TCP support for the non-root users. ADB over TCP is a custom network protocol that usually runs on port 5555. Therefore, to connect to this port via localhost, AM needs this permission.
2. To execute privileged codeboth on root and ADB mode. AM, being a user app, cannot execute privileged code nor can it access any hidden API. To get away with this limitation, AM runs a server in the privileged environment using
In other words, if you disable Internet permissions, you cannot access these features. AM never connects to the Internet, not even for updating the list of trackers. List of trackers are updated before each release by running a noscript available in the repo. Everything about AM is public (except, of course, my private signing keys but debug keys are also public) and people can build identical releases by following the build instructions provided in the repo.
# Second phrase: so this permission is not required to send data to the internet.
This is probably one of most common mistakes that privacy enthusiasts make. Internet permission is required in order to make socket connection. It can be used to connect to the Internet but that DOES NOT mean that this permission is required in order to connect to the Internet. There are other means by which an app can connect to the Internet without this permission.
...and other mistake usually made by privacy enthusiasts.
Let’s start from the permission denoscription on F-Droid:
- android.permission.INTERNET
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
The highlighted phrases are important:
# First phrase: Allows the app to create network sockets and use custom network protocols.
AM uses this permission for two reasons:
1. To provide ADB over TCP support for the non-root users. ADB over TCP is a custom network protocol that usually runs on port 5555. Therefore, to connect to this port via localhost, AM needs this permission.
2. To execute privileged code
app_process at port 60001 and on the user side, AM connects to this server and execute privileged code remotely from the app.In other words, if you disable Internet permissions, you cannot access these features. AM never connects to the Internet, not even for updating the list of trackers. List of trackers are updated before each release by running a noscript available in the repo. Everything about AM is public (except, of course, my private signing keys but debug keys are also public) and people can build identical releases by following the build instructions provided in the repo.
# Second phrase: so this permission is not required to send data to the internet.
This is probably one of most common mistakes that privacy enthusiasts make. Internet permission is required in order to make socket connection. It can be used to connect to the Internet but that DOES NOT mean that this permission is required in order to connect to the Internet. There are other means by which an app can connect to the Internet without this permission.
f-droid.org
App Manager | F-Droid - Free and Open Source Android App Repository
A fully-featured package manager for android.
App Manager docs is now available in Simplified Chinese! Visit https://muntashirakon.github.io/AppManager/zh-CN/.
Help us translate App Manager at weblate: https://hosted.weblate.org/engage/app-manager
* Translation is still incomplete.
Help us translate App Manager at weblate: https://hosted.weblate.org/engage/app-manager
* Translation is still incomplete.
UnApkm.apk
2.3 MB
UnApkm v1.1
- Fixed not recognising the downloaded APKM files
- Fixed extracting file name if file scheme is used
- Fixed not recognising the downloaded APKM files
- Fixed extracting file name if file scheme is used
SetEdit_v1.1.apk
1.4 MB
SetEdit v1.1
- Migrated to AndroidX
- Day/night theme for supported devices
- Add search button
For the first 3 tables, searching only matches the whole key due to an inherent limitation.
- Migrated to AndroidX
- Day/night theme for supported devices
- Add search button
For the first 3 tables, searching only matches the whole key due to an inherent limitation.
AM Pre-release v2.5.19
- New feature: Profiles. New profiles can be added either by selecting from one of the presets or simply using the plus button (see below)
- New feature: Multiple users. You can visit app details page for multiple users (see below). Multiple user support is also added for batch ops
- New language: French
- [Feature] Added a settings entry to select mode of operations: auto, no-root, ADB, root
- [Feature] Added a settings entry to select app installer (default is App Manager)
- [Feature] Added a settings entry to select app install location (default is auto)
- [Feature] Added debloating profiles as presets
- [Feature] Added the ability to block trackers from the corresponding tag in the app info tab
- [Feature] Prioritize app ops over permissions when available in the uses permission tab
- [Feature] Update toybox to 0.8.4
- [Feature] Update trackers and libraries
- [Fix] Check integrity of the compressed tar files before finalising backup
- [Fix] Fixed auto detection of root/ADB
- [Fix] Fixed custom locale settings which wasn't correctly applied to all app components
- [Fix] Fixed crashes when app details and installer pages are closed before they're loaded
- [Fix] Fixed restoring bundled apps
- [Fix] Update compression method on preference change
Due to some complications, grant/revoking permissions and exporting rules is not working on profiles. Visit https://github.com/MuntashirAkon/AppManager/issues/72 until an official documentation is created.
The components tabs in the app details page is empty for users other than the current user. This will be fixed in a future release.
- New feature: Profiles. New profiles can be added either by selecting from one of the presets or simply using the plus button (see below)
- New feature: Multiple users. You can visit app details page for multiple users (see below). Multiple user support is also added for batch ops
- New language: French
- [Feature] Added a settings entry to select mode of operations: auto, no-root, ADB, root
- [Feature] Added a settings entry to select app installer (default is App Manager)
- [Feature] Added a settings entry to select app install location (default is auto)
- [Feature] Added debloating profiles as presets
- [Feature] Added the ability to block trackers from the corresponding tag in the app info tab
- [Feature] Prioritize app ops over permissions when available in the uses permission tab
- [Feature] Update toybox to 0.8.4
- [Feature] Update trackers and libraries
- [Fix] Check integrity of the compressed tar files before finalising backup
- [Fix] Fixed auto detection of root/ADB
- [Fix] Fixed custom locale settings which wasn't correctly applied to all app components
- [Fix] Fixed crashes when app details and installer pages are closed before they're loaded
- [Fix] Fixed restoring bundled apps
- [Fix] Update compression method on preference change
Due to some complications, grant/revoking permissions and exporting rules is not working on profiles. Visit https://github.com/MuntashirAkon/AppManager/issues/72 until an official documentation is created.
The components tabs in the app details page is empty for users other than the current user. This will be fixed in a future release.
AppManager_v2.5.19.apks
6.6 MB
Bundled app for AM! The size is smaller than the universal APK but contains all the supported variants.
* You can install the app using App Manager. The app will close itself on success
* This is a test release, please report to me if something fails
* You can install the app using App Manager. The app will close itself on success
* This is a test release, please report to me if something fails
AppManager_v2.5.20.apks
6.7 MB
App Manager v2.5.20
Telegram doesn't support extended changelog. View in-app changelog or visit https://muntashirakon.github.io/AppManager/changelog.html for a more helpful changelog.
- New features: Profiles, activity interceptor, signing APK, multi-user, APKM, crash reporter
- New language: French
- Android 11 support
- Installer: Choose install location, installer, APKM
and various bug fixes, minor features and performance improvements.
Telegram doesn't support extended changelog. View in-app changelog or visit https://muntashirakon.github.io/AppManager/changelog.html for a more helpful changelog.
- New features: Profiles, activity interceptor, signing APK, multi-user, APKM, crash reporter
- New language: French
- Android 11 support
- Installer: Choose install location, installer, APKM
and various bug fixes, minor features and performance improvements.
UnApkm_v1.2.apk
2.3 MB
UnApkm v1.2
- Add
- Add UnApkm API for third-party apps
For developers:
Visit here to see how to use the API.
- Add
application/vnd.apkm MIME- Add UnApkm API for third-party apps
For developers:
Visit here to see how to use the API.
App Manager v2.5.21 Pre-release
- New language: Farsi (incomplete)
- [Feature] Added about device in the settings page
- [Feature] Added an install button in the scanner page for the external APK files
- [Feature] Added the option to set custom app ops and modes in the three-dots menu
- [Feature] Added shortcut support for Android N_MR1 or less
- [Feature] Display app ops associated with the declared permissions in the app ops tab
- [Feature] Display feature availability and version number in the uses features tab
- [Feature] Display icon for uninstalled but backed up apps in the main page
- [Feature] Display tracker count in a new line instead of under brackets in the 1-click ops page
- [Feature] Improved app install time for ADB users
- [Feature] Migrate to Binder (incomplete)
- [Feature] Renamed “deny app ops” to “set mode for app ops”, added the option to specify modes in 1-click ops page
- [Feature] Reordered backup options along with denoscription for each items
- [Feature] Updated ADBLib
- [Feature] Updated trackers and libraries
- [Fix] Fixed crashes of the app ops tab in Android 11
- [Fix] Fixed crashes of the app ops tab in MIUI
- [Fix] Fixed prompting users for ADB permission repeatedly when auto is the mode of operation
- [Fix] Hide launch and shortcut buttons from the activities tab for external APK
- [Fix] Use both package mode and UID mode for app ops from Android 6
- [Fix] Use data folder to store server/IPC related files
- New language: Farsi (incomplete)
- [Feature] Added about device in the settings page
- [Feature] Added an install button in the scanner page for the external APK files
- [Feature] Added the option to set custom app ops and modes in the three-dots menu
- [Feature] Added shortcut support for Android N_MR1 or less
- [Feature] Display app ops associated with the declared permissions in the app ops tab
- [Feature] Display feature availability and version number in the uses features tab
- [Feature] Display icon for uninstalled but backed up apps in the main page
- [Feature] Display tracker count in a new line instead of under brackets in the 1-click ops page
- [Feature] Improved app install time for ADB users
- [Feature] Migrate to Binder (incomplete)
- [Feature] Renamed “deny app ops” to “set mode for app ops”, added the option to specify modes in 1-click ops page
- [Feature] Reordered backup options along with denoscription for each items
- [Feature] Updated ADBLib
- [Feature] Updated trackers and libraries
- [Fix] Fixed crashes of the app ops tab in Android 11
- [Fix] Fixed crashes of the app ops tab in MIUI
- [Fix] Fixed prompting users for ADB permission repeatedly when auto is the mode of operation
- [Fix] Hide launch and shortcut buttons from the activities tab for external APK
- [Fix] Use both package mode and UID mode for app ops from Android 6
- [Fix] Use data folder to store server/IPC related files