Как настраивать ядро андроид

Как настраивать ядро андроид

Для функционирования программы необходимы права root пользователя.

Краткое описание:
Программа для тонкой настройки ядра.
Описание:

Требуется Android: 4.0.3+
Русский интерфейс: Да

Сообщение отредактировал ste ric — 21.04.20, 16:14

Почему такое странное название? Мне кажется, разработчик перепутал буквы во втором слове.

Довольно неплохая альтернатива 3C Toolbox’у, ещё бы генератор энтропии, пару фишек из Gravity Box (ну чтоб отдельно не ставить) и прога номер один будет. А так, пока оставлю

Сообщение отредактировал Rhym3 — 22.02.15, 17:33

Сообщение отредактировал vadeus — 21.03.15, 20:18

Скачать : Kernel_Adiutor_0.8.7.apk ( 1.81 МБ )

Скачать : Kernel_Adiutor_0.8.8.3.apk ( 1.7 МБ )

Kernel Adiutor 0.8.8.1: Kernel_Adiutor_0.8.8.1.apk ( 1.85 МБ )

Kernel Adiutor 0.8.8: Kernel_Adiutor_0.8.8.apk ( 1.84 МБ )

Сообщение отредактировал tostep — 30.03.15, 07:35

У меня тоже нет пункта «Display». Вероятно, Kernel Adiutor считает, что установленное ядро не поддерживает изменение цвета.

Kernel Adiutor обновился до версии 0.8.8.3.

Здравствуйте, куда написать, чтоб добавили в эту программу цветовой профиль из Uber Kernel?
Называется «Joe«

blue_negative=»0 12 19 30 39 48 56 72 83 105 118 126 121 114 109 102 93 73 63 54 40 33 20″
blue_positive=»0 12 19 30 39 48 56 72 83 105 118 130 121 115 114 102 82 76 63 54 40 33 20″
green_negative=»0 12 19 30 39 54 61 78 84 107 123 132 117 110 108 97 90 71 61 52 45 37 21″
green_positive=»0 12 19 30 39 54 61 78 84 107 121 130 119 112 107 99 76 72 57 50 45 37 21″
red_negative=»0 12 19 30 39 48 56 72 83 105 121 126 119 112 107 99 91 71 63 53 44 36 22″
red_positive=»0 12 19 30 39 48 56 72 83 105 121 134 119 113 110 98 78 72 59 50 44 36 22″
white_point=»28″

Скачать : Kernel_Adiutor_0.9.3.1.apk ( 1.93 МБ )

Kernel Adiutor 0.9.3: Kernel_Adiutor_0.9.3.apk ( 1.86 МБ )

Kernel Adiutor 0.8.9.5.2: Kernel_Adiutor_0.8.9.5.2.apk ( 2.03 МБ )

Kernel Adiutor 0.8.9.5: Kernel_Adiutor_v0.8.9.5.apk ( 1.98 МБ )

Сообщение отредактировал tostep — 05.05.15, 07:54

Источник

Режимы процессора (ядра) на Андроид и планировщик I/0

вкл. 21 Март 2015 . Опубликовано в Android — Общее

Режимы процессора (ядра) на Андроид и планировщик I/0. Многие кто получил root права, начинают всячески модернизировать Android, а также разгонять процессор смартфона или планшета. Для того чтобы правильно его разгонять необходимо знать режимы Android ядра и планировщик I/0.

Чем регулировать производительность Android?

Регулировать тактовую частоту изменять режимы Android ядра и планировщик I/0 можно стандартными средствами в прошивках CyanogenMod, в приложение SetCpu, Tasker, Antutu CPU, Tegrak OverClock и другие. Прежде всего вам будут необходимо получить root права.

Режимы Android ядра

Если говорить правильно о режимах Android ядра то правильно будет называть —алгоритмы управления частотой процессора или kernel CPU governor. Не все режимы которые здесь перечислены могут быть в вашем Android устройстве. Android работает на ядре Linux .

Какие бывают CPU governor

1: OnDemand
2: OndemandX
3: Performance
4: Powersave
5: Conservative
6: Userspace
7: Min Max
8: Interactive
9: InteractiveX
10: Smartass
11: SmartassV2
12: Scary
13: Lagfree
14: Smoothass
15: Brazilianwax
16: SavagedZen
17: Lazy
18: Lionheart
19: LionheartX
20: Intellidemand
21: Hotplug
22: Wheatley
23: Lulzactive
24: AbyssPlug
25. BadAss
26. Ktoonservative
27. AssWax
28. Sleepy
29. Hyper
30. SmartassH3
31. Smartmax

