Какие приложения нельзя сделать для Android
Хоть и заявляется много где, что приложения под Android абсолютно равны, что от независимых разработчиков, что от Google, что от производителей устройств…, используя одни и те же API — все-таки «не все приложения одинаково …» равные.
Существует электронная подпись приложений сертификатами, которые тоже разграничивают доступ к функциям Android (точнее говоря — запрещают некоторый функционал). Существует как минимум 4 категории доступа, т.е. приложения, подписанные системным сертификатом, использующимся для подписи файлов прошивки аппарата (firmware, ROM) — будут с системными правами доступа, которых обычным приложениям из Play (Market) — не видать как своих … хм… пользователей 🙂
Вот список разрешений, которые доступны только приложениям с системными привилегиями в Android, их описание на английском см. в официальной документации:
android.permission.ACCESS_CHECKIN_PROPERTIES android.permission.ACCESS_SURFACE_FLINGER android.permission.ACCOUNT_MANAGER android.permission.BIND_APPWIDGET android.permission.BIND_DEVICE_ADMIN android.permission.BIND_INPUT_METHOD android.permission.BIND_WALLPAPER android.permission.BRICK android.permission.BROADCAST_PACKAGE_REMOVED android.permission.BROADCAST_SMS android.permission.BROADCAST_WAP_PUSH android.permission.CALL_PRIVILEGED android.permission.CHANGE_COMPONENT_ENABLED_STATE android.permission.CLEAR_APP_USER_DATA android.permission.CONTROL_LOCATION_UPDATES android.permission.DELETE_CACHE_FILES android.permission.DELETE_PACKAGES android.permission.DEVICE_POWER android.permission.DIAGNOSTIC android.permission.FACTORY_TEST android.permission.FORCE_BACK android.permission.GLOBAL_SEARCH android.permission.HARDWARE_TEST android.permission.INJECT_EVENTS android.permission.INSTALL_LOCATION_PROVIDER android.permission.INSTALL_PACKAGES android.permission.INTERNAL_SYSTEM_WINDOW android.permission.MANAGE_APP_TOKENS android.permission.MASTER_CLEAR android.permission.READ_FRAME_BUFFER android.permission.READ_INPUT_STATE android.permission.REBOOT android.permission.SET_ACTIVITY_WATCHER android.permission.SET_ORIENTATION android.permission.SET_PREFERRED_APPLICATIONS android.permission.SET_TIME android.permission.STATUS_BAR android.permission.UPDATE_DEVICE_STATS android.permission.WRITE_GSERVICES android.permission.WRITE_SECURE_SETTINGS
Авторство списка, может быть там и есть неточности, но не только перезагрузка аппарата невозможна из обычного приложения (android.permission.REBOOT), да и я сам уже столкнулся с тем, что установка (android.permission.INSTALL_PACKAGES) и удаление других приложений (android.permission.DELETE_PACKAGES) возможны только в системной программе.
Т.е. приложение с допуском к этим функциям — должно быть подписано сертификатом системы (разработчика устройства), и быть в составе прошивки устройства. Как минимум первое условия почти на 100% для обычного пользователя устройств Андроид — невыполнимо. А программа, которая работает только на одном типе устройств, для которых «слеплена» специальная прошивка — по-моему, почти никому не нужна …