Переразбивка Внутренней Памяти

Материал из Toshiba AC100 wiki
Версия от 07:43, 11 июля 2015; Evglit (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

почитать комменты к коду, описывается таблица разделов и nvtegra почитать, описывается BCT

Предисловие

Прежде чем выполнять команды, (1) трижды перечитайте статью, (2) убедитесь, что оно вам действительно надо, и (3) сделайте бэкап. Всё выполняется на свой страх и риск и бла-бла-бла.

Перед переразбивкой убедитесь, что используете правильно работающую версию nvflash. Подробнее тут.

Суть изменений

<range type="comment" id="637358">В общем</range id="637358">, вся суть переразбивки заключается в вытягивании таблицы разделов, ее редактировании и засовывании обратно в тошку. Зачем это все нужно?

Во-первых, получить больше места. Ибо на большинстве наших Тошек внутренней памяти (emmc) всего-навсего 8 гб, и все эти жалкие 8 гб разбиты на 14 разделов. Даже с учетом предустановленного Андроида это является бредом.

Во-вторых, дабы во всяких там ваших Убунтах после загрузки не появлялось over 9000 примонтированных дисков (да, это можно поправить, используя NVTEGRA_HIDE_PARTS, но, как тут принято говорить, не кошерно просто их прятать, поэтому мы будем сливать все 14 разделов в 7).

Ну и в-третьих, если уж вы решитесь на переразбивку, то это как минимум доставит вам некое красноглазое удовольствие.

До выполнения этой инструкции на флешке Toshiba AC100 будет: (взято отсюда)

part # name size description remarks
2 BCT 3 145 728 (3 MB) boot config table
3 PT 524 288 (512 kB) partition table
4 EBT 2 097 152 (2 MB) bootloader
5 SOS 5 242 880 (5 MB) recovery partition
6 LNX 8 388 608 (8 MB) linux kernel and initrd kernel starts at 0x800

initrd starts at 0x20E800

7 MBR 1 048 576 (1 MB) master boot record
8 APP 314 572 800 (300 MB) applications (/system)
9 CAC 419 430 400 (400 MB) cache (/cache)
10 MSC 2 097 152 (2 MB) misc (/misc)
11 EM1 524 288 (512 kB)
12 UBA 1 294 991 360 (1235 MB) user data (/data)
13 EM2 524 288 (512 kB)
14 UDB 5 950 144 512 (5674.5 MB) user data (/storage)

После выполнения этой инструкции будет 8 разделов (слева - нумерация с точки зрения Тошибы):

2: BCT
3: PT
4: EBT
5: SOS
6: LNX (8 Мб)
7: MBR
8: CAC (1200 Мб)
9: APP (всё остальное, около 6,3 Гб.)

Альтернативный вариант: Файл Файл:Part.cfg(отличается от выложенного ниже), будет 7 разделов, должно работать на Тошибе с любым размером флешки:

2: BCT
3: PT
4: EBT
5: SOS
6: LNX (8 Мб)
7: MBR
8: APP (всё остальное, на 8 Гб флешке - около 7,5 Гб.)

Фишка: в последней секции файла part.cfg в поле size вместо конкретного числового значения можно подставить максимально возможное, тогда оно отформатируется с максимально возможным размером:

''[partition]''
''name=APP''
''id=8''
''type=data''
''allocation_policy=sequential''
''filesystem_type=basic''
'''''size=0xFFFFFFFFFFFFFFFF''' #исходно было 7353139200, вроде''
''file_system_attribute=0''
''partition_attribute=0''
''allocation_attribute=8''
''percent_reserved=0''

Вся соль сводится к запуску вот такого вот скрипта:

#!/bin/bash

sudo ./nvflash --bct org.bct --setbct --bl ../prebuilt/fastboot.stock.bin --configfile part.cfg --create --verifypart -1 --go

Ну а дальше подробнее, что, зачем и как. Он есть только под линух, но можно и отредактировать какой-нибудь похожий .bat для винды.

Приступим к извращениям

1 Заливка бутлоадера

Замечание: что из себя представляет nvflash подробнее расписано тут Linux:

sudo ./nvflash --bl ../prebuilt/fastboot.stock.bin --go

Windows:

nvflash --bl bootloader.bin --go

2. Конфиг партиций

Далее нам понадобится config. (Хм..а в винде он выглядит иначе, из-за Unix-символов перевода на новую строку) Файл состоит из перечня разделов, их типов, и собственно размеров.

3. BCT

Следующий ингредиент это [org.bct org.bct], кусок бутлоадера, который вроде как (после тщательнейшего 5-минутного изучения логов за год с чем-то) для всех моделей одинаков (даже для 32-гиговых), так что можно не волноваться.

4. Обновляем BCT

Итак, благодаря bmw, и, может, еще кому-то, мы получаем нужный скрипт для заливки всего этого в тошку:

#!/bin/bash

sudo ./nvflash --bct org.bct --setbct --bl ../prebuilt/fastboot.stock.bin --configfile part.cfg --create --verifypart -1 --go

Для Windows: (можно использовать готовый комплект для прошивки андроида и подредактировать один из батников) Создаем part.cmd:

nvflash\nvflash.exe --bct org.bct --setbct --bl nvflash\fastboot.stock.bin --configfile part.cfg --create --verifypart -1 --go

Грабли: На винде после переразбивки для последующих шагов требуется подать загрузчику org.bct. Возможно это косяк при использовании bat файлов.

nvflash\nvflash.exe --bct org.bct --setbct --bl nvflash\fastboot.stock.bin --go
... далее команды

5. Возвращаем EBT

Выключаем тошку, снова переводим в режим прошивки и заливаем EBT из бэкапа:

sudo ./nvflash -r --rawdevicewrite 1792 1024 tac100-part-4.img --go

6. Шьем новое ядро

После этого заливаем нужное нам ядро в 6 раздел, но с указанием поиска rootfs на 7-ом, т.к на нем будет вся наша система. Сейчас самый удобный и актуальный путь сделать это - зайти на Сайт bmw и скачать ядро с пометкой p7, вся заливка делается так:

sudo ./nvflash --bl ../prebuilt/fastboot.stock.bin --download 6 /путь/к/img/образу

P.S. Вывод команды прошивки, если все хорошо:

Nvflash started
rcm version 0X20001
System Information:
   chip name: t20
   chip id: 0x20 major: 1 minor: 2
   chip sku: 0x8
   chip uid: 0x161c10c74420f0d7
   macrovision: disabled
   hdcp: enabled
   sbk burned: false
   dk burned: false
   boot device: emmc
   operating mode: 3
   device config strap: 1
   device config fuse: 0
   sdram config strap: 1

sending file: org.bct
- 4080/4080 bytes sent
org.bct sent successfully
downloading bootloader -- load address: 0x108000 entry point: 0x108000
sending file: ../prebuilt/fastboot.stock.bin
| 936016/936016 bytes sent
../prebuilt/fastboot.stock.bin sent successfully
waiting for bootloader to initialize
bootloader downloaded successfully
setting device: 2 3
creating partition: BCT
creating partition: PT
creating partition: EBT
creating partition: SOS
creating partition: LNX
creating partition: MBR
creating partition: APP

Formatting partition 4 EBT please wait.. done!
Formatting partition 5 SOS please wait.. done!
Formatting partition 6 LNX please wait.. done!
Formatting partition 7 MBR please wait.. done!
Formatting partition 8 APP please wait.. done!
done!
Enabling verification for partition ID = 4...
sending file: fastboot.bin
| 936016/936016 bytes sent
fastboot.bin sent successfully
Verifying partition ID = 4...Please wait!!
Verification successful!!
VERIFICATION COMPLETE....

P.P.S В тексте забыто, что в конфиге в разделе ebt упоминается файл fastboot.bin Этот файл должен лежать в текущей директории. Можно скопировать или сделать ссылку с файла fastboot.stock.bin

ln -s ../prebuilt/fastboot.stock.bin fastboot.bin

Вот тогда прошивка пройдет нормально.