[Galaxy S 4 i9505 Original Android Development] XDA-00:
Fake update ramdisk

Your app is awsm, but I cannot make it work on CM13. ( I have an L7II , vee7).:crying:

I am using CM13 with some memory implementation ( think of it as marshmallow's adopt ext. sdcard as internal storage but cannot revert back)

Pls add an option to save all of this app's data to external storage. Only update-ramdisk.log is saved to /storage/6232-3131/Multiboot

The app copies boot.img in /data/media/0 (encrypted real internal storage) which it should not and fails to copy boot.img to external storage and then fails to update the ramdisk.

Even if I manually copy boot.img, it updates the ramdisk, then reboot, then again tells me to set kernel and update ramdisk. Pls fux it.

Logs will be provided.:)

When starting the app after reboot, it says failed to connect to mbtool then tries.

Update-Ramdisk log -

--------- beginning of main

07-24 16:43:31.499 31712 31712 W ExternalStorage: Duplicate UUID public:179_33; skipping

07-24 16:43:31.499 31712 31712 D ExternalStorage: After updating volumes, found 2 active roots

07-24 16:43:31.619 31712 31812 D Documents: Update found 2 roots in 39ms

07-24 16:43:31.749 31712 31712 W art : Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable

07-24 16:43:31.926 31712 31712 I AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.

07-24 16:43:32.066 31712 31728 I art : Background sticky concurrent mark sweep GC freed 28565(1687KB) AllocSpace objects, 5(100KB) LOS objects, 41% free, 5MB/9MB, paused 5.375ms total 57.530ms

07-24 16:43:32.103 31712 31712 W Settings: Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.

07-24 16:43:32.465 31712 31866 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true

07-24 16:43:32.500 31712 31728 I art : Background partial concurrent mark sweep GC freed 1956(178KB) AllocSpace objects, 3(60KB) LOS objects, 24% free, 12MB/16MB, paused 925us total 120.556ms

07-24 16:43:32.809 31712 31866 W Adreno-GSL: <get_panel_settings:3802>: Android framework reported version 2. So, don't force ES30

07-24 16:43:32.800 31866 31866 I RenderThread: type=1400 audit(0.0:624): avc: denied { open } for name="kgsl-3d0" dev="tmpfs" ino=4587 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1

07-24 16:43:32.839 31712 31866 I Adreno-EGL: <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_KK_2.7_RB1.04.04.00.007.018_msm8960_KK_2.7_RB1_CL3869936_release_AU (CL3869936)

07-24 16:43:32.839 31712 31866 I Adreno-EGL: OpenGL ES Shader Compiler Version: 17.01.10.SPL

07-24 16:43:32.839 31712 31866 I Adreno-EGL: Build Date: 12/09/13 Mon

07-24 16:43:32.839 31712 31866 I Adreno-EGL: Local Branch: mybranch2092625

07-24 16:43:32.839 31712 31866 I Adreno-EGL: Remote Branch: quic/kk_2.7_rb1.15

07-24 16:43:32.839 31712 31866 I Adreno-EGL: Local Patches: NONE

07-24 16:43:32.839 31712 31866 I Adreno-EGL: Reconstruct Branch: AU_LINUX_ANDROID_KK_2.7_RB1.04.04.00.007.018 + NOTHING

07-24 16:43:32.890 31712 31866 I OpenGLRenderer: Initialized EGL, version 1.4

07-24 16:43:36.587 31712 31712 D SwitcherService: onCreate()

07-24 16:43:36.590 31712 31712 D SwitcherService: onBind(intent=Intent { cmp=com.github.chenxiaolong.dualbootpatcher.snapshot/com.github.chenxiaolong.dualbootpatcher.switcher.SwitcherService })

07-24 16:43:36.593 31712 31712 D SwitcherService: onStartCommand(intent=Intent { cmp=com.github.chenxiaolong.dualbootpatcher.snapshot/com.github.chenxiaolong.dualbootpatcher.switcher.SwitcherService }, flags=0, startId=1)

07-24 16:43:39.441 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.GetRomsStateTask@3b4670b to thread pool: default

07-24 16:43:39.567 31712 32190 E MbtoolConnection: Could not connect to mbtool socket