Подробно о каждом режиме

OnDemand — «нейтральный» режим работы ядра, используется по умолчанию во многих Android устройствах. В данном режиме сбалансирована производительность и потребление энергии, но к сожалению нет режима энергосбережения.

Читайте также:  Бен 10 для андроида

OndemandX — улучшенная версия ядра ondemand, с добавлением профиля для сна и пробуждения. Качество его работы во многом зависит от планировщика I/0.

Performance — «производительный» режим ядра, как вы поняли по названию. В данном говернере (режиме) процессор работает практически всегда на максимальной частоте или максимальной. Включается когда устройство на зарядке. Для повседневного использования не подходит, так быстро садит батарею.

Powersave — «энергосберегающий» режим ядра. В отличие от Performance очень медленно и поднимает частоту ядра, точней практически не поднимает и работает на самой минимальной частоте. Использовать данный режим возможно только при выключенном экране, для сохранения энергии. Для повседневного использования не подходит, так как Android становиться не отзывчивым или зависает.

Conservative — «энергосберегающий» режим ядра. В 2 раза медленней ondemand поднимает тактовую частоту процессора. При одинаковых частотах в 2 раза уступает производительности ondemand. Без нагрузки устанавливает минимальную частоту процессора. Рекомендуется использовать также когда выключен или включается экран.

Userspace — «нейтральный» режим работы ядра. Настраивает сам пользователь. Встречается очень редко.

Min Max — «нейтральный» режим работы ядра. Модифицированный режим ядра Conservative, но в отличие его более производительный. Использует или максимальную или минимальную частоту ядра, промежуточных нет!

Interactive — «производительный» режим ядра. Модифицированный режим ядра ondemand, который быстрее изменяет частоту ядра, но в отличие от ondemand, разрешается проводить больше времени на максимальной частоте. Поэтому менее энергоэффективный.

InteractiveX — «производительный» режим ядра. Как видно из названия модифицированный режим ядра Interactive. Более энергосберегающий.

Smartass — «производительный» режим ядра. Модифицированный режим ядра InteractiveX. Очень популярен у пользователей Android.

SmartassV2 — «производительный» и «энергосберегающий» режим ядра. Модифицированный режим ядра Smartass, точней вторая его версия. Многие называют его идеальным. Возможно оно так есть.

Scary — «производительный» и «энергосберегающий» режим ядра. Модифицированный режим с включениями Smartass и Conservative медленно подымает и медленно опускает частоту процессора, но все же работает чаще на минимальных частотах.

Lagfree — «энергосберегающий» режим ядра. Был создан как альтернатива ondemand. Более экономичный, но в необходимых ситуациях быстро поднимает максимальную частоту. Не рекомендуется использовать в тяжелых играх и просмотре видео.

Smoothass — разрабатывался как альтернатива Smartass. Более производительный, вследствие чего менее энергоэффективный.

Brazilianwax — разрабатывался как альтернатива SmartassV2. Более производительный, вследствие чего менее энергоэффективный.

SavagedZen — «энергосберегающий», разрабатывался как альтернатива Smartass. Более энергоэффективный, вследствие чего менее производительный.

Lazy — режим ondemand с более быстрым поднятием частоты.

Lionheart — «производительный» режим ядра. Похож на Performance, но с более быстрым поднятие частоты.

LionheartX — улучшенный вариант Lionheart с включениями Smartass.

Intellidemand — интеллектуальный вариант OnDemand. Схож с Interactive. Активно подымает частоту в требовательных задачах и плавно в менее требовательных.

Hotplug — очередной вариант OnDemand. Отключает ядра процессора в простое

Wheatley — очередной вариант OnDemand.

Lulzactive — смесь Interactive и Smartass. Увеличивает частоту на шаг при загруженности системы более чем 60%. Уменьшает на шаг если меньше 60%.

AbyssPlug

BadAss — без нагрузки довольно экономичный режим, при появление какой либо большой задачи, быстро поднимает частоту.

Ktoonservative — усовершенствованный вариант Conservative.

AssWax — вариант Interactive.

Sleepy — очередной вариант по достижению производительности и автономности.

Hyper — очередной вариант основной OndemandX

SmartassH3 — предназначен для экономии батареи

Smartmax — представляет собой сочетание между OnDemand и Smartass2 По умолчанию настроен это для экономии заряда батареи.

Какие бывают планировщики I/0

