Skocz do zawartości
oisis

Dump i przywracanie partycji na HTC Hero

    Rekomendowane odpowiedzi

    oisis

    Czy ktoś może robił dumpa z partycji HTC HERO?

    Po podłączenia się do shella można wydać polecenie:

    cat /proc/mtd

    wynikiem tego będzie lista partycji w systemie:

    Zastanawiam się czy zrobienie czegoś takiego zadziała:

    cat /dev/mtd/mtdblock0 > /sdcard/mtdblock0.img

    a następnie:

    cat /sdcard/tdbblock0.img > /dev/mtd/mtdblock0

    Oczywiście myślę o zgraniu partycji z jednego telefonu i wgraniu ich do innego, a szczególnie hboot.

    Ścieżki mogą się nie zgadzać bo pisałem z pamięci.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Juz predzej bym to przez ADB lub Android Commanderem robil (wymaga roota lub przynajmniej poczatku procedury do niego prowadzacej - fastboot lub jesli dziura zalatana, to flash Recovery Amon RA)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Robione na szybko.

    c:\Hero>adb shell

    # cat /dev/mtd/mtdblock0 > /sdcard/mtdblock0.img

    cat /dev/mtd/mtdblock0 > /sdcard/mtdblock0.img

    cat: can't open '/dev/mtd/mtdblock0': No such file or directory

    #

    # cat /proc/mtd

    cat /proc/mtd

    dev: size erasesize name

    mtd0: 00040000 00020000 "misc"

    mtd1: 00500000 00020000 "recovery"

    mtd2: 00280000 00020000 "boot"

    mtd3: 0aa00000 00020000 "system"

    mtd4: 08200000 00020000 "cache"

    mtd5: 0a5c0000 00020000 "userdata"

    Edytowane przez chosen one

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    oisis

    Tak tylko trzeba by się zastanowić jak to zrobić. Jeżeli jest w trybie recovery to komenda cat /proc/mtd zwraca inną wartość niż po uruchomionym systemem. Trzeba dumpra zrobić tak aby dumpowane partycje nie były zamontowane w czasie robienia kopii no i żeby system na nich nie pracował. Myślałem żeby w czasie gdy system jest uruchomiony normalnie zrobić dumpa z boota czyli mtdblock0 no i nadpisać go nowym a w czasie recovery zrobić dumpa systemu(bo wtedy nie jest on uruchomiony) no i nadpisać innym.

    Zastanawiam się czy to ma sens i czy coś mi to da. W sumie jak mamy roota to mamy dostęp do wszystkiego co nam jest potrzebne i mamy prawa rw a jak nie to można zawsze przemontować partycje.

    W linuksie by zadziałało ale tam robi się to za pomocą polecenia dd.

    Dlaczego w ogóle ten post: ponieważ mam błąd Can't read MISC, nie mogę zrobić flasha radia, nie mogę zmienić hboot a ta metoda może by pozwoliła to obejść.

    ---------- Post dołączono o 18:01 ---------- Poprzedni post napisano o 17:50 ----------

    Juz predzej bym to przez ADB lub Android Commanderem robil (wymaga roota lub przynajmniej poczatku procedury do niego prowadzacej - fastboot lub jesli dziura zalatana, to flash Recovery Amon RA)

    Ok, ale: przez ADB to właśnie o tym piszę:

    1. adb shell

    2. su

    3. cat /proc/mtd

    itd.....

    Android Commanderem nie próbowałem ale raczej wątpię żeby miał opcje robienia dumpa z urządzenia blokowego.

    a o trybie recovery mówiłem :)

    a z fastboota to nie wiem czy była by taka możliowść.

    Edytowane przez oisis

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Mnie bardziej chodzilo o adb pull, nie wiem jak z cmd, ale Android Commander ma Pull'a do zgywania plikow.

    Uzywanie cat'a mi troche smierdzi, bo to w koncu pliki binarne, a nie zwykle ASCII

    Co do samego kopiowania plikow, to raczej nie widzi mi sie robienie tego na dzialajcym systemie, na pewno w recovery bezpieczniej

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    oisis

    Używanie cata w ten sposób jest jak najbardziej ok, w linuksie to działa(http://www.lucidit.co.nz/Data_Transportation.html). Tych plików nie możesz normalnie skopiować bo to nie są zwykłe pliki tylko urządzenia blokowe. Co do kopiowania boot i misc w czasie pracy systemu android to chyba jest ok bo w pierszej fazie jest to odpalane a później już nie działa. Zresztą muszę najpierw o procesie uruchamiania androida poczytać ale z tego co wiem to są dwie fazy, odpalany jest najpierw pierwszy procesor i ładowane dane z jakiejś partycji(boot albo misc) a następnie uruchamiany jest dopiero Android.

    ---------- Post dołączono o 20:06 ---------- Poprzedni post napisano o 18:25 ----------

    Ok, napiszę dokładniej o co mi chodzi. Pod działającym systemem odpalamy shella przez adb i wydajemy polecenie:

    # cat /proc/mtd

    cat /proc/mtd

    dev: size erasesize name

    mtd0: 00040000 00020000 "misc"

    mtd1: 00500000 00020000 "recovery"

    mtd2: 00280000 00020000 "boot"

    mtd3: 0aa00000 00020000 "system"

    mtd4: 08200000 00020000 "cache"

    mtd5: 0a5c0000 00020000 "userdata"

    i sprawdzamy co mamy zamontowane:

    # mount

    mount

    rootfs / rootfs ro 0 0

    tmpfs /dev tmpfs rw,mode=755 0 0

    devpts /dev/pts devpts rw,mode=600 0 0

    proc /proc proc rw 0 0

    sysfs /sys sysfs rw 0 0

    tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0

    /dev/block/mtdblock3 /system yaffs2 ro 0 0

    /dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0

    /dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0

    /dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1000,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8 0 0

    jak widać powyżej mamy zamontowane partycje 3,4,5 które są w katalogu: /dev/block i mają nazwy mtdblock3 itd.

    W tym trybie nie zalecam zmiany ani robienia kopii z partycji 4,5 bo są one zamontowane do zapisu i odczytu i system na nich pracuje, natomiast partycja mtdblock3(główna partycja root / lub /system) jest zamontowana tylko do odczytu i teoretycznie można by było zrobić z niej dumpa.

    Partycje mtdblock0 i mtdblock1 nie są w ogóle zamontowane czyli teoretycznie można z nich zrobić spokojnie kopię przez cat.

    Natomiast podczas recovery mode sprawa wygląda inaczej:

    cat /proc/mtd jest takie samo jak podczas działania systemu, natomiast mount wygląda tak:

    / # mount

    mount

    rootfs on / type rootfs (rw)

    tmpfs on /dev type tmpfs (rw,mode=755)

    devpts on /dev/pts type devpts (rw,mode=600)

    proc on /proc type proc (rw)

    sysfs on /sys type sysfs (rw)

    /dev/block/mtdblock4 on /cache type yaffs2 (rw,nodev,noatime,nodiratime)

    Jak widać tutaj mamy zamontowaną tylko partycję mtdblock4 więc możemy operować na innych partycjach.

    Zastanawiam się teraz czy można by było po prostu wgrać wcześniej wykonany obraz z pliku .img(np: inny telefon) na niezamontowaną partycję.

    Można by było na przykład podmienić partycję misc albo boot.

    Edytowane przez oisis

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Za cienki jestem, zeby powiedziec czy bedzie chodzilo, ale jak masz root'a na docelowym telefonie, to zrob nandroid'a i baw sie ile wlezie :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x