Keresés

Új hozzászólás Aktív témák

  • 8zabi

    őstag

    válasz 8zabi #131 üzenetére

    ezt találtam a kernelforrásban, kezdetnek nem rossz:

    #include <linux/module.h>
    #include "partition_define.h"
    struct excel_info PartInfo[PART_NUM]={
    {"preloader",6291456,0x0, EMMC, 0,BOOT_1},
    {"mbr",524288,0x600000, EMMC, 0,USER},
    {"ebr1",524288,0x680000, EMMC, 1,USER},
    {"pmt",4194304,0x700000, EMMC, 0,USER},
    {"pro_info",3145728,0xb00000, EMMC, 0,USER},
    {"nvram",5242880,0xe00000, EMMC, 0,USER},
    {"protect_f",10485760,0x1300000, EMMC, 2,USER},
    {"protect_s",10485760,0x1d00000, EMMC, 3,USER},
    {"seccfg",131072,0x2700000, EMMC, 0,USER},
    {"uboot",393216,0x2720000, EMMC, 0,USER},
    {"bootimg",6291456,0x2780000, EMMC, 0,USER},
    {"recovery",6291456,0x2d80000, EMMC, 0,USER},
    {"sec_ro",6291456,0x3380000, EMMC, 4,USER},
    {"misc",524288,0x3980000, EMMC, 0,USER},
    {"logo",3145728,0x3a00000, EMMC, 0,USER},
    {"ebr2",524288,0x3d00000, EMMC, 0,USER},
    {"expdb",10485760,0x3d80000, EMMC, 0,USER},
    {"android",681574400,0x4780000, EMMC, 5,USER},
    {"cache",132120576,0x2d180000, EMMC, 6,USER},
    {"usrdata",1073741824,0x34f80000, EMMC, 7,USER},
    {"fat",0,0x74f80000, EMMC, 8,USER},
    {"bmtpool",22020096,0xFFFF00a8, EMMC, 0,USER},
    };
    EXPORT_SYMBOL(PartInfo);

    #ifdef MTK_EMMC_SUPPORT
    struct MBR_EBR_struct MBR_EBR_px[MBR_COUNT]={
    {"mbr", {1, 2, 3, 4, }},
    {"ebr1", {5, 6, 7, }},
    {"ebr2", {8, }},
    };

    EXPORT_SYMBOL(MBR_EBR_px);
    #endif

  • válasz 8zabi #117 üzenetére

    Még egy aprócska adalék:
    A kiterjesztett adat (/data) partíció menthető kompletten, eddig még ugyan csak dd-vel csináltam meg, de majd megpróbálom flashtool-lal is.

    A /proc/partition adatait felhasználva (Lenovo A820-as telefon esetén, 2,77GB-ra módosítva az ebr1-ben a megfelelő bejegyzés, ebr2-ben pedig nincs definiálva partíció, tehát nincs belső SD azaz /emmc@fat):
    major minor #blocks name
    179 0 3763200 mmcblk0
    179 1 1 mmcblk0p1
    179 2 10240 mmcblk0p2
    179 3 10240 mmcblk0p3
    179 4 6144 mmcblk0p4
    179 5 614400 mmcblk0p5
    179 6 131072 mmcblk0p6
    179 7 2950656 mmcblk0p7

    su -
    dd if=/dev/block/mmcblk0 of=/storage/sdcard0/dd-backup/usrdata.img bs=1024 count=2950656 skip=812544

    1024 count=2950656 skip=812544
    2950656+0 records in
    2950656+0 records out

    A mentés egészen pontosan : 3021471744 bájt

    Ezt mount-olva látszik a komplett adatpartíció.

  • válasz 8zabi #117 üzenetére

    gondoltam egyet és elhatároztam hogy a jól belakott rendszeremet lementem, Flashtool-lal: SLXROM, 2.5GB /data, belső SD kilőve, programok kigyomlálva, testre szabva
    úgy gondoltam, hogy a LiFe rom-hoz való scatter fájl nem lesz nekem jó, mert a /data és a /fat partició mérete megváltozott
    szépen lementettem a dumchar_info-t és elkezdtem számolgatni, arra lettem figyelmes, hogy ezen semmilyen méretváltozás nem látszik, a két módosított partició ez alapján pont akkora mint ha hozzá sem lenne nyúlva, de ez nem igaz
    hol van a kutya elásva?

    az ebr2-ben (ahogy lentebb írod)

    azt tudom, hogy az ebr2 van módosítva, így látja nagyobbnak a /data-t és kisebbnek a /fat--ot, de ennek nem kéne itt is láthatónak lennie?
    Nem.
    Ezek a partíciók szépen bele vannak kódolva az induláskor (PMT file, és kernel), ez miatt nem is fog változni kiosztás. (Van módszer arra Igazából, ha szigorúan vesszük, akkor ez valójában nem átparticionálás. Igazából akkor lenne az, ha ténylegesen nem jelenne meg a FAT a partíciókiosztásban.
    Amit linkeltél /proc/partitions fájl kimenete, az az átparticionálás esetén is a helyes értéket mutatja
    Egy példa Lenov A820 esetén:
    major minor #blocks name
    179 0 3763200 mmcblk0
    179 1 1 mmcblk0p1
    179 2 10240 mmcblk0p2
    179 3 10240 mmcblk0p3
    179 4 6144 mmcblk0p4
    179 5 665600 mmcblk0p5
    179 6 129024 mmcblk0p6
    179 7 2901504 mmcblk0p7
    179 64 2048 mmcblk0boot1
    179 32 2048 mmcblk0boot0
    179 96 31267840 mmcblk1
    179 97 30258396 mmcblk1p1
    179 98 1004062 mmcblk1p2

    Az A820 esetén a 7-es partíció a /data. Ennek összértéke 2901504B, azaz 2.767GB
    (A 8-as, belső SD partíció itt átparticionálás nem létezik, mint csatolási pont)

    Ennek ellenére a dumchar_info tartalma még mindig az eredeti:
    preloader 0x0000000000600000 0x0000000000000000 2 /dev/misc-sd
    mbr 0x0000000000080000 0x0000000000000000 2 /dev/block/mmcblk0
    ebr1 0x0000000000080000 0x0000000000080000 2 /dev/block/mmcblk0p1
    pmt 0x0000000000400000 0x0000000000100000 2 /dev/block/mmcblk0
    pro_info 0x0000000000300000 0x0000000000500000 2 /dev/block/mmcblk0
    nvram 0x0000000000500000 0x0000000000800000 2 /dev/block/mmcblk0
    protect_f 0x0000000000a00000 0x0000000000d00000 2 /dev/block/mmcblk0p2
    protect_s 0x0000000000a00000 0x0000000001700000 2 /dev/block/mmcblk0p3
    seccfg 0x0000000000020000 0x0000000002100000 2 /dev/block/mmcblk0
    uboot 0x0000000000060000 0x0000000002120000 2 /dev/block/mmcblk0
    bootimg 0x0000000000600000 0x0000000002180000 2 /dev/block/mmcblk0
    recovery 0x0000000000600000 0x0000000002780000 2 /dev/block/mmcblk0
    sec_ro 0x0000000000600000 0x0000000002d80000 2 /dev/block/mmcblk0p4
    misc 0x0000000000080000 0x0000000003380000 2 /dev/block/mmcblk0
    logo 0x0000000000300000 0x0000000003400000 2 /dev/block/mmcblk0
    ebr2 0x0000000000080000 0x0000000003700000 2 /dev/block/mmcblk0
    expdb 0x0000000000a00000 0x0000000003780000 2 /dev/block/mmcblk0
    android 0x0000000025800000 0x0000000004180000 2 /dev/block/mmcblk0p5
    cache 0x0000000008000000 0x0000000029980000 2 /dev/block/mmcblk0p6
    usrdata 0x000000002a800000 0x0000000031980000 2 /dev/block/mmcblk0p7
    fat 0x000000008b5a0000 0x000000005c180000 2 /dev/block/mmcblk0p8

    titkos vágyam, hogy a ROW telefonok /preload particióját hozzácsapjam a /data-hoz
    Mivel nem összefüggő memóriaszakaszokról van szó, ezt nem próbálgatnám az ebr-ek piszkálásával.

Új hozzászólás Aktív témák