Очевидно, что Android запускает приложения в режиме «песочницы» из соображений безопасности, но если у меня есть доступ с правами root и shell на устройстве Android, могу ли я рассматривать его как обычный дистрибутив Linux и запускать любую программу, которую я могу загрузить и установить (при условии, что совместимость архитектуры / оборудования)? Есть ли у Android какие-либо ограничения на уровне системы или ядра, которые бы ограничивали определенные вещи или делали его несовместимым с обычными настольными дистрибутивами Linux?

РЕДАКТИРОВАТЬ: Действительно, мой вопрос не был написан очень хорошо. Позвольте мне быть более конкретным:

Могу ли я запустить любой скомпилированный код, если он совместим с аппаратной архитектурой?

2 ответа2

1

Чтобы ответить на конкретную часть вашего вопроса:

Могу ли я запустить любой скомпилированный код, если он совместим с аппаратной архитектурой?

Да, ты можешь. Тем не менее, вы можете сделать это даже без рута - при условии, что это APK. APK может содержать изначально скомпилированный код и может быть установлен без прав root. Чтобы создать APK с собственным кодом, вы можете использовать "Native Development Kit" (NDK), который можно бесплатно загрузить.

Конечно, нативно скомпилированному коду не разрешается делать определенные вещи (например, удалять ОС), если он не запущен от имени пользователя root. При запуске с правами root код сможет делать практически все, как и в других ОС, таких как Linux или Windows.

Для получения дополнительной информации о нативном коде на Android также см. Этот вопрос: ограничения Android NDK?

0

Чтобы ответить на часть вашего вопроса, вы можете сделать это без рута. Любой APK можно установить. (Ну не совсем каждый APK, но не в этом суть)

Root позволяет вам использовать специальные разрешения для действий, которые вы не смогли бы сделать иначе. Примером является пользовательский файл хостов, или альтернативный аудиодрайвер, или удаление элементов системного раздела, которые обычно не могут быть удалены.

Что касается ядра, в зависимости от того, что именно вы хотите сделать, вам может понадобиться скомпилировать или прошить собственное ядро, которое обладает желаемыми возможностями.

Я не уверен, почему вы пытаетесь сравнить Android с настольными дистрибутивами Linux ...

Этот ответ может быть расплывчатым, но при всем уважении ваш вопрос также неясен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .