Сжатие Android

Настройка zRam на LineageOS с помощью модуля Magisk

У меня есть ста­рый смарт­фон Xiaomi Redmi Note 5A (ugglite) 2017 года выпус­ка, кото­рый очень удоб­но исполь­зо­вать в каче­стве тесто­во­го поли­го­на для обкат­ки тех или иных тех­но­ло­гий в «стес­нён­ных» усло­ви­ях. Смарт­фон име­ет все­го 2 гига­бай­та ОЗУ и 16 гигов ПЗУ, а так же Snapdragon 425 с 4 ядра­ми на 1.4 гига­герц, что мало даже для одно­го совре­мен­но­го про­жор­ли­во­го при­ло­же­ния вро­де TikTok. На смар­те был раз­бло­ки­ро­ван загруз­чик и уста­нов­ле­на край­няя на момент напи­са­ния поста вер­сия LineageOS 23.2 с Android 16, без гуг­ло­зон­дов (GAPPS).

LineageOS 23.2 на Xiaomi Redmi Note 5A (ugglite)

Уди­ви­тель­но, но деся­ти­лет­ним смарт­фо­ном в 2026 году мож­но вполне успеш­но поль­зо­вать­ся! Мож­но зво­нить, смотреть/снимать фото/видео, рабо­та­ет нави­га­ция и т.д. Но, конеч­но, чув­ству­ет­ся нехва­точ­ка ОЗУ. Давай­те сгла­дим этот эффект! Нам пона­до­бит­ся уста­нов­лен­ный на устрой­стве Magisk, модуль для него, и фай­ло­вый мене­джер с тек­сто­мым редак­то­ром, спо­соб­ный ходить по ФС с пол­но­мо­чи­я­ми root.

Установка необходимого ПО

Само собой разу­ме­ет­ся, нам нужен Magisk. Будем счи­тать, что он уже уста­нов­лен, т.к. без него мате­ри­ал даль­ше мож­но не читать. Так же нам пона­до­бят­ся пра­ва root, кото­рые так же предо­став­ля­ет Magisk. Кро­ме это­го, нам пона­до­бит­ся фай­ло­вый мене­джер и тек­сто­вый редак­тор, спо­соб­ный пере­ме­щать­ся по фай­ло­вой систе­ме с пра­ва­ми root и редак­ти­ро­вать от име­ни дан­но­го поль­зо­ва­те­ля фай­лы. Всё это может предо­ста­вить фай­ло­вый мене­джер Amaze, кото­рый мож­но уста­но­вить из F‑Droid, тек­сто­вый редак­тор у него встро­ен­ный, что для нас очень удоб­но.

Перед даль­ней­шей рабо­той необ­хо­ди­мо немно­го настро­ить Amaze. Захо­дим в Настрой­ки -> Пове­де­ние. В самом низу вклю­ча­ем «Root Explorer» и выда­ём раз­ре­ше­ние.

Настройка Amaze для работы с root доступом

Настрой­ка фай­ло­во­го мене­дже­ра завер­ше­на.

Установка и настройка magisk-модуля zRam

Вна­ча­ле уста­но­вим модуль.

Будем уста­нав­ли­вать ZRAM Swap Configurator Magisk Module от reiryuki. Он хорош тем, что лег­ко, но в то же вре­мя подроб­но настра­и­ва­ет­ся через тек­сто­вый кон­фи­гу­ра­ци­он­ный файл.

  1. Идём на стра­ни­цу моду­ля на Github в сек­цию Installation Guide & Download Link;
  2. Нахо­дим там ссыл­ку загруз­ки на devuploads.com;
  3. Кача­ем модуль (жмём «Generate download link» -> «Go to Generated link» -> «Download now»). Дол­жен ска­чать­ся zip-архив «ZRAMSwapConfigurator-MagiskModule.zip»;
  4. Про­ши­ва­ем модуль с помо­щью Magisk («Моду­ли» -> «Уста­но­вить из хра­ни­ли­ща»);
  5. Пере­за­гру­жа­ем устрой­ство.

Модуль уста­нов­лен, но настрой­ки по умол­ча­нию остав­лять не будем, а настро­им по-сво­е­му.

