Related
Last Update : August, 19, 2014
Hi,
I'm still try to bypass the MMU protection.
I have fixe a lot of bug, like memory misalignment, bad adresses allocation, dtb correction, etc...
Last sources and binaries here :
kexec-tools V11.zip : http://forum.xda-developers.com/attachment.php?attachmentid=2902912&stc=1&d=1408401794
kexec-tools binaries V11.zip : http://forum.xda-developers.com/attachment.php?attachmentid=2902913&stc=1&d=1408401794
Sorry, i have always 13 sec reboot after new kernel boot.
"cpu_proc_fin" use a "mcr p15" to init cache and proc that cause freeze.
I try to find solution for that.
Last Update : June, 22, 2014
Hi,
My sources are horrible... but i give something new.
This kexec is for stock kernel only (tested on .757). I thinks theses sources work on other kernel too.
In "kexec-tools V10.zip", you have all my sources. It's highly recommended to mod them to have something OK.
In "kexec binaries.zip", you have binaries to install
=> "kexec_load.ko" and "procfs_rw.ko" must be placed in "/system/lib/modules" folder with "chmod 777"
=> "kexec" must be placed in /system/bin" folder with "chmod 777"
=> cd /system/lib/modules
=> insmod kexec_load.ko
For sources :
Mod and adapt all you want, it's free.
You have 2 scripts in Zip : "./compil-kexec" in "kexec-tools" folder to rebuild and send in device directly (install Adbtcp on device and send by tcp with : adb connect xxx.xxx.xxx.xxx) = work perfectly with me.
"scriptZ1" is for compil stock kernel or another kernel (doomlord kernel for eg)
You must rename "custom_final_files" folder after compil to "final_file" manually ; You can have guest kernel in "custom_final_files" and stock kernel in "final_files" for "kexec-tools" path ... Don't mix a guest and host kernel please ^^
I am tired... i let you test and say if it's ok for you...
Thank a lot to munjeni for his help.
kexec-tools V10.zip : http://forum.xda-developers.com/attachment.php?attachmentid=2811994&stc=1&d=1403456181
kexec binaries.zip : http://forum.xda-developers.com/attachment.php?attachmentid=2811995&stc=1&d=1403456181
Last Update : November, 23, 2013
Hi,
For few days now, i haven't no more kernel panic with my kexec.
I have fixed few stuffs into sources, and add a lot.
These adds are, to include a "dt.img" image file into kexec load process.
This image file is a "device_tree" image to match hardware to software.
So, i assume to don't include atags into boot process, but pass bootloader informations by this DT.
I have programmed a little scan memory to found dynamicly all magic tags, because i found 3 device_tree into memory (magic is "0xd00dfeed").
These 2 device_tree are echo from first and nice structure.
The boot process need to have informations from this DT, and need all informations to initialize hardware (no HDW initialisation by the kernel)
I must first fix issues ; Regroup zImage and dt.img into memory to load a solid bloc to kexec_load module to boot into, and second, fix an offset i can't explain, 0x800 in memory causing misalignment memory
Keep tuned..
Last Update : November, 17, 2013
Hi everybody,
My kexec-tools work for Sony Xperia Z1 stock kernel "3.4.0-perf"
This tools can work on all locked bootloader for all locked device, not only Sony or Z1 models.
This kexec-tools add a kexec_load kernel module (LKM) and use a driver to grant a communication between "kexec" user program and kexec_load.ko module
what is for ?
"kexec" user program load in memory a custom kernel in zImage format, but can load ".tar" image too
This user tool load ramdisk in memory if necessary
This tool is for this purpose only, and don't keep in memory the custom kernel at device reboot.
It is a "user" program, not a "kernel" extension... So, to really do the magic, we need the host kernel (stock sony locked kernel) have a kexec_load capability to reboot in a new gest kernel (custom kernel).
Infortuntly, stock kernel don't have kexec_load capability.
Sony have compiled his stock kernel without this option, and "standard" kexec-tools "need" this option to work.
To see all system call capability of kernel, you can run theses command :
Code:
echo 0 > /proc/sys/kernel/dmesg_restrict
echo 0 > /proc/sys/kernel/kptr_restrict
cat /proc/kallsyms
Do all grep you want here.
The "echo 0" "restrict" is here to unmask logical adresses to "system calls"
Like you can see, "__NR_kexec_load" capability isn't here.
To add kexec_load capability in stock locked kernel, we need to add manualy a kernel module wich add this function into the kernel.
Why ? Because the way to keep in memory a custom kernel need to know a lot of parameters, and keep a specific memory range alive at reboot.
Only kernel can do this.
All user program will be terminated at reboot.
"Standard" kexec_load.ko module use a method to implement the "__NR_kexec_load" function in system call table.
Since 2.6.0 kernel, linux for security reason, have locked in memory the "system_call_table" ; No more add or modification is authorized.
If kexec tool try to add a value, "kexec_load" for us, we causes a kernel panic, and reboot device.
For this reason, i have modify kexec user program and kexec_load module to implement a driver to talk to each other.
this driver replace syscall method, and we no more need to use a system call table.
For this reason, this tool is now compatible with modern kernel like our "3.4.0"
For this reason, this tool must work for other device (Xperia X, P, S, etc...) and another brand
For this reason, if kernel is locked, we can bootstrap to run a new kernel.
Installation
First, you can compil your own kexec tool
Here, sources : http://forum.xda-developers.com/attachment.php?attachmentid=2397299&stc=1&d=1384689174
And here, the binaries : http://forum.xda-developers.com/attachment.php?attachmentid=2397305&stc=1&d=1384689406
(it's not a cwm zip, i have no time to create an installer for now ; use "./compil-kexec" if you want an automatic install)
Install *.ko in /system/lib/modules
Install kexec and kdump in /system/bin
Grant with "chmod 777"
Unzip in kexec-tools folder
Install a toolchain (sudo apt-get install gcc-arm-linux-gnueabi)
launch => ./compil-kexec
what's all
This script can do everythinks for you
- Compilation of tools
- Compilation of modules
- installation in device
This script can compil for every brand you have.
Except you must remove or adapt the patch (see below why)
Patch ??
This patch is because a module must be compiled in the same time the kernel himself.
For this reason a "vermagic", an identifier, is used by system to block every module not compil with kernel
Some custom kernel bypass this to authorize every modules.
But for stock kernel, it is not allowed.
You can easely strapp this by busybox.
"busybox modprobe" for help
"-f" to force load without vermagic
To see this vermagic :
Code:
# uname -r
This "uname -r" must be the same that
Code:
# strings kexec_load.ko | grep vermagic
vermagic=3.4.0-perf-g66807d4-02450-g9a218f1 SMP preempt mod_unload modversions ARMv7
If you want use automaticaly this vermagic, you can modify into the custom kernel this file :
Code:
"include/config/kernel.release" and add :
"3.4.0-perf-g66807d4-02450-g9a218f1"
This file will be use at module compil to match the vermagic.
Infortunatly, it is not enought. :silly:
The infamous "no symbol version for module_layout"
When a module compil is created, it use symbols link to system call function, translate by adresses
Theses symbols are not at same physical adresses in stock kernel and modules (compiled from DooMLoRD kernel).
So, theses adresses must be convert into modules itself to match with stock symbols adress.
A patch is needed.
If you use my script, modules are automatically patched.
Here patches :
Code:
sed -i 's/\x32\x76\x86\x29/\x72\xFF\x5E\x20/' procfs_rw.ko
sed -i 's/\x32\x76\x86\x29/\x72\xFF\x5E\x20/' kexec_load.ko
sed -i 's/\xBB\xD0\xF8\x4D/\x0E\x1C\x63\x77/' kexec_load.ko
sed -i 's/\xA6\x26\x81\x1A/\xD4\x56\x02\x7E/' kexec_load.ko
sed -i 's/\xA3\xD1\xEC\x96/\xEC\x43\x28\x1A/' kexec_load.ko
sed -i 's/\x8C\xE6\x6A\x5F/\x3D\xDF\x02\xF2/' kexec_load.ko
sed -i 's/\x3E\xF3\xEF\xE9/\x18\x7F\xA6\x8A/' kexec_load.ko
sed -i 's/\x8B\xD2\x92\x10/\xC8\x19\x08\x9C/' kexec_load.ko
sed -i 's/\x1C\xE8\x18\xE1/\x7C\x71\x9E\xEF/' kexec_load.ko
sed -i 's/\xAB\x2C\x2F\x8B/\x8E\xD7\x63\xC0/' kexec_load.ko
sed -i 's/\xF5\x62\xAA\x4B/\x34\x80\x1B\x74/' kexec_load.ko
sed -i 's/\x00\x52\xD6\xD7/\x6F\x80\x91\x20/' kexec_load.ko
sed -i 's/\x4F\x77\x57\x6A/\x0C\x57\xC7\x63/' kexec_load.ko
sed -i 's/\xCA\x2F\x65\x71/\x92\xB8\x7F\x53/' kexec_load.ko
sed -i 's/\x0F\xD0\xA0\x91/\xFA\x80\x15\xB4/' kexec_load.ko
sed -i 's/\x29\xA0\x6D\x48/\x6C\x6B\x96\x54/' kexec_load.ko
sed -i 's/\x6D\x1F\x1F\x37/\xCC\x5E\x79\x8B/' kexec_load.ko
sed -i 's/\xFD\x23\xD0\xFB/\xE3\xE3\x68\x52/' kexec_load.ko
You can use hexedit or hexdump to see these adresses :
Code:
hexdump kexec_load.ko | grep ff72
0003d50 b0b0 80ac ff72 205e 6f6d 7564 656c 6c5f
how does it work ?
# kexec --help
For kexec help... nothing more to say.
# lsmod
List loaded modules... You must see
kexec_load 31369 0 - Live 0x00000000 (O)
# rmmod kexec_load.ko
Remove kexec_load module from memory.
# grep kexec /proc/device
To see installed driver.
You must see :
100 kexec_driver
First number is "major" number to identify your driver in system.
# mknod /dev/kexec_driver c 100 0
Install driver.
Major number (here 100), is important for module.
This Major must be the same between module and driver.
By default, 100 is used.
# insmod kexec_load.ko
To install "LKM", kexec_load kernel module.
If another Major is needed, you can use "insmod kexec_load.ko 101" for Major 101
You can use "modprob" if you want, but you must configure the module folder.
How kexec and module exchange informations ?
By the driver.
Normal output for a kernel module is to write in "dmsg" file.
To see kernel output, launch this command :
Code:
# dmesg
To see last kernel log, see in :
Code:
# cat /proc/last_kmsg
For kexec module, this normal way still exist, and give a lot of informations, but to speak with, you must use the driver.
/dev/kexec_driver
You can yourself test communication:
Code:
# cat /dev/kexec_driver
You can send kernel by this communication channel.
Type following commands for help
=> echo help >/dev/kexec_driver
=> dmesg | grep Kexec
Code:
# echo help >/dev/kexec_driver
# cat /dev/kexec_driver
Last command : 'help'
Please type following command :
=> dmesg|grep Kexec
Every command send into driver is receive by kexec_load.ko module and running into the kernel.
The answer can by read thru the driver
Here, you can see that normal way to see messages is allway dmesg.
Code:
# dmesg|grep Kexec
<4>[15050.521628] Kexec: Starting kexec_module...
<6>[15050.521656] Kexec: kexec_driver_contener allocation
<6>[15050.521673] Kexec: kexec_memory_buffer allocation
<4>[15050.521691] Kexec:----------------------------------------------------
<4>[15050.521710] Kexec: kexec_driver created with major : '100'
<4>[15050.521728] Kexec: Please, prepare by typing the following commands :
<4>[15050.521746] Kexec: => mknod /dev/kexec_driver c 100 0
<4>[15050.521761] Kexec: => cat /dev/kexec_driver
<4>[15050.521775] Kexec:-----------------------------------------------------
<4>[15050.521791] Kexec: For help
<4>[15050.521803] Kexec: => echo help >/dev/kexec_driver
(...)
I have add a lot of informations to help to configure kexec.
rdtags, atags ??
Not sure for this part of kernel.
"atags" is the most used method to bootloader to parse commands and informations to kernel at boot.
"atags" is a form of structure in memory to organise informations.
At boot, a address chain is created and can be compulse in /proc/atags file.
This file is read only system.
"rdtags" is another way to bootloader to parse information to kernel.
"rdtags" is not stocked in "/proc"
But, as i see, stock kernel can use "atags" from bootloader.
kexec can substitute bootloader function to create fromscratch a atags chain, and parse to new kernel.
I have change this part to stock atags in "/data/atags", and reuse or change if need.
If this don't work, i must create a rdtags chain to replace atags ; It's not a hard work.
Status
For the moment, kexec tools works.
=> Phase one OK.
I can start Phase Two : new kernel patch.
If you want to help me...
Actually, load a custom kernel and boot into with kexec tools work.
But at boot into, a kernel panic occurs.
It seems, a part of kexec patch is missing in custom kernel.
Hi new thread created for kernel kexec development.
Status: not working: wrong values for mem defines under the kernel is giving segmentation fault as its attempting to write to memory areas that are currently being used byyyyy the system
Instructions:
Make kernel compatible?:
1. Download kernel diff patch from below
2. Terminal - diff patch > diff.txt
How to use:
1. Download kexec-tools (kexec binary) from below
2. Copy into system/bin directory and give it executable permission
3. Download compatible kernel
4. Terminal - kexec --load-hardboot zImage --initrd=initrd.img --mem-min=0x20000000 --command-line="$(cat /proc/cmdline)"
kexec -e
Download links:
Kexec tool- https://db.tt/8DZXQ9eV
Ramdisk firmware 1.548 : https://db.tt/8DZXQ9eV
zImage (kernel):
Source code:
Kernel diff patch: https://db.tt/Xi2htT7Q (currently contains wrong values for mem defines)
Kexec-tools: https://db.tt/I22ofr3b
Special thanks: @delewer @krabappel2548
Reserved
Please move this thread to Xda Devdb, then I can also edit first post etc if I find new stuff
Sent from my C6903 using xda app-developers app
krabappel2548 said:
Please move this thread to Xda Devdb, then I can also edit first post etc if I find new stuff
Sent from my C6903 using xda app-developers app
Click to expand...
Click to collapse
Devdb?
Pm me i dont know what Devdb is lol
Recieved segmentation fault with delewers calculated mem values too
We need to write to memory where we have write access to, maybe lockedbootloader is not allowing us to write? Orrr we are just writing to wrong area of memory
If kexec works on the Z1, can it be ported over to Xperia Z/ZL/T/Ultra? I believe they don't all share the same processor.
Shaky156 said:
Devdb?
Pm me i dont know what Devdb is lol
Click to expand...
Click to collapse
Shaky156 said:
Recieved segmentation fault with delewers calculated mem values too
We need to write to memory where we have write access to, maybe lockedbootloader is not allowing us to write? Orrr we are just writing to wrong area of memory
Click to expand...
Click to collapse
I'll discuss with Kali- today if he's available.
Knucklessg1 said:
If kexec works on the Z1, can it be ported over to Xperia Z/ZL/T/Ultra? I believe they don't all share the same processor.
Click to expand...
Click to collapse
Doesn't need to be same processor, can be ported
Sent from my C6903 using xda app-developers app
Knucklessg1 said:
If kexec works on the Z1, can it be ported over to Xperia Z/ZL/T/Ultra? I believe they don't all share the same processor.
Click to expand...
Click to collapse
Yes it wont matter much, since its not s800 it should be easier for you guys , take the kexec-tool use that, implement the patch write to the correct mem addresses which is free, it should boot if you guys have issues let me know,
I need to calculate the correct addresses.
Ive noticed s800 uses a dt.img, might need to modify kexec-tool to support dt.img, not sure what dt.img does yet, only know it holds values
Shaky156 said:
I need to calculate the correct addresses.
Ive noticed s800 uses a dt.img, might need to modify kexec-tool to support dt.img, not sure what dt.img does yet, only know it holds values
Click to expand...
Click to collapse
the dt.img is needed by the kernel to boot, so I guess we need to load that too in kexec.
EDIT: people that wanna try add kexec patch to their kernel, check github: android_kernel_sony_msm8974/commits/kexec
krabappel2548, i have compil your kernel by my script (fromscratch)
My script (instruction in "DoomLord Build kernel thread" : scriptZ1 http://forum.xda-developers.com/attachment.php?attachmentid=2346163&d=1382568778
(for thoses who want to help us...)
You have a little mod to do here (bad compil) :
In "sound/soc/msm/qdsp6v2/rtac.c"
you must change
#include <q6voice.h>
by
#include "q6voice.h"
btw : no more ideas to load kexec for the moment ...
delewer said:
krabappel2548, i have compil your kernel by my script (fromscratch)
My script (instruction in "DoomLord Build kernel thread" : scriptZ1 http://forum.xda-developers.com/attachment.php?attachmentid=2346163&d=1382568778
(for thoses who want to help us...)
You have a little mod to do here (bad compil) :
In "sound/soc/msm/qdsp6v2/rtac.c"
you must change
#include <q6voice.h>
by
#include "q6voice.h"
btw : no more ideas to load kexec for the moment ...
Click to expand...
Click to collapse
Sorry, I'm trying to get caught up on the forum, but what seems to be the current standing issue to get kexec working?
Knucklessg1 said:
Sorry, I'm trying to get caught up on the forum, but what seems to be the current standing issue to get kexec working?
Click to expand...
Click to collapse
Read the OP
Status paragraph
Memory regions
00000000-07afffff : System RAM
00008000-00b79383 : Kernel code
00d04000-00f0cddb : Kernel data
0ff00000-779fffff : System RAM
7ff00000-7ff3ffff : rdtags_mem
7ff80000-7ffa0fff : last_kmsg
7ffa1000-7ffa5fff : last_amsslog
System RAM MEM = 00000000
So --min-mem=0x20000000
Now need to find a free memory area thatll allow us to write and hopefully the mmu/pmu on locked bootloader wont cancel it
@delewer? @DooMLoRD @kali @Bin4ry
I know I shouldn't disturb, but i must ask: if You achieve Your goal, would it be possible to port it to devices like Xperia P, S, T, U and other NXT? It would be great, many ppl are ready to give a prize for it. Thanks in advance, good luck and sorry again.
Sent from my LT22i using xda app-developers app
king960 said:
I know I shouldn't disturb, but i must ask: if You achieve Your goal, would it be possible to port it to devices like Xperia P, S, T, U and other NXT? It would be great, many ppl are ready to give a prize for it. Thanks in advance, good luck and sorry again.
Sent from my LT22i using xda app-developers app
Click to expand...
Click to collapse
These devices are not 2013 devices, they arent s800 socs, so they are much easier to do, simply take the kexec-tools from op, implement the patch in your kernel, write the correct memory values for your specific device and execute in terminal via the command in op, minmem depends on your device too, good luck
I think some1 tried it already, but it works only for unlocked devices... Anyway, thanks for help.
Sent from my LT22i using xda app-developers app
king960 said:
I know I shouldn't disturb, but i must ask: if You achieve Your goal, would it be possible to port it to devices like Xperia P, S, T, U and other NXT? It would be great, many ppl are ready to give a prize for it. Thanks in advance, good luck and sorry again.
Sent from my LT22i using xda app-developers app
Click to expand...
Click to collapse
Does doing this require having an Unlocked Boot loader prior to implementation?
Sent from my C6603 using xda app-developers app
A few informations about kexec-tools debug
in kexec.c
Fonction :
if (file_type.load(argc, argv, kernel_buf,
kernel_size, &info) < 0) {
fprintf(stderr, "Cannot load %s\n", kernel);
return -1;
}
With a forced execution of kexec (bypass error to see...)
--mem-min=0x90000000
kernel: 0xb6b9d008 kernel_size: 3e9340
debug: 1 - after get memory range
debug: 2 - after type test
debug: 3 - after type test
debug: 4 - after info.kexec
debug: Focus 1 - argc '5' ; argv 'be856774' ; kernel_buf 'b6b9d008' ; kernel_size '3e9340' ; info 'be856548' ; i '1' ; file_type.name 'zImage'
Could not find a free area of memory of 3f1340 bytes...
Cannot load zImage
debug: 10 - before trampoline
debug: 11 - after trampoline
debug: 12 - before segment load
debug: 13 - after segment load
debug: 8 - before sort_segment
debug: 9 - after sort_segment
debug: 6 - before purgatory
debug: 7 - after purgatory
kexec_load: entry = (nil) flags = 280004
nr_segments = 0
kexec_load failed: Function not implemented
entry = (nil) flags = 280004
nr_segments = 0
debug: 5 - return result : ffffffff
With a forced bypass on file_type.load , we have this :
--mem-min=0x20000000
debug: Focus 1 - argc '5' ; argv 'bef18774' ; kernel_buf 'b6bc7008' ; kernel_size '3e9340' ; info 'bef18548' ; i '1' ; file_type.name 'zImage'
Segmentation fault
delewer said:
A few informations about kexec-tools debug
in kexec.c
Fonction :
if (file_type.load(argc, argv, kernel_buf,
kernel_size, &info) < 0) {
fprintf(stderr, "Cannot load %s\n", kernel);
return -1;
}
With a forced execution of kexec (bypass error to see...)
--mem-min=0x90000000
kernel: 0xb6b9d008 kernel_size: 3e9340
debug: 1 - after get memory range
debug: 2 - after type test
debug: 3 - after type test
debug: 4 - after info.kexec
debug: Focus 1 - argc '5' ; argv 'be856774' ; kernel_buf 'b6b9d008' ; kernel_size '3e9340' ; info 'be856548' ; i '1' ; file_type.name 'zImage'
Could not find a free area of memory of 3f1340 bytes...
Cannot load zImage
debug: 10 - before trampoline
debug: 11 - after trampoline
debug: 12 - before segment load
debug: 13 - after segment load
debug: 8 - before sort_segment
debug: 9 - after sort_segment
debug: 6 - before purgatory
debug: 7 - after purgatory
kexec_load: entry = (nil) flags = 280004
nr_segments = 0
kexec_load failed: Function not implemented
entry = (nil) flags = 280004
nr_segments = 0
debug: 5 - return result : ffffffff
With a forced bypass on file_type.load , we have this :
--mem-min=0x20000000
debug: Focus 1 - argc '5' ; argv 'bef18774' ; kernel_buf 'b6bc7008' ; kernel_size '3e9340' ; info 'bef18548' ; i '1' ; file_type.name 'zImage'
Segmentation fault
Click to expand...
Click to collapse
Did you compile this kexec yourself? Or did you get this from krapabbel? I issued krapabbel to compile a new debug version have gave him the code but never heard back from him :/
Anywayz so cannot find free memory is the issue
Github repo: https://github.com/kernel-killer/android_kernel_huawei_h30u10
All changes I made since last commit are in my private repo.
Install packages (Not sure if it's right):
Code:
sudo apt-get install build-essential
Note: Please run ./mk ckeck-env to verify your build enviroment (Newer GNU MAKE will fail but the code compiles the same with new or older version)
Build:
Code:
./mk bm_new k
Testing your new kernel:
Download both attachments (KernelSwapper and BootimgRestore).
Append headers from stock kernel to zImage (which can be found at ./out/target/product/huawei82_cwet_kk/obj/KERNEL_OBJ/arch/arm/boot/zImage)
In KernelSwapper update 'kernel' with your own generated zImage rename it to 'kernel' and replace it inside zip.
In BootimgRestore replace 'boot.img' with your current ROM's boot.img in case that something goes wrong (e.g.: Phone not booting).
Copy the two new zips into phone's memory (or SD card) and flash KernelSwapper.
===== Reserved #1 =====
Thanks for the awesome work KK. I am on CM 13 3.4.67 kernel. Can i use this or do i have to be in stock rom for testing the kernal?
Sent from my Honor 3C using Tapatalk
---------- Post added at 06:12 AM ---------- Previous post was at 06:02 AM ----------
Update : Flashed the kernel, phone booted but felt laggish while using. I am still testing, will let you know what happens
Sent from my Honor 3C using Tapatalk
karkeankit said:
Thanks for the awesome work KK. I am on CM 13 3.4.67 kernel. Can i use this or do i have to be in stock rom for testing the kernal?
Sent from my Honor 3C using Tapatalk
---------- Post added at 06:12 AM ---------- Previous post was at 06:02 AM ----------
Update : Flashed the kernel, phone booted but felt laggish while using. I am still testing, will let you know what happens
Sent from my Honor 3C using Tapatalk
Click to expand...
Click to collapse
Yes, I'm sure that the kernel has multiple bugs. The phone may feel laggish because there is enabled low-level kernel debugging over UART.
Thank you for testing...
kernel.killer said:
Yes, I'm sure that the kernel has multiple bugs. The phone may feel laggish because there is enabled low-level kernel debugging over UART.
Thank you for testing...
Click to expand...
Click to collapse
You are welcome, wishint you good luck for further development
Sent from my Honor 3C using Tapatalk
Hi, tnx for The kernel
if i Update my kernel VPN bug in CM12.1 will fix?
hamadk said:
Hi, tnx for The kernel
if i Update my kernel VPN bug in CM12.1 will fix?
Click to expand...
Click to collapse
Nope, it's ROM bug not a kernel bug plus I have released only development preview version which has enabled many debugging options and it may be quite buggy.
Thanks, but can this process led to a suitable kernel for CM13?
Does this kernel fixes the video playback problem and the recording problem?(Can't play or capture 720p videos, screen recorder works fine, just the camera.)
Sent from my Huawei Honor 3C using XDA Labs
Lumpbloom7 said:
Does this kernel fixes the video playback problem and the recording problem?(Can't play or capture 720p videos, screen recorder works fine, just the camera.)
Sent from my Huawei Honor 3C using XDA Labs
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=67848925&postcount=8
mhxygh said:
Thanks, but can it this process led to a suitable kernel for CM13?
Click to expand...
Click to collapse
Aim of this project is to make stock kernel sources stable for KitKat ROMs (It is originally for KK) but somebody else may patch them for CM 13. I am not working on this nor I'll do.
Will you be adding extra CPU governors and IO schedulers along with kernel level wakeups for double tap waking?
I was wondering who else is developing kernel 3.10.XX for this device ?
Ms_Julia said:
I was wondering who else is developing kernel 3.10.XX for this device ?
Click to expand...
Click to collapse
Actually, nobody is working on 3.10.X kernel. And I'm rather focusing on LineageOS for now.
What is the defconf for our device in kernel source
imranpopz said:
What is the defconf for our device in kernel source
Click to expand...
Click to collapse
This should include most configs
Code:
/* Mediatek common */
./mediatek/config/common/autoconfig/kconfig/AEE
./mediatek/config/common/autoconfig/kconfig/USER
./mediatek/config/common/ProjectConfig.mk
/* MT6582 common */
./mediatek/config/mt6582/autoconfig/kconfig/platform
./mediatek/config/mt6582/ProjectConfig.mk
/* h30u10 device specific */
./mediatek/config/huawei82_cwet_kk/autoconfig/kconfig/project
./mediatek/config/huawei82_cwet_kk/ProjectConfig.mk
kernel.killer said:
This should include most configs
Code:
/* Mediatek common */
./mediatek/config/common/autoconfig/kconfig/AEE
./mediatek/config/common/autoconfig/kconfig/USER
./mediatek/config/common/ProjectConfig.mk
/* MT6582 common */
./mediatek/config/mt6582/autoconfig/kconfig/platform
./mediatek/config/mt6582/ProjectConfig.mk
/* h30u10 device specific */
./mediatek/config/huawei82_cwet_kk/autoconfig/kconfig/project
./mediatek/config/huawei82_cwet_kk/ProjectConfig.mk
Click to expand...
Click to collapse
Replace Device Name with the configuration file found at:
Source/arch/arm/configs
It's written in this way something_DeviceCodename_user_defconfig
I need for the above step.. ☝☝☝
imranpopz said:
Replace Device Name with the configuration file found at:
Source/arch/arm/configs
It's written in this way something_DeviceCodename_user_defconfig
I need for the above step.. ☝☝☝
Click to expand...
Click to collapse
Well... This is Mediatek, DO NOT expect the sources to look nice. The configs are scattered through ./mediatek subdirectories, *.mk files are parsed and configs are assembled during build. Unfortunatelly, even if you manually assemble .config you will NOT be able to build the kernel. It is full of dirty hacks (Mediatek) and just typing "make" won't work, build will break.
Build:
Code:
$ git clone https://github.com/kernel-killer/android_kernel_huawei_h30u10.git
$ cd android_kernel_huawei_h30u10
$ export ARCH=arm && export ARCH_MTK_PLATFORM=mt6582 && export TARGET_PRODUCT=huawei82_cwet_kk
$ export CROSS_COMPILE=/path-to-your-toolchain/.../bin/arm-linux-androideabi-
$ ./mk n k
Code:
$ ./mk -h
Usage: (makeMtk|mk) [options] project actions [modules]
Options:
-t, -tee : Print log information on the standard-out.
-o, -opt=bypass_argument_to_make
: Pass extra arguments to make.
-h, -help : Print this message and exit.
Projects:
one of available projects.
Actions:
listp, listproject
: List all available projects.
check-env : Check if build environment is ready.
check-dep : Check feature dependency.
n, new : Clean and perform a full build.
c, clean : Clean the immediate files(such as, objects, libraries etc.).
r, remake : Rebuild(target will be updated if any dependency updats).
mrproper : Remove all generated files + config + various backup files in Kbuild process.
bm_new : "new" + GNU make's "-k"(keep going when encounter error) feature.
bm_remake : "remake" + GNU make's "-k"(keep going when encounter error) feature.
mm : Build module through Android native command "mm"
mma : Build module through Android native command "mma"
emigen : Generate EMI setting source code.
nandgen : Generate supported NAND flash device list.
codegen : Generate trace DB(for META/Cather etc. tools used).
drvgen : Generate driver customization source.
custgen : Generate customization source.
javaoptgen : Generate the global java options.
ptgen : Generate partition setting header & scatter file.
bindergen : Generate binder related information
sign-image : Sign all the image generated.
encrypt-image : Encrypt all the image generated.
update-api : Android default build action
(be executed if system setting or anything removed from API).
check-modem : Check modem image consistency.
upadte-modem : Update modem image located in system.img.
modem-info : Show modem version
gen-relkey : Generate releasekey for application signing.
check-appres : Check unused application resource.
sdk : Build sdk package.
win_sdk : Build sdk package with a few Windows tools.
banyan_addon : Build MTK sdk addon.
banyan_addon_x86 :Build MTK sdk x86 addon.
cts : Build cts package.
bootimage : Build boot image(boot.img).
cacheimage : Build cache image(cache.img).
systemimage : Build system image(system.img).
snod : Build system image without dependency.
(that is, ONLY pack the system image, NOT checking its dependencies.)
recoveryimage : Build recovery image(recovery.img).
secroimage : Build secro image(secro.img).
factoryimage : Build factory image(factory.img).
userdataimage : Build userdata image(userdata.img).
userdataimage-nodeps
: Build userdata image without dependency.
(that is, ONLY pack the userdata image, NOT checking its dependencies.)
dump-products : Dump products related configuration(PRODUCT_PACKAGE,PRODUCT_NAME ect.)
target-files-package
: Build the target files package.
(A zip of the directories that map to the target filesystem.
This zip can be used to create an OTA package or filesystem image
as a post-build step.)
updatepackage : Build the update package.
dist : Build distribution package.
Modules:
pl, preloader : Specify to build preloader.
lk : Specify to build little kernel.
md32 : Specify to build DSP md32.
tz, trustzone : Specify to build trusted execution environment.
k, kernel : Specify to build kernel.
dr, android : Specify to build android.
NULL : Specify to build all components/modules in default.
k <module path>
: Specify to build kernel component/module with the source path.
dr <module name>
: Specify to build android component/module with module name.
Other tools:
prebuilts/misc/linux-x86/ccache/ccache -M 10G
: Set CCACHE pool size to 10GB
Example:
./mk -t e1k emigen
: Generate EMI setting source code.
./mk -o=TARGET_BUILD_VARIANT=user e1k n
: Start a user mode full build.
./mk listp : List all available projects.
./mk e1k bootimage
: Build bootimage for e1k project.
./mk e1k bm_new k
: Build kernel for e1k project.
./makeMtk e1k c,bm_remake pl k
: Clean & Build preloader and kernel for e1k project.
./makeMtk e1k n k kernel/xxx/xxx
: Build(full build) kernel component/module
under the path "kernel/xxx/xxx" for e1k project.
./makeMtk e1k r dr Gallery
: Rebuild android module named Gallery for e1k project.
./makeMtk e1k mm packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mm"
./makeMtk e1k mma packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mma"
Edit:
I fixed the sources, so menuconfig can be used.
Apply patch:
Code:
$ git am 0001-Fix-build-using-make-command.patch
Build:
Code:
$ cd kernel && export ARCH=arm && export ARCH_MTK_PLATFORM=mt6582 && export TARGET_PRODUCT=huawei82_cwet_kk
$ export CROSS_COMPILE=/path-to-your-toolchain/.../bin/arm-linux-androideabi-
$ make -C $(pwd) O=output h30u10_defconfig menuconfig
$ make -C $(pwd) O=output
Append MTK headers:
Code:
$ ../mediatek/build/tools/mkimage output/arch/arm/boot/zImage KERNEL > output/zImage
*Note: I recommend using AOSP arm-linux-androideabi-4.9 toolchain.
Getting cp: cannot stat 'out/target/product/huawei82_cwet_kk_kernel.log
Make [1]: [kernel ] error 1
Make: *** [remake] error 2
SOLVED: SEE POST #4 TO SEE HOW TO FIX IT
Hi I am getting some Java errors while compiling CrDroid rom for samsung s3 i747. Compiling is fine until It arrives at Download manager. I retried 5 times compiling this rom but had no success This is the first time building a rom.
I am using open jdk 1.8 and I have 8 GB RAM on my VM With Ubuntu Bionic Beaver
Code:
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadStorageProvider.java:326: The method setFilterByString(String) is undefined for the type DownloadManager.Query
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:150: COLUMN_DESTINATION cannot be resolved or is not a field
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:155: COLUMN_FILE_NAME_HINT cannot be resolved or is not a field
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1133: The method update(SQLiteDatabase, ContentValues, String, String[]) is undefined for the type SQLiteQueryBuilder
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1237: The method setStrictColumns(boolean) is undefined for the type SQLiteQueryBuilder
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1238: The method setStrictGrammar(boolean) is undefined for the type SQLiteQueryBuilder
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1316: The method delete(SQLiteDatabase, String, String[]) is undefined for the type SQLiteQueryBuilder
At the end, I get the Ninja Wrapper error 1.
I tried ninja wrapper disable but had no success.
EDIT: SEE THE FIX BELOW
alexenferman said:
Hi I am getting some Java errors while compiling CrDroid rom for samsung s3 i747. Compiling is fine until It arrives at Download manager. I retried 5 times compiling this rom but had no success This is the first time building a rom.
I am using open jdk 1.8 and I have 8 GB RAM on my VM With Ubuntu Bionic Beaver
Code:
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadStorageProvider.java:326: The method setFilterByString(String) is undefined for the type DownloadManager.Query
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:150: COLUMN_DESTINATION cannot be resolved or is not a field
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:155: COLUMN_FILE_NAME_HINT cannot be resolved or is not a field
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1133: The method update(SQLiteDatabase, ContentValues, String, String[]) is undefined for the type SQLiteQueryBuilder
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1237: The method setStrictColumns(boolean) is undefined for the type SQLiteQueryBuilder
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1238: The method setStrictGrammar(boolean) is undefined for the type SQLiteQueryBuilder
ERROR: /home/android/crDroid/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadProvider.java:1316: The method delete(SQLiteDatabase, String, String[]) is undefined for the type SQLiteQueryBuilder
At the end, I get the Ninja Wrapper error 1.
I tried ninja wrapper disable but had no success.
Click to expand...
Click to collapse
EDIT: I SKIPPED theese errors! I compiled the rom and it will be uploaded soon!
alexenferman said:
EDIT: I SKIPPED theese errors! I compiled the rom and it will be uploaded soon!
Click to expand...
Click to collapse
Hmmm, how did you do it, I have same error myself.
HOW TO FIX:
The fact is if you try to compile a nougat rom you might come across this error.
Looks like someone messed up the source code of the package Download Provider and Managed Provisionning from github.
My first solution was to skip the packages but in my rom the download manager would not work which would make the rom unusable for internet purposes.
My second solution and the best solution is to revert a few commits back (Downgrading the package sourcecode from Github)
You can download each of the packages (Older versions which work) Theese are for cm-14.1
Managed Provisionning: https://github.com/LineageOS/androi...tree/01eebf922cb5a6cef07e11631c9d0b82100509a3
Download Provider: https://github.com/LineageOS/androi...tree/21b5b3c3edd6dde44098aac75daa1f55d5a68f77
Download both zip files and extract them
Then open Terminal and type sudo nautilus
Go to your rom folder > Packages > Apps > ManagedProvisioning
and replace the managed provisioning folder contents with the folder contents that you downloaded called Managed Provisionning
Do the same thing with Download Provider
Go to your rom folder > Packages > Providers > DownloadProvider
and replace the DownloadProvider folder contents with the folder contents that you downloaded called DownloadProvider
Then you can compile peacefully your rom without any error!
If you don't understand something make sure to tell me!
Thank you. . I've got this error too while building AICP (also lineage-based) nougat
I've got this error while building AICP, dotOS and Ressurection Remix and guess I'll face this error with any custom rom other than lineage.
LineageOS is a free, community built, aftermarket firmware distribution of Android 10, which is designed to increase performance and reliability over stock Android for your device.
LineageOS is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. You will need to provide your own Google Applications package (gapps). LineageOS does still include various hardware-specific code, which is also slowly being open-sourced anyway.
Base source code is available in the LineageOS Github repo. And if you would like to contribute to the project, please visit our Gerrit Code Review.
GPL compliance:
Device tree source code: LineageOS/android_device_xiaomi_scorpio
Kernel source code: LineageOS/android_device_xiaomi_msm8996-common
Broken / not yet supported:
Tell Me
Downloads:
LineageOS Downloads
Notice:
No custom kernels are supported in this thread. Only stock kernel and official builds will be supported. No bug reports if that's not the case.
Installation:
Reboot to recovery (TWRP recovery for Mi Note 2 - Direct link)
Format /system, /data and /cache
Install LineageOS zip package
Install [optional] the LineageOS su addon to get root (there are obviously other root methods, but this is the recommended one as it survives to OTA updates)
Install [optional] a Google Apps package of your choice (Open GApps is advisable, but stock and super variants are not recommended!!!)
Credits & collaborations:
joe2k01
.
Finally, all LineageOS team would like to thank everyone involved in helping with testing, coding, debugging & documenting! Enjoy!
Device wiki:
Official wiki link
Contributors
joe2k01
ROM OS Version: 10.x
ROM Kernel: Linux 3.x
ROM Firmware Required: MIUI 8.8.30 Beta
Version Information
Status: Stable
Created 2021-01-19
Last Updated 2021-02-09
I installed lineage 18.1. But no Volte support. Any way to enable it?
There's a bug when opening Settings > System > Buttons. Here's the logcat I found:
Code:
HidlServiceManagement: Waited one second for [email protected]::IKeySwapper/default
hwservicemanager: Since [email protected]::IKeySwapper/default is not registered, trying to start it as a lazy HAL.
HidlServiceManagement: getService: Trying again for [email protected]::IKeySwapper/default...
libc : Unable to set property "ctl.interface_start" to "[email protected]::IKeySwapper/default": error code: 0x20
chatty : uid=0(root) logd identical 10 lines
init : Control message: Could not find '[email protected]::IKeySwapper/default' for ctl.interface_start from pid: 451 (/system/bin/hwservicemanager)
logd : logdr: UID=2000 GID=2000 PID=7072 n tail=0 logMask=99 pid=0 start=0ns timeout=0ns
cc: @fernandodtg @joe2k01
ChessPiece said:
There's a bug when opening Settings > System > Buttons. Here's the logcat I found:
Code:
HidlServiceManagement: Waited one second for [email protected]::IKeySwapper/default
hwservicemanager: Since [email protected]::IKeySwapper/default is not registered, trying to start it as a lazy HAL.
HidlServiceManagement: getService: Trying again for [email protected]::IKeySwapper/default...
libc : Unable to set property "ctl.interface_start" to "[email protected]::IKeySwapper/default": error code: 0x20
chatty : uid=0(root) logd identical 10 lines
init : Control message: Could not find '[email protected]::IKeySwapper/default' for ctl.interface_start from pid: 451 (/system/bin/hwservicemanager)
logd : logdr: UID=2000 GID=2000 PID=7072 n tail=0 logMask=99 pid=0 start=0ns timeout=0ns
cc: @fernandodtg @joe2k01
Click to expand...
Click to collapse
Just flash this vendor in TWRP (install - install image - vendor partition). One of the 4pda's user had corrected buttons settings + google camera fix.
vendor_fix.img
drive.google.com
The
ChessPiece said:
There's a bug when opening Settings > System > Buttons. Here's the logcat I found:
Code:
HidlServiceManagement: Waited one second for [email protected]::IKeySwapper/default
hwservicemanager: Since [email protected]::IKeySwapper/default is not registered, trying to start it as a lazy HAL.
HidlServiceManagement: getService: Trying again for [email protected]::IKeySwapper/default...
libc : Unable to set property "ctl.interface_start" to "[email protected]::IKeySwapper/default": error code: 0x20
chatty : uid=0(root) logd identical 10 lines
init : Control message: Could not find '[email protected]::IKeySwapper/default' for ctl.interface_start from pid: 451 (/system/bin/hwservicemanager)
logd : logdr: UID=2000 GID=2000 PID=7072 n tail=0 logMask=99 pid=0 start=0ns timeout=0ns
cc: @fernandodtg @joe2k01
Click to expand...
Click to collapse
This bug has been fixed in the official build.
Thanks @Wiwern and @LuK1337
Wow, updated my old phone. Love it
Can someone post the build pls, the link of the OP doesn't have any file for the Mi Note 2.
thanks
I took this guide and built a fresh LOS 18.1 for scorpio
Build for scorpio | LineageOS Wiki
wiki.lineageos.org
It was not easy (2 hrs on my i7 12700/64Gb/970Evo+) but succesuful....
Everyone can take it here (or make their own build)
lineage-18.1-20230327-UNOFFICIAL-scorpio.zip
drive.google.com
The only hint is to edit roomservice.py, make it first line #!/usr/bin/env python3 and you can extract proprietary blobs for scorpio.
Library: Dexplore
[Develop Portable Xposed Module] - [For Any Obfuscated Apps]
About: Dexplore is a dex analyzing library for finding obfuscated classes and methods at runtime. There is also a command line tool for static analysis and app de-compilation.
Highlight: Now you can develop portable Xposed module for any obfuscated apps (eg: snapchat, youtube, whatsapp, facebook etc). You don't have to worry about updating the module every time they release new versions, Dexplore will take care of obfuscated classes based on your provided query.
Example: Disable 'msg seen' in messenger
A more detailed explanation and examples can be found at: Github Wiki
The library is available at maven central repository: Dexplore
Java:
repositories {
mavenCentral()
}
dependencies {
implementation 'io.github.neonorbit:dexplore:1.4.5'
}
Command Line tool: Download
Java:
java -jar Dexplore-1.4.5.jar --help
Changelogs:
Release v1.4.5:
- [LIB] Add support for in-memory dex
- [LIB] Add various helper methods
- [LIB] Fix bugs in annotation filter
- [CLI] Update decompiler library
- [CLI] New option: advanced search query
- [LIB+CLI] New condition: set package names
- [LIB+CLI] New condition: set number literals
- [LIB+CLI] New condition: set source filenames
- [LIB+CLI] New condition: set class simple names
Release v1.4.4:
- [LIB] Fix class loading issues
- [LIB] Fix de-serialization failure
- [LIB] Add constructor helper methods
Release v1.4.3:
- [LIB] Fix de-serialization failure
Release v1.4.2:
- [LIB] Minor improvements
- [CLI] Improvement: rewrite from scratch
- [CLI] New command: search [redesigned]
- [CLI] New command: decode [decompiler]
Release v1.4.0:
- [LIB] Make API thread-safe
- [LIB] Add support for batch operation
- [LIB] Add support for parallel execution
- [LIB] Add Filter conditions for annotaion
- [CLI] Fix @file expansion in arguments
Release v1.3.0:
- [LIB] Several enhancements
- [CLI] New option: specify classes (-c)
- [CLI] New option: generate source files (-s)
- [CLI] Improvement: show results in real-time
Release v1.2.0:
- [LIB] Add documentation
- [LIB] Improve search accuracy
- [LIB] Fix several known bugs
- [LIB] Improve performance
Release v1.0.1:
- [LIB] Support multiple preferred dexes
- [CLI] New option: print full details (-d)
Click to expand...
Click to collapse
Source Code: Github
API Overview: Javadoc
Implementation: Github Wiki
If you need any help with implementation, comment here.
For bugs and feature request, create an issue on the github repo.
Used by: ChatHeadEnabler
[reserved]
Xposed Implementation Sample:
- Find all the necessary classes/methods using Dexplore at runtime and save them to Preferences.
- Do your necessary hooking with Xposed.
- Next time simply load them from Preferences.
[Implement dexplore queries to re-fetch automatically whenever version code changes]
Example: Block 'msg seen status' in facebook messenger (check Github Wiki for documentation):
Java:
public class XposedModule implements IXposedHookLoadPackage {
@Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if (!lpparam.packageName.equals("com.facebook.orca")) return;
// Create a class filter to find our target class
ClassFilter classFilter = new ClassFilter.Builder()
.setReferenceTypes(ReferenceTypes.builder().addString().build())
.setReferenceFilter(pool ->
pool.contains("Montage thread ")
).build();
// Create a method filter to find our target method from the class
MethodFilter methodFilter = new MethodFilter.Builder()
.setReferenceTypes(ReferenceTypes.builder().addString().build())
.setReferenceFilter(pool ->
pool.contains("has_seen")
).setParamSize(3)
.setModifiers(Modifier.PUBLIC)
.build();
// Load the base apk into Dexplore
Dexplore dexplore = DexFactory.load(lpparam.appInfo.sourceDir);
// Search method
MethodData result = dexplore.findMethod(DexFilter.MATCH_ALL, classFilter, methodFilter);
// Xposed hook: this will block Seen Status from being sent
XposedBridge.hookMethod(result.loadMethod(lpparam.classLoader), XC_MethodReplacement.returnConstant(null)));
}
Hello, After reading github wiki, I could successfully track class name changes dynamically. But when I read back the result from preference and try to deserialize by library method, it throws an IllegalArgumerntException.
ranej700 said:
Hello, After reading github wiki, I could successfully track class name changes dynamically. But when I read back the result from preference and try to deserialize by library method, it throws an IllegalArgumerntException.
Click to expand...
Click to collapse
How exactly did you try to de-serialize it? Could you provide the class name that you are trying to de-serialize?
NeonOrbit said:
How exactly did you try to de-serialize it? Could you provide the class name that you are trying to de-serialize?
Click to expand...
Click to collapse
I followed this Xposed Sample .
Deserialized with:
Java:
ClassData.deserialize(saved_result)
Class name was 3mt I think.
ranej700 said:
Class name was 3mt I think.
Click to expand...
Click to collapse
Got it, I'll release a new version soon.
Update: v1.4.3
Changelog:
- Fix de-serialization failure
NeonOrbit said:
Update: v1.4.3
Changelog:
- Fix de-serialization failure
Click to expand...
Click to collapse
That was quick, thanks.
One more request, I managed to find classes with simple search, but there are some classes that doesn't have anything specific to search with. I read advanced search section, but it's confusing for me. Can I message you personally? I need help with advanced search.
ranej700 said:
Can I message you personally? I need help with advanced search.
Click to expand...
Click to collapse
Sure, anytime.
Update: v1.4.4
Changelog:
- Fix class loading issues
- Fix de-serialization failure
- Add constructor helper methods
This library will be able to load dex files if they are extracted from apk and placed in a separate folder in /data/data/com.example.apk/files?
Blue cat said:
This library will be able to load dex files if they are extracted from apk and placed in a separate folder in /data/data/com.example.apk/files?
Click to expand...
Click to collapse
It supports apk, dex, odex, oat, zip files.
If your app can access the file, so should the library. Doesn't matter where it's placed.
Is it possible to search using string id? 0x7F1201EA or 2131886570
Blue cat said:
Is it possible to search using string id? 0x7F1201EA or 2131886570
Click to expand...
Click to collapse
It would be useless, since resource Ids are not static.
NeonOrbit said:
Example: Block 'msg seen status' in facebook messenger (check Github Wiki for documentation):
Java:
public class XposedModule implements IXposedHookLoadPackage {
@Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if (!lpparam.packageName.equals("com.facebook.orca")) return;
// Create a class filter to find our target class
ClassFilter classFilter = new ClassFilter.Builder()
.setReferenceTypes(ReferenceTypes.builder().addString().build())
.setReferenceFilter(pool ->
pool.contains("Montage thread ")
).build();
// Create a method filter to find our target method from the class
MethodFilter methodFilter = new MethodFilter.Builder()
.setReferenceTypes(ReferenceTypes.builder().addString().build())
.setReferenceFilter(pool ->
pool.contains("has_seen")
).setParamSize(3)
.setModifiers(Modifier.PUBLIC)
.build();
// Load the base apk into Dexplore
Dexplore dexplore = DexFactory.load(lpparam.appInfo.sourceDir);
// Search method
MethodData result = dexplore.findMethod(DexFilter.MATCH_ALL, classFilter, methodFilter);
// Xposed hook: this will block Seen Status from being sent
XposedBridge.hookMethod(result.loadMethod(lpparam.classLoader), XC_MethodReplacement.returnConstant(null)));
}
Click to expand...
Click to collapse
I've been looking for a module to do exactly this, do you implement this into anything or is it just a code example currently? I don't know enough about module development to "make it work" myself. I thought about trying to add the code into Weiju2 but I think that is only Lua coding for now. Which of course I don't know
Galaxy-Geek#1 said:
I've been looking for a module to do exactly this, do you implement this into anything or is it just a code example currently? I don't know enough about module development to "make it work" myself. I thought about trying to add the code into Weiju2 but I think that is only Lua coding for now. Which of course I don't know
Click to expand...
Click to collapse
It's just a code example, it works partially. To implement it fully, someone will have to analyze the source code properly.
Absolute legend!
Do you mind adding support for caching ? For example some class that takes Context and app version as an argument and automatically caches the method for you, or it determines whether it should be searched again when the version changes.
I'm back with Messenger Pro development by the way !
Mino260806 said:
Do you mind adding support for caching ? For example some class that takes Context and app version as an argument and automatically caches the method for you, or it determines whether it should be searched again when the version changes.
Click to expand...
Click to collapse
I'm not sure whether it's a good idea for a library to accept Context as argument and perform low level operations like writting to Preferences.
However, it has 'serialize()' and 'deserialize()' methods, you can easily write a helper method to save result + app version in Preferences. Take a look at this Xposed Samples.
Mino260806 said:
I'm back with Messenger Pro development by the way !
Click to expand...
Click to collapse
Good luck :.)