Как перепаковать и распаковать System.new.dat (Android 5.0+)

В этом руководстве мы рассмотрим действия по распаковке, перепаковке и распаковке System.new.dat и связанных с ним файлов. Начиная с Android 5.0 Lollipop, в том, как компилируются ПЗУ, произошли некоторые изменения. Вплоть до Android 4.4 KitKat, если вы извлекли какое-либо пользовательское ПЗУ или стандартное ПЗУ, вы могли заметить, что все файлы в папке / system были несжатыми и легко доступны.

Даже если они были сжаты (в формате ext4), они были помещены в файл system.img. В обоих этих случаях все эти файлы легко доступны или читаемы. Например, такие файлы, как приложение, фреймворк, были легко видны и на них можно было действовать в соответствии с требованиями.

Однако с появлением Android 5.0 и более поздних версий все изменилось. Это связано с тем, что размер ПЗУ начал увеличиваться с появлением новых дополнений, и в результате стало еще более необходимо их дальнейшее сжатие.

В результате новые ПЗУ Android обычно следовали этому шаблону сборки: файл aboot.img, file_contexts, которые были связаны с SELinux, META_INF, работающий с папками, содержащими скрипты, system.new.dat, который на самом деле является сжатым / system раздел.

Кроме того, есть файл system.patch.dat для обновлений по беспроводной сети и system.transfer.list. Сегодня мы рассмотрим шаги по распаковке этого файла system.new.dat. Так что без дальнейших церемоний, давайте проверим шаги.

Как распаковать файл System.new.dat

Файл сценария обновления теперь использует новую функцию, которая называется block_image_update. Аналогично, цель этой функции распаковать все необходимые файлы. Кроме того, есть system.transfer.list.

Источник: Блоги Google

Как объясняет Google, целью этого файла является текстовый файл, содержащий команды для передачи данных из одного места в другое в целевом разделе. Имея это в виду, вот необходимые шаги для распаковки нового файла system.new.dat. Но перед этим обязательно скачайте необходимые файлы по ссылке ниже:

  1. Прежде всего, мы воспользуемся двоичным файлом sadt2img.py (представлен в разделе загрузок). Используйте следующую команду: sdat2img.py <transfer_list> <system_new_file> <system_ext4>
  2. Давайте разберемся, что означает каждый из этих терминов:
    • sdat2img.py: файл изображения, скрипт которого написан на Python.
    • Transfer_list = вход, system.transfer.list из сжатого ПЗУ
    • system_new_file = ввод, system.new.dat из сжатого ПЗУ
    • system_ext4 = вывод файла ext4 необработанного изображения
  3. Вот один из примеров приведенной выше команды на практике: sdat2img.py system.transfer.list system.new.dat system.img
  4. Приведенная выше команда выдаст вам файл my_new_system.img в качестве вывода. Этот файл является необработанным файлом изображения ext4.

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

  1. Смонтируйте файл образа ext4 в выходную папку, используя следующую команду: sudo mount -t ext4 -o loop system.img output/
  2. Теперь вы должны увидеть папку Output с файлом изображения ext4. Теперь вы можете легко изменять / редактировать / удалять файлы в этой папке.
  3. Далее, теперь мы должны сжать файл обратно в необработанное изображение ext4. Для этого нам понадобится двоичный файл make_ext4fs. Убедитесь, что у вас есть файл file_contexts (из ПЗУ) внутри пути make_ext4fs. Теперь введите следующую команду: ./make_ext4fs -T 0 -S file_contexts -l 1073741824 -a system system_new.img output/
  4. Это даст вам новый необработанный файл изображения ext4 с именем system_new.img.
  1. В этом разделе распаковки файла system.new.dat произойдет преобразование файла. Поэтому, чтобы преобразовать файл ext4 в файл Sparse Image, воспользуйтесь бинарным файлом img2simg. То же самое можно скачать с здесь.
  2. Вот как это можно использовать: img2simg <raw_image_file> <sparse_image_file>
  3. Результатом вышеупомянутой команды будет новый файл разреженного изображения.
  1. На последнем этапе распаковки файла system.new.dat мы будем преобразовывать файл разреженных изображений в файл разреженных данных. Теперь, когда вы скачали бинарный файл img2sdat, вот как его использовать: ./img2sdat.py <system_img>
  2. Затем убедитесь, что переименовали к имени входного файла, который вы получили на шаге 3. Теперь у вывода будут файлы system.patch.dat и system.new.dat, которые теперь вы можете поместить в свой ROM.

Вывод

Итак, на этом мы завершаем руководство по шагам распаковки файла system.new.dat. Дайте нам знать ваши взгляды на то же самое в разделе комментариев ниже.

Оцените статью
Хитрости и советы по настройке, управлению приложений и гаджетов