07-24 16:43:39.567 31712 32190 E MbtoolConnection: java.io.IOException: Connection refused

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at android.net.LocalSocketImpl.connectLocal(Native Method)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:290)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at android.net.LocalSocket.connect(LocalSocket.java:130)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.initConnectToSocket(MbtoolConnection.java:105)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.connect(MbtoolConnection.java:186)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.<init>(MbtoolConnection.java:208)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.GetRomsStateTask.execute(GetRomsStateTask.java:68)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:43:39.567 31712 32190 E MbtoolConnection:	at java.lang.Thread.run(Thread.java:818)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask: mbtool error

07-24 16:43:39.570 31712 32190 E GetRomsStateTask: com.github.chenxiaolong.dualbootpatcher.socket.exceptions.MbtoolException: java.io.IOException: Connection refused

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.initConnectToSocket(MbtoolConnection.java:109)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.connect(MbtoolConnection.java:186)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.<init>(MbtoolConnection.java:208)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.GetRomsStateTask.execute(GetRomsStateTask.java:68)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at java.lang.Thread.run(Thread.java:818)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask: Caused by: java.io.IOException: Connection refused

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at android.net.LocalSocketImpl.connectLocal(Native Method)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:290)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at android.net.LocalSocket.connect(LocalSocket.java:130)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.initConnectToSocket(MbtoolConnection.java:105)

07-24 16:43:39.570 31712 32190 E GetRomsStateTask:	... 8 more

07-24 16:43:39.573 31712 32190 D SwitcherService: Attempting to stop service

07-24 16:43:39.573 31712 32190 D SwitcherService: Not stopping: # of operations: 0, is bound: true

07-24 16:43:40.000 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateMbtoolWithRootTask@a98fa9 to thread pool: default

07-24 16:43:40.001 31712 31712 D SwitcherService: onStartCommand(intent=Intent { cmp=com.github.chenxiaolong.dualbootpatcher.snapshot/com.github.chenxiaolong.dualbootpatcher.switcher.SwitcherService }, flags=0, startId=2)

07-24 16:43:40.244 31712 31728 I art : Background sticky concurrent mark sweep GC freed 4259(470KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 22MB/22MB, paused 17.941ms total 231.470ms

07-24 16:43:40.379 31712 31728 I art : Background partial concurrent mark sweep GC freed 1283(116KB) AllocSpace objects, 1(4MB) LOS objects, 17% free, 18MB/22MB, paused 5.805ms total 130.071ms

07-24 16:43:47.202 31712 32205 E MbtoolConnection: Could not connect to mbtool socket

07-24 16:43:47.202 31712 32205 E MbtoolConnection: java.io.IOException: Connection refused

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at android.net.LocalSocketImpl.connectLocal(Native Method)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:290)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at android.net.LocalSocket.connect(LocalSocket.java:130)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.initConnectToSocket(MbtoolConnection.java:105)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.replaceViaSignedExec(MbtoolConnection.java:297)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateMbtoolWithRootTask.execute(UpdateMbtoolWithRootTask.java:53)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:43:47.202 31712 32205 E MbtoolConnection:	at java.lang.Thread.run(Thread.java:818)

07-24 16:43:47.203 31712 32205 W MbtoolConnection: mbtool error

07-24 16:43:47.203 31712 32205 W MbtoolConnection: com.github.chenxiaolong.dualbootpatcher.socket.exceptions.MbtoolException: java.io.IOException: Connection refused

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.initConnectToSocket(MbtoolConnection.java:109)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.replaceViaSignedExec(MbtoolConnection.java:297)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateMbtoolWithRootTask.execute(UpdateMbtoolWithRootTask.java:53)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at java.lang.Thread.run(Thread.java:818)

07-24 16:43:47.203 31712 32205 W MbtoolConnection: Caused by: java.io.IOException: Connection refused

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at android.net.LocalSocketImpl.connectLocal(Native Method)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:290)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at android.net.LocalSocket.connect(LocalSocket.java:130)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolConnection.initConnectToSocket(MbtoolConnection.java:105)

07-24 16:43:47.203 31712 32205 W MbtoolConnection:	... 7 more

07-24 16:43:47.210 31712 32205 W UpdateMbtoolWithRootTask: Failed to update mbtool with SignedExec method

07-24 16:44:08.304 31712 1066 D CommandUtils: Root command output: mv: bad '/mbtool': No such file or directory

07-24 16:44:09.640 31866 31866 I RenderThread: type=1400 audit(0.0:642): avc: denied { ioctl } for path="/dev/kgsl-3d0" dev="tmpfs" ino=4587 ioctlcmd=925 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1

07-24 16:44:09.299 31712 1066 D CommandUtils: Root command output: [V] SELinux is globally set to permissive. Policy won't be patched

07-24 16:44:09.353 31712 1066 D CommandUtils: Root command output: [D] Policy version: 30

07-24 16:44:09.354 31712 1066 D CommandUtils: Root command output: [D] Rule already exists: "allow untrusted_app init:unix_stream_socket connectto;"

07-24 16:44:10.330 31866 31866 I RenderThread: type=1400 audit(0.0:644): avc: denied { read write } for path="/dev/kgsl-3d0" dev="tmpfs" ino=4587 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1

07-24 16:44:10.837 31712 1066 D CommandUtils: Root command output: (Android M policy compatibility mode)

07-24 16:44:10.837 31712 1066 D CommandUtils: Root command output: Waiting for daemon to start... OK

07-24 16:44:10.839 31712 32205 D UpdateMbtoolWithRootTask: Attempting mbtool connection after update

07-24 16:44:11.059 31712 32205 D UpdateMbtoolWithRootTask: mbtool was updated to 8.99.17

07-24 16:44:11.070 31712 32205 D SwitcherService: Attempting to stop service

07-24 16:44:11.070 31712 32205 D SwitcherService: Not stopping: # of operations: 0, is bound: true

07-24 16:44:11.174 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.GetRomsStateTask@f972324 to thread pool: default

07-24 16:44:11.357 31712 32190 E RomConfig: Failed to load /storage/6232-3131/MultiBoot/primary/config.json

07-24 16:44:11.357 31712 32190 E RomConfig: java.io.FileNotFoundException: /storage/6232-3131/MultiBoot/primary/config.json: open failed: ENOENT (No such file or directory)

07-24 16:44:11.357 31712 32190 E RomConfig:	at libcore.io.IoBridge.open(IoBridge.java:452)

07-24 16:44:11.357 31712 32190 E RomConfig:	at java.io.FileInputStream.<init>(FileInputStream.java:76)

07-24 16:44:11.357 31712 32190 E RomConfig:	at java.io.FileInputStream.<init>(FileInputStream.java:103)

07-24 16:44:11.357 31712 32190 E RomConfig:	at java.io.FileReader.<init>(FileReader.java:66)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.RomConfig.loadFile(RomConfig.java:221)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.RomConfig.getConfig(RomConfig.java:79)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.RomUtils.loadConfig(RomUtils.java:300)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.RomUtils.getRoms(RomUtils.java:275)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.GetRomsStateTask.execute(GetRomsStateTask.java:71)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:44:11.357 31712 32190 E RomConfig:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:44:11.357 31712 32190 E RomConfig:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:44:11.357 31712 32190 E RomConfig:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:44:11.357 31712 32190 E RomConfig:	at java.lang.Thread.run(Thread.java:818)

07-24 16:44:11.357 31712 32190 E RomConfig: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)

07-24 16:44:11.357 31712 32190 E RomConfig:	at libcore.io.Posix.open(Native Method)

07-24 16:44:11.357 31712 32190 E RomConfig:	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)

07-24 16:44:11.357 31712 32190 E RomConfig:	at libcore.io.IoBridge.open(IoBridge.java:438)

07-24 16:44:11.357 31712 32190 E RomConfig:	... 13 more

07-24 16:44:11.374 31712 32190 D RomUtils: mbtool says current ROM ID is: primary

07-24 16:44:13.218 31712 32190 D GetRomsStateTask: Getting active ROM ID

07-24 16:44:13.491 31712 32190 D libmbp : Boot image is a plain boot image

07-24 16:44:13.491 31712 32190 D libmbp : Found Android boot image header at: 0

07-24 16:44:13.491 31712 32190 D libmbp : - magic: ANDROID!

07-24 16:44:13.491 31712 32190 D libmbp : - kernel_size: 4876856

07-24 16:44:13.491 31712 32190 D libmbp : - kernel_addr: 0x00208000

07-24 16:44:13.491 31712 32190 D libmbp : - ramdisk_size: 1321667

07-24 16:44:13.491 31712 32190 D libmbp : - ramdisk_addr: 0x01500000

07-24 16:44:13.491 31712 32190 D libmbp : - second_size: 0

07-24 16:44:13.491 31712 32190 D libmbp : - second_addr: 0x01100000

07-24 16:44:13.491 31712 32190 D libmbp : - tags_addr: 0x00200100

07-24 16:44:13.491 31712 32190 D libmbp : - page_size: 4096

07-24 16:44:13.491 31712 32190 D libmbp : - dt_size: 0

07-24 16:44:13.491 31712 32190 D libmbp : - unused: 0x00000000

07-24 16:44:13.491 31712 32190 D libmbp : - name:

07-24 16:44:13.491 31712 32190 D libmbp : - cmdline: androidboot.hardware=vee7 androidboot.selinux=permissive

07-24 16:44:13.491 31712 32190 D libmbp : - id: ef862b12d79e177ee8293c10c896b7876333d81a000000000000000000000000

07-24 16:44:13.992 31712 32190 D GetRomsStateTask: Comparing saved boot image to current boot image

07-24 16:44:14.001 31712 32190 D SwitcherUtils: Boot image is not set for ROM ID: primary

07-24 16:44:15.822 31712 32190 D GetRomsStateTask: It took 4419 milliseconds to complete boot image checks

07-24 16:44:15.823 31712 32190 D GetRomsStateTask: Current boot partition ROM ID: primary

07-24 16:44:15.823 31712 32190 D GetRomsStateTask: Kernel status: UNSET

07-24 16:44:15.823 31712 32190 D SwitcherService: Attempting to stop service

07-24 16:44:15.823 31712 32190 D SwitcherService: Not stopping: # of operations: 0, is bound: true

07-24 16:44:15.831 31712 31712 I Choreographer: Skipped 89 frames! The application may be doing too much work on its main thread.

07-24 16:44:15.888 31712 31728 I art : Background sticky concurrent mark sweep GC freed 43225(2MB) AllocSpace objects, 0(0B) LOS objects, 10% free, 20MB/22MB, paused 1.731ms total 2.178s

07-24 16:44:18.683 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.SetKernelTask@d31b287 to thread pool: default

07-24 16:44:18.741 31712 32205 D SetKernelTask: Setting kernel for primary

07-24 16:44:19.152 31712 31728 I art : Background partial concurrent mark sweep GC freed 35469(1648KB) AllocSpace objects, 2(9MB) LOS objects, 26% free, 11MB/15MB, paused 18.956ms total 130.953ms

07-24 16:44:21.031 31712 32205 D SwitcherService: Attempting to stop service

07-24 16:44:21.032 31712 32205 D SwitcherService: Not stopping: # of operations: 0, is bound: true

07-24 16:44:37.669 31712 31712 I AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.

07-24 16:44:37.740 31712 31712 W System.err: com.github.chenxiaolong.dualbootpatcher.Version$VersionParseException: Invalid version number:

07-24 16:44:37.741 31712 31712 W System.err:	at com.github.chenxiaolong.dualbootpatcher.Version.parseVersion(Version.java:58)

07-24 16:44:37.741 31712 31712 W System.err:	at com.github.chenxiaolong.dualbootpatcher.Version.<init>(Version.java:50)

07-24 16:44:37.741 31712 31712 W System.err:	at com.github.chenxiaolong.dualbootpatcher.socket.MbtoolUtils.getSystemMbtoolVersion(MbtoolUtils.java:47)

07-24 16:44:37.741 31712 31712 W System.err:	at com.github.chenxiaolong.dualbootpatcher.switcher.RomDetailActivity.updateMbtoolStatus(RomDetailActivity.java:421)

07-24 16:44:37.741 31712 31712 W System.err:	at com.github.chenxiaolong.dualbootpatcher.switcher.RomDetailActivity.onCreate(RomDetailActivity.java:269)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.Activity.performCreate(Activity.java:6251)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.ActivityThread.-wrap11(ActivityThread.java)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)

07-24 16:44:37.741 31712 31712 W System.err:	at android.os.Handler.dispatchMessage(Handler.java:102)

07-24 16:44:37.741 31712 31712 W System.err:	at android.os.Looper.loop(Looper.java:148)

07-24 16:44:37.741 31712 31712 W System.err:	at android.app.ActivityThread.main(ActivityThread.java:5461)

07-24 16:44:37.741 31712 31712 W System.err:	at java.lang.reflect.Method.invoke(Native Method)

07-24 16:44:37.741 31712 31712 W System.err:	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)