Планировщики I/0 — Планировщики ввода/вывода выполняют две основные операции: слияние и сортировка. Слияние представляет собой процесс принятия двух или нескольких смежных запросов ввода/вывода и объединения их в один запрос. (взято из opennet.ru).

Если сказать в двух словах то это, способы обращения к памяти.

1: Noop
2: Anticipatory
3: CFQ
4: Deadline
5: VR
6: Simple или SIO
7: BFQ

Подробно о каждом планировщике I/0

Noop — самый безопасный и простой планировщик, так как только объединяет запросы но не сортирует.

Читайте также:  Как узнать характеристики андроид смартфона

Anticipatory — выдает запросы тогда, когда предыдущий был обработан, после чего ожидает некоторое время следующий запрос, если его нет, переходит к другому запросу.

CFQ — объединяет задачи в цели и по кругу их обходит. Сбалансированный и производительный вариант для Android.

Deadline — хранит отсортированную очередь на запись, новые запросы сортируются и перемещаются в конец очереди. По своим возможностям превосходит CFQ.

VR — с элементами Deadline. Самый не стабильный планировщик, но все же самый производительный.

SIO — выполняет сначала быстрые запросы, после более емкие. Стабильный, простой и производительный.

BFQ — производительный, но все же хуже чем VR и SIO

Режимы Android ядра и планировщик I/0 стоит использовать

Планировщики — SIO, VR или Noop

Режимы ядра

По сбережению энергии — InteractiveX, Smartass, SavagedZen (conservativ и powersave не учитывались так как для работы они не годятся)

По производительности — SmartassV2, Lionheart, MinMax

Источник

Основы безопасности операционной системы Android. Уровень ядра

Вступление

Самой распространенной операционной системой для смартфонов на сегодняшний день является Android. Но не только этот факт подогревает интерес к ней. Открытость, возможность что-то настроить, подкрутить, и, естественно, сломать тоже в немалой степени способствуют увеличению популярности этой платформы. Я попробую поделиться опытом, как устроена эта операционная система, а так же рассмотреть систему безопасности. Всем, кому интересно, добро пожаловать! В этой статье я рассмотрю безопасность на уровне ядра.

Disclaimer

Термины я буду стараться писать на английком языке, так как боюсь ошибиться в их переводе. Если кто-то знает, как их красиво перевести на русский язык, напишите мне, и я дам перевод этих терминов. Желательно, чтобы у вас под рукой находились исходный код Android (хотя я и буду стараться давать ссылки на файлы в Интернете), потому что я иногда буду давать ссылки на файлы, где находится та или иная функциональность. Как загрузить исходный код, можно почитать здесь или вот в этой статье на Хабре.

Список статей

Стек Android

Ну никуда не деться от этой картинки. Я нашел её на просторах Интернета и нужна она для того, чтобы понять из чего состоит Android. Итак, в стеке Android выделяют четыре уровня (снизу-вверх):

  1. Linux kernel (Ядро Linux)
  2. Native Libraries
  3. Application Framework
  4. Applications (Приложения)

Linux kernel. Как неудивительно это звучит, но изначально, Android Inc. — это стартап. Как и во всех стартапах, в этой компании стояла задача максимально использовать уже существующие решения. Поэтому в качестве ядра этой платформы был выбран Linux из-за его открытости и наличия необходимой функциональности. В Android ядро Linux управляет памятью, процессами, а так же используется в качестве hardware abstraction layer (HAL). Насколько мне известно, в Linux драйвера либо встроены в ядро, либо разработаны в виде загружаемых модулей ядра. Так как в Android загрузка модулей ядра по умолчанию отключена, а если встраивать все драйвера, то ядро очень сильно разрастется, то было принято решение создать промежуточный слой (proxy) между ядром и драйверами, который и назвали HAL. Таким образом, HAL — это просто набор интерфейсов, имплементация которых реализована в драйверах. С другой стороны в ядро были добавлены некоторые системы, которые характерны только для Android систем. На данный момент, они пока не включены в основную ветку ядра Linux, поэтому просто скачать ядро Linux и заменить им ядро Android не получится. Среди них следует выделить, Binder (обеспечивает межпроцессное взаимодействие IPC/RPC), Asynchronous SHared MEMory — Ashmem (драйвер разделяемой памяти), Wakelocks (механизм, который позволяет предотвращать затемнение экрана и/или отключение процессора), Low Memory Killer, Alarm, Logger и т.д.

Native Libraries. К этому слою относятся различные нативные библиотеки, которые необходимы для работы Android. Они так же позаимствованы у open-source сообщества. Среди них мы можем найти SQLite, WebKit и т.д.

