Android 편집 ubi / ubfs 시스템 이미지

DrZaphod

mediatek 태블릿 장치 용 ubifs 시스템 이미지 ( https://www.dropbox.com/s/txgye8mu5r3og5y/system.img?dl=0 )가 있고 일부 파일을 추가 및 제거하려고합니다.

이미지에서 파일을 마운트 / 추출하려고합니다.

커널을 사용하여 지금까지 Debian Jessie에서 시도한 단계는 다음과 같습니다 4.1.0-0.bpo.2-amd64.

나는 시도했다 : https://github.com/jrspruitt/ubi_reader

$ ubireader_display_info ./system.img 
UBI File
---------------------
    Min I/O: 16384
    LEB Size: 4161536
    PEB Size: 4194304
    Total Block Count: 122
    Data Block Count: 120
    Layout Block Count: 2
    Internal Volume Block Count: 0
    Unknown Block Count: 0
    First UBI PEB Number: 0

    Image: 1101756791
    ---------------------
        Image Sequence Num: 1101756791
        Volume Name:system
        PEB Range: 0 - 121

        Volume: system
        ---------------------
            Vol ID: 0
            Name: system
            Block Count: 120

            Volume Record
            ---------------------
                alignment: 1
                crc: 3336263623
                data_pad: 0
                errors: 
                flags: autoresize
                name: system
                name_len: 6
                padding: 
                rec_index: 0
                reserved_pebs: 248
                upd_marker: 0
                vol_type: dynamic

그러나 ubireader_extract_files를 사용하여 파일을 추출하려고하면 올바른 수의 파일을 얻지 만 결과 파일은 가비지입니다.

다음으로 태블릿을 분해하여이 게시물에 따라 nandsim을 시도하고 사용하는 데 사용하는 nand 플래시를 알아 냈습니다.

https://web.archive.org/web/20150109021228/http://www.linux-mtd.infradead.org/faq/ubifs.html#L_ubifs_extract

nand를 에뮬레이션하고 0x45,0xde,0x94,0x93,0x76,0x50다음 게시물에서 id 바이트가있는 SanDisk SDTNRGAMA 64G 3.3V 8 비트를 사용하고 있음을 확인했습니다 .

http://lists.infradead.org/pipermail/linux-mtd/2014-January/051330.html

다음을 실행하면 segfault가 발생합니다. 이전 커널에서는 id_bytes 옵션이 인식되지 않습니다.

`modprobe nandsim id_bytes=0x45,0xde,0x94,0x93,0x76,0x50 cache_file=./test.img`

다음과 같은 segfault를 제공합니다.

[  142.734637] [nandsim] warning: read_byte: unexpected data output cycle, state is STATE_READY return 0x0
[  142.734637] [nandsim] warning: read_byte: unexpected data output cycle, state is STATE_READY return 0x0
[  142.734640] nand: device found, Manufacturer ID: 0x45, Chip ID: 0xde
[  142.734641] nand: SanDisk SDTNRGAMA 64G 3.3V 8-bit
[  142.734644] nand: 8192 MiB, MLC, erase size: 4096 KiB, page size: 16384, OOB size: 1280
[  142.734650] nand: No oob scheme defined for oobsize 1280
[  142.734672] ------------[ cut here ]------------
[  142.734674] kernel BUG at /build/linux-PoJsUp/linux-4.1.6/drivers/mtd/nand/nand_base.c:3952!
[  142.734677] invalid opcode: 0000 [#1] SMP 
[  142.734680] Modules linked in: nandsim(+) nand nand_ecc nand_bch bch nand_ids mtd cfg80211 rfkill joydev nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc iosf_mbi coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel hid_generic aes_x86_64 lrw irda gf128mul glue_helper psmouse vmw_balloon crc_ccitt ablk_helper serio_raw vmw_vmci cryptd battery pcspkr 8250_fintek acpi_cpufreq processor thermal_sys ac shpchp evdev i2c_piix4 fuse parport_pc ppdev lp parport autofs4 usbhid hid ext4 crc16 mbcache jbd2 sr_mod cdrom ata_generic sg sd_mod crc32c_intel ata_piix uhci_hcd ehci_pci ehci_hcd usbcore e1000 usb_common button libata vmwgfx ttm mptspi scsi_transport_spi mptscsih drm_kms_helper mptbase scsi_mod drm
[  142.734731] CPU: 0 PID: 1235 Comm: modprobe Not tainted 4.1.0-0.bpo.2-amd64 #1 Debian 4.1.6-1~bpo8+1
[  142.734733] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 09/20/2012
[  142.734735] task: ffff88007aaf54f0 ti: ffff880079134000 task.ti: ffff880079134000
[  142.734737] RIP: 0010:[<ffffffffa05d5ff0>]  [<ffffffffa05d5ff0>] nand_scan_tail+0xa40/0xac0 [nand]
[  142.734743] RSP: 0018:ffff880079137c58  EFLAGS: 00010296
[  142.734745] RAX: 000000000000002c RBX: ffff880077093450 RCX: 0000000000000006
[  142.734746] RDX: 000000000000002c RSI: 0000000000000246 RDI: ffff88007f60ea10
[  142.734748] RBP: ffff880077093000 R08: 00000000000094d8 R09: 00000000000044aa
[  142.734750] R10: 0000000000000086 R11: 20726f662064656e R12: ffff880077093860
[  142.734751] R13: 0000000000000000 R14: ffffffffa05ec200 R15: ffff88007b67ad40
[  142.734754] FS:  00007fe945772700(0000) GS:ffff88007f600000(0000) knlGS:0000000000000000
[  142.734756] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  142.734757] CR2: 00007f57a6920040 CR3: 00000000790fa000 CR4: 00000000000406f0
[  142.734870] Stack:
[  142.734873]  0000000000000000 0000000000000000 ffff880077093000 ffffffffa05ef54a
[  142.734877]  0000000000000000 0000000000000018 ffff880079137cd8 ffff880079137c98
[  142.734879]  0000000000000000 ffffffff81814080 ffff880077211760 ffffffffa05ef000
[  142.734882] Call Trace:
[  142.734889]  [<ffffffffa05ef54a>] ? ns_init_module+0x54a/0x1000 [nandsim]
[  142.734896]  [<ffffffffa05ef000>] ? 0xffffffffa05ef000
[  142.734902]  [<ffffffff81002148>] ? do_one_initcall+0xd8/0x210
[  142.734907]  [<ffffffff815723c1>] ? do_init_module+0x5a/0x1c2
[  142.734912]  [<ffffffff810f2316>] ? load_module+0x2026/0x24e0
[  142.734915]  [<ffffffff810ede60>] ? store_uevent+0x40/0x40
[  142.734919]  [<ffffffff810ee9d5>] ? copy_module_from_fd.isra.45+0xb5/0x140
[  142.734923]  [<ffffffff810f299d>] ? SyS_finit_module+0x7d/0xa0
[  142.734928]  [<ffffffff815792b2>] ? system_call_fast_compare_end+0xc/0x6b
[  142.734930] Code: 00 00 30 10 5d a0 e9 f8 f6 ff ff 48 c7 83 88 03 00 00 30 19 5d a0 e9 3c f7 ff ff 89 c6 48 c7 c7 b8 9c 5d a0 31 c0 e8 33 c2 f9 e0 <0f> 0b 48 c7 83 40 03 00 00 40 bb 5d a0 e9 14 f6 ff ff 48 c7 83 
[  142.734959] RIP  [<ffffffffa05d5ff0>] nand_scan_tail+0xa40/0xac0 [nand]
[  142.734964]  RSP <ffff880079137c58>
[  142.734975] ---[ end trace 0270ba33a10a2b05 ]---

즉, 도움이 필요합니다. 나는 ubi/ubifs방법에 크게 익숙 하지 않으며 기존 이미지에서 파일을 마운트 / 추출해야 함을 보여주는 제대로 작성된 가이드를 찾을 수 없습니다.

업데이트 : su가 태블릿에 설치되어 있고 selinux를 허용 모드로 설정했습니다.

adb shell su -c setenforce 0

출처 : https://source.android.com/devices/tech/security/selinux/validate.html

업데이트 03Oct15 :

를 실행 mdtinfo -a태블릿에 다음과 같은 결과를 얻었다 :

mtd16
Name:                           system
Type:                           nand
Eraseblock size:                4194304 bytes, 4.0 MiB
Amount of eraseblocks:          256 (1073741824 bytes, 1024.0 MiB)
Minimum input/output unit size: 16384 bytes
Sub-page size:                  16384 bytes
OOB size:                       1280 bytes
Character device major/minor:   90:32
Bad blocks are allowed:         true
Device is writable:             true

위의 정보를 사용하여 PC에 빈 ubifs 이미지를 만들려고했는데 LEB가 너무 크다는 오류가 발생합니다! LEB 크기에 2MiB 제한이있는 것 같습니다!

$ mkfs.ubifs -m 16384 -e 4MiB -c 256 -o ./image.img
Error: too large LEB size 4194304
DrZaphod

다른 사람이이 게시물을 찾은 경우를 대비하여. ro가 아닌 rw 모드에서 루트 파티션을 마운트 하기 위해 mtk-tools사용하여 boot.img를 편집하는 것과 관련된 해결 방법을 찾았습니다 . (boot.img의 루트에있는 init.rc에서 / system의 마운트 옵션을 rw로 변경하십시오).

나는 루트 이미지를 편집하고 태블릿의 전원을 끈 다음 MTK Droid 도구를 사용하여 파티션을 이미지화했습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android에서 즉시 이미지 편집

분류에서Dev

Android Studio 플러그인-편집기에 이미지 표시

분류에서Dev

이미지의 텍스트 편집

분류에서Dev

이미지의 텍스트 편집

분류에서Dev

이미지 소스 C # 편집

분류에서Dev

에이스 편집기 autocomlpeter 편집

분류에서Dev

Android 표시 및 HTML 편집

분류에서Dev

그리기 이미지 편집기 Android를 실행 취소 하시겠습니까?

분류에서Dev

Windows 8.1 또는 Ubuntu에서 Android 디스크 이미지 파일을 마운트하고 편집하는 방법

분류에서Dev

Android : 내부에 이미지가있는 반투명 편집 텍스트 만들기

분류에서Dev

관리자이지만 시스템 변수를 편집 할 수 없음 (Windows 10)

분류에서Dev

OneSignal 알림 Android에서 메시지 내용 편집

분류에서Dev

Acrobat Pro XI에서 텍스트 및 이미지 편집 중지

분류에서Dev

Android에서 사용자 지정 편집 텍스트 디자인

분류에서Dev

Angular : 페이지 편집시 입력 필드 편집 방지

분류에서Dev

Docker : 이미지 빌드시 my.cnf 편집

분류에서Dev

추가 이미지를 표시하도록 루프 편집

분류에서Dev

C #에서 편집 가능한 이미지 표시

분류에서Dev

스크린 샷에서 "이미지 편집"으로

분류에서Dev

스타일 : 편집기에서 이미지 부동

분류에서Dev

스크린 샷에서 "이미지 편집"으로

분류에서Dev

xml 편집시 Android Studio가 자동으로 디자인 / 미리보기를 표시하지 않도록 중지

분류에서Dev

Android 2.2.2에서 화면이 꺼지면 Android에서 지워지는 텍스트 데이터 편집

분류에서Dev

버튼 속성을 표시 할 때 Android 스튜디오 3.6 레이아웃 편집기가 지연됨

분류에서Dev

Android SDK-시스템 이미지 설치?

분류에서Dev

ext4 파일 시스템 데이터 파일을 편집하는 방법

분류에서Dev

phpbb 템플릿 편집이 표시되지 않습니다

분류에서Dev

phpbb 템플릿 편집이 표시되지 않습니다

분류에서Dev

Android 레이아웃 코드 템플릿을 편집하는 방법

Related 관련 기사

  1. 1

    Android에서 즉시 이미지 편집

  2. 2

    Android Studio 플러그인-편집기에 이미지 표시

  3. 3

    이미지의 텍스트 편집

  4. 4

    이미지의 텍스트 편집

  5. 5

    이미지 소스 C # 편집

  6. 6

    에이스 편집기 autocomlpeter 편집

  7. 7

    Android 표시 및 HTML 편집

  8. 8

    그리기 이미지 편집기 Android를 실행 취소 하시겠습니까?

  9. 9

    Windows 8.1 또는 Ubuntu에서 Android 디스크 이미지 파일을 마운트하고 편집하는 방법

  10. 10

    Android : 내부에 이미지가있는 반투명 편집 텍스트 만들기

  11. 11

    관리자이지만 시스템 변수를 편집 할 수 없음 (Windows 10)

  12. 12

    OneSignal 알림 Android에서 메시지 내용 편집

  13. 13

    Acrobat Pro XI에서 텍스트 및 이미지 편집 중지

  14. 14

    Android에서 사용자 지정 편집 텍스트 디자인

  15. 15

    Angular : 페이지 편집시 입력 필드 편집 방지

  16. 16

    Docker : 이미지 빌드시 my.cnf 편집

  17. 17

    추가 이미지를 표시하도록 루프 편집

  18. 18

    C #에서 편집 가능한 이미지 표시

  19. 19

    스크린 샷에서 "이미지 편집"으로

  20. 20

    스타일 : 편집기에서 이미지 부동

  21. 21

    스크린 샷에서 "이미지 편집"으로

  22. 22

    xml 편집시 Android Studio가 자동으로 디자인 / 미리보기를 표시하지 않도록 중지

  23. 23

    Android 2.2.2에서 화면이 꺼지면 Android에서 지워지는 텍스트 데이터 편집

  24. 24

    버튼 속성을 표시 할 때 Android 스튜디오 3.6 레이아웃 편집기가 지연됨

  25. 25

    Android SDK-시스템 이미지 설치?

  26. 26

    ext4 파일 시스템 데이터 파일을 편집하는 방법

  27. 27

    phpbb 템플릿 편집이 표시되지 않습니다

  28. 28

    phpbb 템플릿 편집이 표시되지 않습니다

  29. 29

    Android 레이아웃 코드 템플릿을 편집하는 방법

뜨겁다태그

보관