07-24 16:44:37.741 31712 31712 W System.err:	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

07-24 16:44:37.741 31712 31712 W System.err:	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)

07-24 16:44:37.987 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.CacheWallpaperTask@47365c2 to thread pool: default

07-24 16:44:37.989 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.GetRomDetailsTask@42f9fd3 to thread pool: default

07-24 16:44:37.989 31712 31712 D SwitcherService: onStartCommand(intent=Intent { cmp=com.github.chenxiaolong.dualbootpatcher.snapshot/com.github.chenxiaolong.dualbootpatcher.switcher.SwitcherService }, flags=0, startId=3)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask: mbtool communication error

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask: java.io.FileNotFoundException: /storage/6232-3131/MultiBoot/primary/wallpaper.webp: open failed: ENOENT (No such file or directory)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at libcore.io.IoBridge.open(IoBridge.java:452)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at java.io.FileOutputStream.<init>(FileOutputStream.java:87)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at java.io.FileOutputStream.<init>(FileOutputStream.java:72)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at com.github.chenxiaolong.dualbootpatcher.RomUtils.cacheWallpaper(RomUtils.java:443)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.CacheWallpaperTask.execute(CacheWallpaperTask.java:66)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at java.lang.Thread.run(Thread.java:818)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at libcore.io.Posix.open(Native Method)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	at libcore.io.IoBridge.open(IoBridge.java:438)

07-24 16:44:38.149 31712 32190 E CacheWallpaperTask:	... 9 more

07-24 16:44:38.154 31712 32190 D SwitcherService: Attempting to stop service

07-24 16:44:38.154 31712 32190 D SwitcherService: Not stopping: # of operations: 1, is bound: true

07-24 16:44:38.487 31712 31728 I art : Background sticky concurrent mark sweep GC freed 7914(591KB) AllocSpace objects, 1(56KB) LOS objects, 0% free, 16MB/16MB, paused 4.426ms total 113.066ms

07-24 16:44:38.592 31712 31728 I art : Background partial concurrent mark sweep GC freed 2269(122KB) AllocSpace objects, 0(0B) LOS objects, 20% free, 15MB/19MB, paused 9.263ms total 90.603ms

07-24 16:44:39.933 31712 31712 D SwitcherService: Added runnable com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateRamdiskTask@a50eb06 to thread pool: default

07-24 16:44:40.056 31712 32190 D UpdateRamdiskTask: Starting to update ramdisk for primary to 8.0.0.r2616.g784e86e-SNAPSHOT

07-24 16:44:40.088 31712 32190 D RomUtils: mbtool says current ROM ID is: primary

07-24 16:44:42.999 31712 32205 D SwitcherService: Attempting to stop service

07-24 16:44:43.000 31712 32205 D SwitcherService: Not stopping: # of operations: 1, is bound: true

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask: Failed to copy /storage/6232-3131/MultiBoot/primary/boot.img to /storage/6232-3131/MultiBoot/primary/boot.img.before-ramdisk-update.img

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask: java.io.FileNotFoundException: Source '/storage/6232-3131/MultiBoot/primary/boot.img' does not exist

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1074)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateRamdiskTask.updateRamdisk(UpdateRamdiskTask.java:323)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateRamdiskTask.execute(UpdateRamdiskTask.java:415)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:44:43.455 31712 32190 W UpdateRamdiskTask:	at java.lang.Thread.run(Thread.java:818)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask: Failed to copy boot image to temporary file

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask: java.io.FileNotFoundException: Source '/storage/6232-3131/MultiBoot/primary/boot.img' does not exist

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1074)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateRamdiskTask.updateRamdisk(UpdateRamdiskTask.java:332)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.UpdateRamdiskTask.execute(UpdateRamdiskTask.java:415)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.switcher.service.BaseServiceTask.run(BaseServiceTask.java:125)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at com.github.chenxiaolong.dualbootpatcher.ThreadPoolService$1.run(ThreadPoolService.java:181)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

07-24 16:44:43.458 31712 32190 E UpdateRamdiskTask:	at java.lang.Thread.run(Thread.java:818)

07-24 16:44:43.600 1655 1655 I logcat : type=1400 audit(0.0:660): avc: denied { module_request } for kmod="personality-8" scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:kernel:s0 tclass=system permissive=1

Pls add an option to save all of this app's data to external storage.