Android Framework. К этому слою относится то, с чем мы обычно взаимодействуем, когда пишем наши приложения для Android (PowerManager, ActivityManager, NotificationManager и т.д.).

Читайте также:  Лучшая батарейка для андроид

Applications. Приложения бывают двух типов: те, что поставляются вместе с образом системы (системные) и приложения, которые мы загружаем из маркета или других источников. В первом случае, в устройстве приложения находятся в «/system/app» директории, во втором случае в «/data/app».

Безопасность на уровне ядра

Давайте рассмотрим процесс установки приложения на Android устройство. Существует несколько способов установить приложение на устройство (в общем случае):

  1. Используя приложение PackageInstaller
  2. Используя приложение Android Market
  3. Используя комманду adb install

На рисунке, например, приложение ex1.apk устанавливается с помощью PackageInstaller (используется в случае, если вам, например, по почте прислали приложение и вы хотите его установить с устройства), ex2.apk устанавливается с помощью Android Market (Google Play), и приложение ex3.apk устанавливается с помощью комманды adb install ex3.apk (обычно эта комманда используется разработчиками приложений для установки приложения с компьютера).

Во время установки, Android каждому приложению по умолчанию присваивает уникальные user ID (UID) и group ID (GID), таким образом каждому приложению в этой операционной системе соответсвует свой пользователь. Имя пользователя обычно имеет формат app_x, а идентификаторы пользователя вычисляется по формуле (Process.FIRST_APPLICATION_UID + x), Process.FIRST_APPLICATION_UID равен 10000. Эти идентификаторы приложения не изменяются. Список установленных приложений хранится в файле «/data/system/packages.list» и если у вас рутованый телефон, или вы работаете с эмулятором, то вы можете просмотреть этот файл, используя следующую комманду:

У каждого приложения есть своя домашняя директория, например /data/data/

— имя Android пакета, например com.ex.ex1 Имя Android пакета задается в свойстве package в файле AndroidManifest.xml Эта папка — Internal storage (внутреннее хранилище), директория, где приложение хранит все свои приватные данные, и к которому разработчики приложений получают доступ используя функции Context.getFilesDir() или Context.getDir() У этой папки права доступа определены как drwxr-x—x, т.е. только владелец и пользователи входящие в группу владельцев имеют полный доступ к этой папке. А так как каждое приложение определено как уникальный пользователь, то это означает, что приложения, по умолчанию, не имеют доступа к информации друг друга. Хотя при создании файла во внутреннем хранилище можно явно задать, что этот файл будет MODE_WORLD_READABLE и/или MODE_WORLD_WRITABLE

Кроме того, на уровне ядра уникальные UID и GID каждого приложения используются для разделения доступа к ресурсам системы (память и процессорное время). Таким образом, на уровне ядра для каждого приложения создается своя собственная песочница (Application Sandbox).

С другой стороны, разработчик приложения может указать, что некоторые ЕГО приложения должны иметь один и тот же UID. В AndroidManifest.xml файле для этого есть специальное свойство sharedUserId В этом случае, эти приложения будут иметь доступ к ресурсам друг-друга, но только если они подписаны одним и тем же ключом разработчика.

Некоторые permission (разрешения) так же работают на уровне ядра. Давайте, например, рассмотрим наиболее используемое разрешение android.permission.INTERNET Если приложение запрашивает это разрешение, то Android во время установки дополнительно включает это приложение в специальную группу «inet». Так же работают и некоторые другие разрешения. Список соответствия между этими разрешениями и соответствующими группами можно найти в файле frameworks/base/data/etc/platform.xml:

Список соответствия между именами этих групп и значениями (GID) задан в явном виде в файле system/core/include/private/android_filesystem_config.h в массиве структур android_ids[]:

Таким образом, если приложение пытается подключиться к Интернету, ядро проверяет, находится ли это приложение в группе с идентификатором AID_INET. Если нет, то приложению запрещается доступ. Код этой проверки очень тривиальный:

Заключение

Это моя первая статья на Хабре, так что не судите строго. Если сообществу интересно, то я продолжу в следующих статьях описывать внутренности Android. Я понимаю, что много не знаю, да и времени всегда не хватает, но я постараюсь поделиться тем, что уже пропустил через себя. Надеюсь, что узнаю что-то новое из комментариев! Если кому-то интересна какая-то определенная тема, то пишите в комментариях, постараюсь в будущих статьях учесть ваши пожелания.

Источник

Оцените статью