После уста­нов­ки модуль созда­ёт в корне фай­ло­вой систе­мы устрой­ства файл «optionals.prop». Редак­ти­ро­вать его нуж­но от име­ни поль­зо­ва­те­ля root.

  1. Откры­ва­ем ФМ Amaze, откры­ва­ем левую штор­ку при­ло­же­ния, в верх­ней части выби­ра­ем «Рут…», тем самым откры­вая в фай­ло­вую систе­му с пра­ва­ми root;
  2. Идём по пути: /data/media/0;
  3. Откры­ва­ем для редак­ти­ро­ва­ния файл optionals.prop с помо­щью Amaze Text Editor.

Файл дол­жен быть пуст. Далее при­ве­ду неко­то­рые основ­ные настрой­ки моду­ля, с пол­ным спис­ком кото­рых мож­но озна­ко­мить­ся в посте в telegram-кана­ле авто­ра:

Зна­че­ниеОпи­са­ние
zram.resize=75%Раз­мер раз­де­ла zRam в про­цен­тах от обще­го раз­ме­ра ОЗУ
zram.resize=512MРаз­мер раз­де­ла zRam мож­но уста­нав­ли­вать в мега­бай­тах (512M) и гига­бай­тах (2G)
zram.resize=0Если нуж­но отклю­чить zRam, уста­нав­ли­ва­ет зна­че­ние раз­ме­ра раз­де­ла в «0»
zram.algo=lz4Алго­ритм сжа­тия дан­ных в раз­де­ле zRam. Совре­мен­ный: zstd, для уста­рев­ших устройств луч­ше выста­вить lz4.
zram.prio=100При­о­ри­тет раз­де­ла zRam над дру­ги­ми раз­де­ла­ми под­кач­ки. 100, что­бы если есть какие-то дру­гие раз­де­лы, при­о­ри­тет был всё рав­но у быст­ро­го zRam.
zram.swps=100Ана­лог sysctl-пара­мет­ра vm.swappiness в Linux. Чем боль­ше зна­че­ние, тем интен­сив­нее систе­ма будет выгру­жать дан­ные из ОЗУ в свап-раз­дел (в нашем слу­чае в zRam). 100 – мак­си­маль­ное исполь­зо­ва­ние, 0 – мини­маль­ное.

Осталь­ные настрой­ки нам менее инте­рес­ны, с ними мож­но озна­ко­мить­ся по ссыл­ке выше.

Итак, фор­ми­ру­ем наш optionals.prop. В моём слу­чае, я хочу иметь раз­мер zRam раз­де­ла раз­ме­ром 75% от все­го раз­ме­ра ОЗУ, хочу исполь­зо­вать ста­рый (но быст­рый) алго­ритм сжа­тия lz4, т.к. устрой­ство у меня так же не новое. Ещё на вся­кий слу­чай хочу уста­но­вить высо­кий при­о­ри­тет раз­де­лу zRam и что­бы систе­ма его как мож­но актив­нее исполь­зо­ва­ла. Ито­го­вый optionals.prop у меня полу­чил­ся такой:

zram.resize=75%
zram.algo=lz4
zram.prio=100
zram.swps=100

Сохра­ня­ем файл. Для при­ме­не­ния изме­не­ний нуж­но повтор­но паро­шить модуль ZRAM Swap Configurator, про­ши­ва­ем и пере­за­гру­жа­ем устрой­ство.

Проверка работоспособности

Что­бы убе­дить­ся, что zRam у нас рабо­та­ет, захо­дим на стра­ни­цу «Моду­ли» в Magisk, в сек­ции с моду­лем ZRAM Swap Configurator нажи­ма­ем кноп­ку «Action» со стре­лоч­кой и видим отла­доч­ную инфор­ма­цию.

Проверка работы zRam модуля в Magisk

Как вид­но выше на скрин­шо­те с Redmi Note 5A, zRam на нём рабо­та­ет: в выво­де ути­ли­ты free (верх­ние строч­ки) в обла­сти «Swap» зна­че­ния отлич­ные от нуле­вых и рав­ны 75% от все­го объ­ё­ма ОЗУ устрой­ства, как я и выста­вил. Так же ниже пока­за­ны мои теку­щие настрой­ки zRam.

Если у вас так же – zRam на вашем устрой­стве успеш­но уста­нов­ле­но, настро­е­но и рабо­та­ет кор­рект­но.

Удаление zRam

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