[ROM][11.0][UNOFFICIAL][Testing] LineageOS 18.1 for Wileyfox Swift - Wileyfox Swift

Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
Remarks:
This thread is thought to collect issues and ideas. It has to be considered being a TESTING version.
Once everything is mature, an official build may be possible.
Installation:
If you are on stock OS, you need a custom recovery first. You can get the recommended Lineage recovery in the official installation instructions link below.
If you are coming from stock or other ROMs, you need to make a factory reset.
As always, make sure to backup before installing this ROM.
Also make sure you've got the correct firmware installed before installing LineageOS.
More detailed instructions at:
Install LineageOS on crackling
115ek's test builds (for testers only)
Downloads
Recommended Google Apps package:
none: GApps don't fit at the moment. A repartitioning is needed. Currently thinking about this...
Donate to support development:
Donate via PayPal to LineageOS

Changelog
06.12.2021
updated lineage sources
11.09.2021
fixed livedisplay
updated lineage sources
22.07.2021
initial version

reserved

It's been a while since I tried 18 and I'm tempted to look at the latest. Before I do, are there any major problems other than gapps. I appreciate it needs to be tested but I'd like to be aware if there are any major parts not working.

petexd said:
It's been a while since I tried 18 and I'm tempted to look at the latest. Before I do, are there any major problems other than gapps. I appreciate it needs to be tested but I'd like to be aware if there are any major parts not working.
Click to expand...
Click to collapse
Livedisplay is not working at the moment.

I had to remove it because it wouldn't load my photos and I didn't have time to play around with it. It's actually my only phone. It did, however, instal basic flamegapps.
I also got error 255 when tryin to restore my backup but I'm up and running now with 17.1. I'll try 18.1 again soon when I have more time to mess around with it and if I can sort out error 255

Very cool, thanks! What is the upstreaming status? That would be great as microG builds would be available automatically as well. That one I'd install right away.

ajjin0 said:
Very cool, thanks! What is the upstreaming status? That would be great as microG builds would be available automatically as well. That one I'd install right away.
Click to expand...
Click to collapse
I've got so less time at the moment. I hope I'll find some to continue the work.

New build is up. Livedisplay is working now.
Download

Wow great work.

@115ek Thank you for the new build.
I tried to compile Lineage18.1 myself, but ended up in a boot loop. I assume this is the relevant part of the log, since it repeats over and over again:
Spoiler
Code:
01-01 21:28:58.399 4357 4357 I [email protected]: LiveDisplay HAL service is starting.
01-01 21:28:58.404 4357 4357 D DISP_API: disp_api_get_num_display_modes.
01-01 21:28:58.458 4357 4357 D DISP_API: disp_api_get_num_display_modes successful getting num-of-modes = 6.
01-01 21:28:58.458 4357 4357 D DISP_API: disp_api_get_num_display_modes.
01-01 21:28:58.510 4357 4357 D DISP_API: disp_api_get_num_display_modes successful getting num-of-modes = 6.
01-01 21:28:58.512 220 220 I hwservicemanager: getTransport: Cannot find entry [email protected]::IDisplayModes/default in either framework or device manifest.
01-01 21:28:58.512 4357 4357 E HidlServiceManagement: Service [email protected]::IDisplayModes/default must be in VINTF manifest in order to register/get.
01-01 21:28:58.513 4357 4357 E [email protected]: Could not register service for LiveDisplay HAL DisplayModes Iface (-2147483648)
01-01 21:28:58.514 4357 4357 E [email protected]: LiveDisplay HAL service is shutting down.
01-01 21:28:58.521 0 0 I init : Service 'vendor.livedisplay-hal-2-0-legacymm' (pid 4357) exited with status 1
01-01 21:28:58.521 0 0 I init : Sending signal 9 to service 'vendor.livedisplay-hal-2-0-legacymm' (pid 4357) process group...
01-01 21:28:58.521 0 0 I libprocessgroup: Successfully killed process cgroup uid 1000 pid 4357 in 0ms
01-01 21:28:59.391 219 219 I servicemanager: Since 'android.hardware.power.IPower/default' could not be found, trying to start it as a lazy AIDL service
01-01 21:28:59.391 4193 4193 W ServiceManager: Waited one second for android.hardware.power.IPower/default
01-01 21:28:59.393 219 4360 W libc : Unable to set property "ctl.interface_start" to "aidl/android.hardware.power.IPower/default": error code: 0x20
01-01 21:28:59.395 0 0 E init : Control message: Could not find 'aidl/android.hardware.power.IPower/default' for ctl.interface_start from pid: 219 (/system/bin/servicemanager)
01-01 21:29:00.392 219 219 I servicemanager: Since 'android.hardware.power.IPower/default' could not be found, trying to start it as a lazy AIDL service
01-01 21:29:00.392 4193 4193 W ServiceManager: Waited one second for android.hardware.power.IPower/default
My local manifest looks like:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="115ek/android_device_wileyfox_crackling" path="device/wileyfox/crackling" remote="github" />
<project name="115ek/android_device_cyanogen_msm8916-common" path="device/cyanogen/msm8916-common" remote="github" />
<project name="115ek/proprietary_vendor_wileyfox" path="vendor/wileyfox" remote="github" />
<project name="LineageOS/android_kernel_cyanogen_msm8916" path="kernel/cyanogen/msm8916" revision="lineage-17.1" />
<project name="LineageOS/android_hardware_sony_timekeep" path="hardware/sony/timekeep" remote="github" />
</manifest>
Does your manifest look the same? Are there any additional patches I have to apply to get it working? I would highly appreciate it if you could share your steps to build LineageOS 18.1.

mmustermann717 said:
Does your manifest look the same?
Click to expand...
Click to collapse
This should be fine, yes.
mmustermann717 said:
Are there any additional patches I have to apply to get it working?
Click to expand...
Click to collapse
Yes. I still have some local changes I didn't push yet. There are two kernel patches required for enforcing SE linux which I didn't upload yet.
But permissive mode should work. You can switch to permissive for now by:
adding androidboot.selinux=permissive to https://github.com/115ek/android_de...7d4427d6896080f77946/BoardConfigCommon.mk#L94
The thing you see in the log is the broken livedisplay. I also have a local unpublished change here:
Code:
--- a/manifest.xml
+++ b/manifest.xml
@@ -184,6 +184,10 @@
<name>IDisplayColorCalibration</name>
<instance>default</instance>
</interface>
+ <interface>
+ <name>IDisplayModes</name>
+ <instance>default</instance>
+ </interface>
<interface>
<name>IPictureAdjustment</name>
<instance>default</instance>
You can try it that way. But in any case I should publish those changes. I just need to find some spare minutes to write a proper commit message and clean things up.

115ek said:
This should be fine, yes.
Yes. I still have some local changes I didn't push yet. There are two kernel patches required for enforcing SE linux which I didn't upload yet.
But permissive mode should work. You can switch to permissive for now by:
adding androidboot.selinux=permissive to https://github.com/115ek/android_de...7d4427d6896080f77946/BoardConfigCommon.mk#L94
The thing you see in the log is the broken livedisplay. I also have a local unpublished change here:
Code:
--- a/manifest.xml
+++ b/manifest.xml
@@ -184,6 +184,10 @@
<name>IDisplayColorCalibration</name>
<instance>default</instance>
</interface>
+ <interface>
+ <name>IDisplayModes</name>
+ <instance>default</instance>
+ </interface>
<interface>
<name>IPictureAdjustment</name>
<instance>default</instance>
You can try it that way. But in any case I should publish those changes. I just need to find some spare minutes to write a proper commit message and clean things up.
Click to expand...
Click to collapse
Thank you very much! That worked.

I increased the system partition, a little while ago and backups were restoring OK so I've decided to try 18.1 again.
I must say, it performs really well for the stuff I need. I also like that I can now do calendar etc backups to my sdcard. Much more sensible IMO.
Thanks 115ek. A great job.
I'd like to have a go at building but I'm not sure where to start without the explicit menu like 17.1

Thanks to 115ek for the 18.1 set up and to mmustermann717 for his local manifest. I have managed to build 18.1 after a few errors which appeared to be out of memory problems.
I fixed that and was able to complete the build.
Thanks both of you
I was too quick to brag. Im getting a boot loop. I made the changes from 115ek's response #12, so I don't know where I've gone wrong.
Can either of you tell me please?

115ek said:
This should be fine, yes.
Yes. I still have some local changes I didn't push yet. There are two kernel patches required for enforcing SE linux which I didn't upload yet.
But permissive mode should work. You can switch to permissive for now by:
adding androidboot.selinux=permissive to https://github.com/115ek/android_de...7d4427d6896080f77946/BoardConfigCommon.mk#L94
The thing you see in the log is the broken livedisplay. I also have a local unpublished change here:
Code:
--- a/manifest.xml
+++ b/manifest.xml
@@ -184,6 +184,10 @@
<name>IDisplayColorCalibration</name>
<instance>default</instance>
</interface>
+ <interface>
+ <name>IDisplayModes</name>
+ <instance>default</instance>
+ </interface>
<interface>
<name>IPictureAdjustment</name>
<instance>default</instance>
You can try it that way. But in any case I should publish those changes. I just need to find some spare minutes to write a proper commit message and clean things up.
Click to expand...
Click to collapse
I've tried all of this several times. I get a successful build but a boot loop every time.
The lineage source says successful, it doesn't actually boot so I have no idea how to find any error? Is there anything I can look for? Or can you guess?
I'd appreciate the help if you can. Thanks.

Hey
petexd said:
how to find any error?
Click to expand...
Click to collapse
The best way would be attaching some cables to get a console over UART. However, this requires some hardware knowledge and most likely some soldering. I haven't had a look into the crackling hardware yet.
Then you could use the android logcat command. Unfortunately adb has to work for that.
A third option could be "loggy", a simple script writing the logs to a defined location. Have a look here.
petexd said:
Or can you guess?
Click to expand...
Click to collapse
You could, but I'm not sure if that really helps.
petexd said:
Is there anything I can look for?
Click to expand...
Click to collapse
What does this line looks like (exactly!) in your sources? Could you post it here?
I'd try to use a known to be working boot.img - you could extract one from my latest 18.1 upload. That way you could exclude some potential problems.

115ek said:
Hey
The best way would be attaching some cables to get a console over UART. However, this requires some hardware knowledge and most likely some soldering. I haven't had a look into the crackling hardware yet.
Then you could use the android logcat command. Unfortunately adb has to work for that.
A third option could be "loggy", a simple script writing the logs to a defined location. Have a look here.
You could, but I'm not sure if that really helps.
What does this line looks like (exactly!) in your sources? Could you post it here?
I'd try to use a known to be working boot.img - you could extract one from my latest 18.1 upload. That way you could exclude some potential problems.
Click to expand...
Click to collapse
This is the line you asked about:
BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 loop.max_part=7 androidboot.selinux=permissive
I've tried my build with your boot.img but it still bootloops.

115ek said:
Hey
The best way would be attaching some cables to get a console over UART. However, this requires some hardware knowledge and most likely some soldering. I haven't had a look into the crackling hardware yet.
Then you could use the android logcat command. Unfortunately adb has to work for that.
A third option could be "loggy", a simple script writing the logs to a defined location. Have a look here.
You could, but I'm not sure if that really helps.
What does this line looks like (exactly!) in your sources? Could you post it here?
I'd try to use a known to be working boot.img - you could extract one from my latest 18.1 upload. That way you could exclude some potential problems.
Click to expand...
Click to collapse
I've tried again and the last 4 lines of the build are:
2021-10-18 16:11:33 - ota_from_target_files.py - INFO : done.
Warning: could not find RADIO/filesmap in <zipfile.ZipFile object at 0x7f982df1bf50>.
Warning: could not find RADIO/filesmap in <zipfile.ZipFile object at 0x7f982df1bf50>.
Compressing system.new.dat with brotli
warning radio-update: no radio image in input target_files; not flashing radio
[100% 24/24] build bacon
Package Complete: out/target/product/crackling/lineage-18.1-20211018-UNOFFICIAL-crackling.zip
#### build completed successfully
Is this OK? I thought bacon was another phone (oneplus?)

Hey
115ek said:
The best way would be attaching some cables to get a console over UART. However, this requires some hardware knowledge and most likely some soldering. I haven't had a look into the crackling hardware yet.
Then you could use the android logcat command. Unfortunately adb has to work for that.
A third option could be "loggy", a simple script writing the logs to a defined location. Have a look here.
You could, but I'm not sure if that really helps.
What does this line looks like (exactly!) in your sources? Could you post it here?
I'd try to use a known to be working boot.img - you could extract one from my latest 18.1 upload. That way you could exclude some potential problems.
Click to expand...
Click to collapse
I get this , just bfore the build completes successfully. Do you know if this has anything to do with the problem.
99% 463/464] Package OTA: out/target/product/crackling/lineage_crackling-ota-eng.pet
2021-10-19 18:02:26 - common.py - WARNING : Failed to read SYSTEM/etc/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read VENDOR/etc/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read VENDOR/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read PRODUCT/etc/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read PRODUCT/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read SYSTEM_EXT/etc/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read SYSTEM_EXT/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read ODM/etc/build.prop
2021-10-19 18:02:26 - common.py - WARNING : Failed to read ODM/build.prop

Related

[DEV] Building a custom kernel and kernel modules for stock kernel

Since fire phone doesn't have a bootloader unlock at the moment. There is no point in building a custom kernel. But By building a kernel we can build kernel modules which work on the stock kernel. And yes you can load unsigned kernel modules without a problem since fire phone doesn't use tz apps to verify kernel modules like Samsung does.
Setup
Source
Download the fire phone sources for firmware 4.6.1 from here. And extract the platfrom.tar inside the archive to somewhere(KERNEL_DIR).
toolchain
You can use the android ndk from google, But it requires some setup. I'm using linaro toolchain from here. You can use compiler version 4.7, 4.8 or 4.9. Kernel I'm using (Firmware 4.6.3 - Linux 3.4-perf-g280c96c) is built with gcc-4.7. But I'm using this gcc-4.9. Download it, extract is somewhere(TOOLCHAIN_DIR) and add the $TOOLCHAIN_DIR/bin to your PATH. Theoretically you would be able to build the kernel on windows using Cygwin or MSYS tools but using Linux is better.
config
Connect your phone trough adb and run
Code:
adb pull /proc/config.gz
zcat config.gz > $KERNEL_DIR/kernel/qcom/3.4/.config
With this config you will run into some problems because of a missing "trapz_generated_kernel.h". I don't know if this is an auto generated file when they build android as a whole or amazon removed this explicitly(can they do that without violating GPL?). Anyway It looks trapz is some low level kernel debugging function(comment here if you know more about it). We can safely disable it. Open $KERNEL_DIR/kernel/qcom/3.4/.config in a text editor and change the lines
Code:
CONFIG_TRAPZ=y
CONFIG_TRAPZ_TP=y
CONFIG_TRAPZ_TRIGGER=y
CONFIG_HAVOK=y
to
Code:
#CONFIG_TRAPZ=y
#CONFIG_TRAPZ_TP=y
#CONFIG_TRAPZ_TRIGGER=y
#CONFIG_HAVOK=y
building
Now edit the $KERNEL_DIR/kernel/qcom/3.4/Makefile and add this changes
Code:
EXTRAVERSION = -perf-g280c96c
This is at the top of the makefile. If we don't add this, vermagic for the modules will differ from stock kernel and they won't load.
ARCH=arm
CROSS_COMPILE=arm-linux-gnueabihf-
Click to expand...
Click to collapse
Here arm-linux-gnueabihf- is my cross compiler frefix. Look in $TOOLCHAIN_DIR/bin/ to find it.
Now cd into $KERNEL_DIR/kernel/qcom/3.4/ and do
Code:
make
The build will fail a few times complaining about missing headers. Most of the time it's just
Code:
#include <myheader.h>
instead of
Code:
#include "myheader.h"
Edit the source file where the build fails and change <>s to ""s. (maybe android ndk ignores the difference and include the headers anyway)
After kernel compiles, we are good to go. We can use this kernel sources to build kernel modules for stock kernel.
Kernel modules
To build the kernel modules, we basically need two things. An approximate kernel source and the Module.symvers file from the original kernel. We can get the Module.symvers file by building the complete kernel as explained above or Just extract it from our stock kernel.
To extract the Module.symvers from the stock kernel, extract the boot.img file from firmware update image. Get mkbootimg tools from here compile it and run
Code:
unmkbootimg --kernel zImage ---ramdisk ramdisk.cpio.gz -i boot.img
After you get the zImage. Download extract-symvers script from here and run
Code:
python2 extract-symvers.py -B 0xc0008000 zImage > Module.symvers
place this file in $KERNEL_DIR/kernel/qcom/3.4/ (You still have to do the changes mentioned above in kernel config and building section run make in the $KERNEL_DIR/kernel/qcom/3.4 and intrupt it after few seconds)
Now you can build loadable modules against this source. Here is a hello world kernel module.
Code:
//hello.c
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
static int __init hello_start(void)
{
printk("hello to the world from module");
return 0;
}
static void __exit hello_end(void)
{
printk("heloo exit");
}
module_init(hello_start);
module_exit(hello_end);
Code:
#Makefile
KERNEL_DIR=<your kernel dir>/kernel/qcom/3.4
obj-m := hello.o
PWD := $(shell pwd)
default:
$(MAKE) ARCH=arm CROSS_COMPILE=armeb-linux-gnueabi- -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
Put this files in a folder and run make in it. Change the paths and cross compiler prefix according to your setup. and run make.
After the build push the hello.ko to the phone.
Code:
adb push hello.ko /sdcard/
adb shell
su
cd sdcard
insmod hello.ko
run dmesg and you'll see the message.
I'm currently trying to build kexec module from hashcode's sources and USB OTG modules.
I'm attaching a few thing helped me do this.
since they have released this version of the fire os they have to provide the source code
see
http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
you have just shown that the source code they releases for the kernel does not match the one used to build the kernel. This means it is a clear violation of the gpl and amazon is in breach and can be sued.
on another note.
are the drivers for the nfc and camera compiled as a module or into the kernel?
They have yet to provide 4.6.3 and 4.6.4 kernel sources too.
I don't know exactly but in order for NFC and camera to work drivers are required and they are in fact compiled into the kernel.
The problem we currently have with NFC and camera is proprietary hal (hardware abstraction libraries) They are a part of Android and does not subject to GPL. Amazon changed the original android way how hal works and didn't release the sources!
by looking at the kernel drivers maybe we would be able to implement hal from scratch. But I don't see that intense dev support for fire phone. If you are up for it camera sources are at $KERNEL_DIR/kernel/qcom/3.4/drivers/media/platform/msm/camera_v2/
Major MAJOR respect for all of you making the Fire Phone even better!
@madushan1000
Could we do something like this to install a custom boot.img?
http://forum.xda-developers.com/optimus-l9/general/guide-install-custom-roms-locked-t3249828
I don't own this device but has anyone tried to see if kexec works?
spudowiar said:
I don't own this device but has anyone tried to see if kexec works?
Click to expand...
Click to collapse
Nope, I was working on it. But then I got a job. It will be sometime before I can start working on it again.
Could someone please provide the config extracted from /proc/config.gz?
I can't find this on CM11 rom for some reason.
Building the kernel now.
Some bugs are in the code and -Wall and gcc-wrapper.py escalate the warnings.
I wonder if those errors are there on purpose XD
helloworld.ko loaded successfully
I was able to execute kexec without anything. Just the binary.
Will keep you posted - this hacking might take a while to figure it all out.
I already have 3.4 kernel from the amazon sources.
I have the kexec userland program.
What is left is a loadable kexec kernel module (if that is possible at all).
removed
Okarin said:
Are we even sure those Amazon Kernel Sources are correct?
Those errors caught by the wrapper scripts are giving me the creeps.
Git the kexec_load.ko build.
Currently hands on insmod.
Phone doesn't do a reboot any longer:
insmod kexec_load.ko
init_module(0xb6e6c008, 408241, "") = -1 ENOENT (No such file or directory)
write(2, "insmod: init_module '/sdcard/kex"..., 79insmod: init_module '/sdcard/kexec_load.ko' failed (No such file or directory)
) = 79
munmap(0xb6e6c000, 409600) = 0
mprotect(0xb6f8c000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0xb6f8c000, 4096, PROT_READ) = 0
close(0) = 0
close(1) = 0
close(2) = 0
futex(0xb6f6cd74, FUTEX_WAKE_PRIVATE, 2147483647) = 0
munmap(0xb6f8c000, 4096) = 0
exit_group(-1) = ?
First goal is to get module loaded.
Goal reached:
kexec_load 27813 0 - Live 0x00000000 (O)
procfs_rw 12770 0 - Live 0x00000000 (O)
wlan 3793980 0 - Live 0x00000000 (O)
Shouldn't be functional at all..
I disabled some function calls just to get the module loaded.
The missing symbols are:
soft_restart
arch_kexec
machine_shutdown
And the version I use does some insane function hooking ..
More rework is needed.
[email protected]:/data/local # ./kexec /sdcard/vmlinux
kernel: 0xaf12d008 kernel_size: 7e1354c
unrecoverable error: could not scan "/proc/device-tree/": No such file or directory
<6>[ 97.681256] Kexec_load: Replacement... :
<6>[ 97.681344] kexec_load : my_syscall_table : c0106244
<6>[ 97.681405] kexec_load : kexec_load before replacement : c01b346c
<6>[ 97.681480] kexec_load : kexec_load after replacement : bf3a5650
<6>[ 97.681546] kexec_load : reboot before replacement : c01a83f0
<6>[ 97.681616] kexec_load : reboot after replacement : bf3a6348
<6>[ 97.681675] Kexec_load: End replacement... :
<6>[ 202.694691] Kexec: - Starting kexec_load...
<6>[ 202.694849] Kexec: - ---- kexec_load - result : '0'
It gets better:
255|[email protected]:/data/local # ./kexec --dtb=/sdcard/zImage-dtb /sdcard/vmlinux
kernel: 0xaf1b1008 kernel_size: 7e1354c
kexec-zImage-arm : dtb.img BEFORE CUT : Start : '0xae66f008' - Length : '0xb411e9' - End : '0xaf1b01f1'
Segmentation fault
More tomorrow.
Click to expand...
Click to collapse
Where are you getting your kexec module sources from? BTW try using the original amazon kernal binary the phone is shipped with (we are sure it works). Don't use the custom kernel for the kexec tests (We don't know the custom kernel actually works)
madushan1000 said:
Where are you getting your kexec module sources from? BTW try using the original amazon kernal binary the phone is shipped with (we are sure it works). Don't use the custom kernel for the kexec tests (We don't know the custom kernel actually works)
Click to expand...
Click to collapse
Here is the thread I used as a starting point.
I will put up my "fork" on github after I get permission to do that
The userland part build like a charm once I took the compiler you recommended.
The kernel-module was tricky because the whole thing is modded like hell.
To be able to load I had to comment out some hard coded addresses and the calls to unresolvable symbols.
removed
Okay the kernel gets loaded.
But
kexec -e shuts off the device.
strace doesn't help.
On the plus side:
Devices are shutdown
Look promising
I need a way to tail dmesg ...
Okay a lot of digging around and I found out that the reboot syscall doesn't work properly..
It doesn't look like it hits the kexec_module it looks more like it hits the actualy sys_reboot
Okay reboot syscall hits my reboot-hook.
But the softreboot doesn't work now.
Okay there is some kind of watchdog runnig which doesn't like my kexec.
I need to kill it - that should happen tomorrow.
removed
I hit the same wall when I tried to isolate the kexec code from the kernel itself to a module. I stopped working on it because I lacked the time. BTW the error you are facing now
<3>[ 80.580644] BUG: scheduling while atomic: kexec/4067/0x00000002
Click to expand...
Click to collapse
is because memory allocator is trying to switch threads while you are in a syscall. it's because of lines like this
image = kzalloc(sizeof(*image), GFP_KERNEL);
Click to expand...
Click to collapse
Try changing GFP_KERNEL to GFP_ATOMIC. Other than that, I have another suggestion. Try to get the kernel to run in a single core mode before running kexec code. This might simplify things. I don't know how to do this though.
madushan1000 said:
I hit the same wall when I tried to isolate the kexec code from the kernel itself to a module. I stopped working on it because I lacked the time. BTW the error you are facing now
is because memory allocator is trying to switch threads while you are in a syscall. it's because of lines like this
Try changing GFP_KERNEL to GFP_ATOMIC. Other than that, I have another suggestion. Try to get the kernel to run in a single core mode before running kexec code. This might simplify things. I don't know how to do this though.
Click to expand...
Click to collapse
The atmic error is gone now. It went away after I disabled the watchtog.
smp_disable() is what you are looking for - but this causes the system to hard_reboot ATM XD
what happens if you kill every userlevel program before smp_disable()?
removed
#define tomorrow
Okay .. I worked out the preemption thing.
At least it does something.
Still a black screen and the MSM_WATCHDOG is a ***** again.
It needs to be suspended .. at least that what I get from the code I read here.
If I remove the driver too early the output in /proc/kmsg stops ..
If I try to remove it too late ... well it causes a resched while atomic.

[ROM][7.1.1][XT16xx][Moto G4/Plus] OmniROM Bringup

UPDATE
Initial OmniROM release for Athene out now:
omni-7.1.1-20170219-athene-HOMEMADE.zip
--- Original OP below ---
Hi guys, I have started the bringup for OmniROM on Athene:
Device
Kernel
It starts to boot up, but gets stuck in the bootanimation and restarts soon after. According to dmesg / logcat, the modem does not come up (see attached files). I compared init.rc files and blobs being used with other roms (lineage / aex), but couldn't identify the root cause for that error at this early stage:
Code:
[ 7.022888,0] Fatal error on the modem.
[ 7.022913,0] modem subsystem failure reason: fs_device_efs_rmts.c:175:Invalid shared ram address from Apps.
@rahulsnair, @Silesh.Nair (or anybody else): Can you guys please help out here, is that something you have come across in any of your bringups? Really would like to bring Omni to life on Athene.
Thanks in advance :good:
Looks like rmt_storage can't load the needed modem firmware :
Code:
09-21 03:07:13.861 342 342 D rmt_storage: GZFSG open /fsg/athene_dsds_emea.img.gz
09-21 03:07:13.861 342 342 E rmt_storage: Couldn't open /fsg/athene_dsds_emea.img.gz, trying default for product-radio
09-21 03:07:13.862 342 342 E rmt_storage: Couldn't open /fsg/athene_emea.img.gz, trying default for radio
09-21 03:07:13.862 342 342 E rmt_storage: Couldn't open /fsg/emea.img.gz, trying default
09-21 03:07:13.862 342 342 E rmt_storage: Couldn't open /fsg/0.img.gz
09-21 03:07:13.862 342 342 I rmt_storage: rmt_storage_open_cb: Unable to open /boot/modem_fsg
Check that /fsg partition is mounted (can't check that in logs cause it's not full logs) and files are there.
You can also try to "strace" rmt-storage process :
Code:
strace -fF -s 1000 rmt_storage > /sdcard/rmt_storage_strace.txt
vache said:
Looks like rmt_storage can't load the needed modem firmware :
Check that /fsg partition is mounted (can't check that in logs cause it's not full logs) and files are there.
You can also try to "strace" rmt-storage process :
Click to expand...
Click to collapse
Good point, thanks. Haven't checked the mounts on boot yet. Eventually, fstab.qcom does not get parsed.
Making some progress: There is an issue with the ramdisk of the inline-built kernel: It is not picking up the correct .rc files. I don't get where these references to "recovery" are coming from:
Code:
<13>[ 3.022567,0] init: init second stage started!
<11>[ 3.207517,0] init: waitpid failed: No child processes
<11>[ 3.209434,0] init: property_set("ro.com.google.clientidbase", "android-motorola") failed
<11>[ 3.209584,0] init: property_set("ro.config.notification_sound", "Argon.ogg") failed
<11>[ 3.209599,0] init: property_set("ro.config.alarm_alert", "Helium.ogg") failed
<11>[ 3.209710,0] init: property_set("ro.config.ringtone", "Orion.ogg") failed
<13>[ 3.209803,0] init: (Loading properties from /default.prop took 0.00s.)
<11>[ 3.210260,0] init: /init.rc: 12: invalid command 'setcon'
<11>[ 3.210326,0] init: /init.rc: 62: invalid command 'load_all_props'
<11>[ 3.210406,0] init: could not import file '/init.recovery.logd.rc' from '/init.rc'
<13>[ 3.210688,0] init: (Parsing /init.recovery.usb.rc took 0.00s.)
<13>[ 3.210735,0] init: (Parsing /init.recovery.service.rc took 0.00s.)
<11>[ 3.210812,0] init: could not import file 'init.target.recovery.rc' from '/init.recovery.qcom.rc'
<13>[ 3.210827,0] init: (Parsing /init.recovery.qcom.rc took 0.00s.)
However, having flashed a Lineage kernel, it's booting up now.
@vache: /fsg indeed was not mounted. I think there is an issue with the mkdir, will amend that now.
Unhandled fsg_file security context on the fstab /fsg entry was the root cause for not mounting /fsg. Omni kernel booting up now.
golden-guy said:
Unhandled fsg_file security context on the fstab /fsg entry was the root cause for not mounting /fsg. Omni kernel booting up now.
Click to expand...
Click to collapse
Well done
To get RIL working, you need to add android_system_qcom from Lineage in your manifest and rebuilt.
Or you can push libqsap_sdk.so manually.
vache said:
Well done
To get RIL working, you need to add android_system_qcom from Lineage in your manifest and rebuilt.
Or you can push libqsap_sdk.so manually.
Click to expand...
Click to collapse
Thanks mate, I have done that yesterday to get RIL working (radio logcat showed that rild was complaining about that missing libqsap_sdk.so lib). All fine there already.
But I am still struggling with at least three things atm: Sensors, media playback and camcorder.
Sensors: I can see them initialized, but they don't return any values. According to logcat, e.g proximity gets disabled on screen on (sic!) Which sounds weird tbh
Media playback: Acodec cannot instantiate decoders upon ringtone playback and when music is to be played via bluetooth. mp3/mpeg playback does work when played via phone' speaker though. It could be a codec issue, but it could be audio policy / routing related. We are using a custom policy, aren't we?
Camcorder - didn't look into that yet. But is very likely related to media codec issue.
Will add some logs to further explain.
EDIT: Logs are added now.
PS: Device repo updated
Will cross-check with LineageOS, but the lack of sensor data might be permission related after all. All sensors seem to be up and configured, with their /dev and /sys entries being populated. Unfortunately, there is no error to be seen in the logs, giving no indication of the root cause...
Got the sensor issue sorted. It was selinux related again - what else. :silly:
Anyhow, one issue less.
Great news. How many issues are left now? :highfive:
Seriously, i would really appreaciate it if it´ll be released and maintained sometime... :fingers-crossed:
vinylmeister said:
Great news. How many issues are left now? :highfive:
Seriously, i would really appreaciate it if it´ll be released and maintained sometime... :fingers-crossed:
Click to expand...
Click to collapse
He is courteous enough to give us status updates on what is happening and what he is currently fixing.
I dont think he would appreciate the ETA-ish question.
It will be released when he is done. Im sure he is not on this full time. Have patience.
Sent from my Moto G4 Plus using Tapatalk
vinylmeister said:
Great news. How many issues are left now? :highfive:
Seriously, i would really appreaciate it if it´ll be released and maintained sometime... :fingers-crossed:
Click to expand...
Click to collapse
+1
1chrome said:
He is courteous enough to give us status updates on what is happening and what he is currently fixing.
I dont think he would appreciate the ETA-ish question.
It will be released when he is done. Im sure he is not on this full time. Have patience.
Click to expand...
Click to collapse
Didn't you realize that the issue related sentence was just ironic? The high-five smiley should indicate that, followed by seriously...
vinylmeister said:
Didn't you realize that the issue related sentence was just ironic? The high-five smiley should indicate that, followed by seriously...
Click to expand...
Click to collapse
Sorry man my bad... smileys didn't show up on my Tapatalk!
Sent from my Moto G4 Plus using Tapatalk
Vorbis decoder and camcorder are still open.
I'd love to have a fully working Omni build up by now, but time-wise this is a best-effort activity.
It is ready when it's done.
golden-guy said:
Vorbis decoder and camcorder are still open.
I'd love to have a fully working Omni build up by now, but time-wise this is a best-effort activity.
It is ready when it's done.
Click to expand...
Click to collapse
Could you grab fresh logs after trying to record a video ? Can't find traces in current logs.
Also, did you try with different camera apps ?
vache said:
Could you grab fresh logs after trying to record a video ? Can't find traces in current logs.
Also, did you try with different camera apps ?
Click to expand...
Click to collapse
I tried with Snap and SnapDragonCamera. I wanted to do that with a fresh build. After having synched sources, mm-camera daemon keeps crashing and causing bootloops. Omni has updated their manifest to r14, also, lineage seems to have merged in fresh caf sources causing issues with qcom blobs. If I had known that earlier, I wouldn't have synched anew.
I see u uploaded to afh is it ready for testing I'm excited
joeeboogz said:
I see u uploaded to afh is it ready for testing I'm excited
Click to expand...
Click to collapse
????!!
Good catch! ?
Yes, it's up for testing now: https://www.androidfilehost.com/?fid=457095661767137952
Please note that this is an early ALPHA build: Media playback (ogg/mp4) and camcorder are still broken. But apart from that it seems to work just fine.

Building Gapps for Android 10.0

[/COLOR @razorloves I compiled my own unofficial LineageOS 17.0 for Marlin from your sources, but I don't have gapps compiled in. Is it possible to install gapps over the Lineage zip file? When I tried, it said that it thought I had Android 9, and it needed Android 10, so it wouldn't install.
ocarinaz64 said:
I compiled my own unofficial LineageOS 17.0 for Marlin from your sources, but I don't have gapps compiled in. Is it possible to install gapps over the Lineage zip file? When I tried, it said that it thought I had Android 9, and it needed Android 10, so it wouldn't install.
Click to expand...
Click to collapse
I have tried the same too... Android 10 appears to lock out the ability to mount /system as rw in recovery from my understanding.
I have had no luck compiling LOS 17 with opengapps at all.
GT3CH1 said:
I have tried the same too... Android 10 appears to lock out the ability to mount /system as rw in recovery from my understanding.
I have had no luck compiling LOS 17 with opengapps at all.
Click to expand...
Click to collapse
I was able to easily delete some of the safety checks on the gapps install script. It ran the installation .zip, but nothing appeared differently when I booted into the ROM. I got the same result with every gapps package I have found so far. So far the only way I can get gapps then is this ROM where it's already built into it.
ocarinaz64 said:
I was able to easily delete some of the safety checks on the gapps install script. It ran the installation .zip, but nothing appeared differently when I booted into the ROM. I got the same result with every gapps package I have found so far. So far the only way I can get gapps then is this ROM where it's already built into it.
Click to expand...
Click to collapse
I was able to extract all of the opengapps files from one of their installers and attempt to push it to LOS17... I ended up with a continuous bootloop because of a priv-app permissions issue... which was weird because I added the permissions to the right files, but it still erred out.
If anyone has any bright ideas, I would love to contribute some of my server space to set up nightly builds of LOS17 (stock LOS17 works just fine), but I want see if there is a good way to add in gapps to the build first.
GT3CH1 said:
I was able to extract all of the opengapps files from one of their installers and attempt to push it to LOS17... I ended up with a continuous bootloop because of a priv-app permissions issue... which was weird because I added the permissions to the right files, but it still erred out.
If anyone has any bright ideas, I would love to contribute some of my server space to set up nightly builds of LOS17 (stock LOS17 works just fine), but I want see if there is a good way to add in gapps to the build first.
Click to expand...
Click to collapse
I've been trying to build with open gapps integrated into the rom as well. I managed to get it to build without errors (which is a bit tricky at the moment as the current state of the branches is breaking the build), but I got boot loops that I haven't been able to diagnose.
This is using the instructions here
https://github.com/opengapps/aosp_build/blob/master/README.md
But would be ideal if razorloves could give us the relevant details on how to do build with mindthegapps.
For your issue on permissions, have you set the selinux contexts?
NZedPred said:
I've been trying to build with open gapps integrated into the rom as well. I managed to get it to build without errors (which is a bit tricky at the moment as the current state of the branches is breaking the build), but I got boot loops that I haven't been able to diagnose.
This is using the instructions here
https://github.com/opengapps/aosp_build/blob/master/README.md
But would be ideal if razorloves could give us the relevant details on how to do build with mindthegapps.
For your issue on permissions, have you set the selinux contexts?
Click to expand...
Click to collapse
I haven't been able to mess with selinux yet... I'm waiting for a break so that I can sit and mess with my phone again.
I second the idea of getting the details to build with MTG. I did what the aosp build instructions said for opengapps. It acted like it pulled the repo down, but it isn't copying the APK's over to the final zip install. Maybe I am missing something.
GT3CH1 said:
I haven't been able to mess with selinux yet... I'm waiting for a break so that I can sit and mess with my phone again.
I second the idea of getting the details to build with MTG. I did what the aosp build instructions said for opengapps. It acted like it pulled the repo down, but it isn't copying the APK's over to the final zip install. Maybe I am missing something.
Click to expand...
Click to collapse
For the apk issue, you need to make sure you have git lfs installed, and for each of the folders in vendor/opengapps/sources/ do a git lfs pull.
I made that mistake as well... Repo doesn't appear to apply the git lfs pull on its own. The files that you have are just text files with URLs to the files.
NZedPred said:
For the apk issue, you need to make sure you have git lfs installed, and for each of the folders in vendor/opengapps/sources/ do a git lfs pull.
I made that mistake as well... Repo doesn't appear to apply the git lfs pull on its own. The files that you have are just text files with URLs to the files.
Click to expand...
Click to collapse
I did that too.... Something else is going on with my system then. I did a git lfs pull on each directory, and it looked like it pulled down the apps - the file sizes changed... I might just wipe my current opengapps directory, allocate a little more disk space, and re do that pull.
I am trying to build with MTG at the moment, despite the super vague readme.
GT3CH1 said:
I did that too.... Something else is going on with my system then. I did a git lfs pull on each directory, and it looked like it pulled down the apps - the file sizes changed... I might just wipe my current opengapps directory, allocate a little more disk space, and re do that pull.
I am trying to build with MTG at the moment, despite the super vague readme.
Click to expand...
Click to collapse
I just re-read what you said about the final zip install, sorry i mis-read that. Did you create a file device/google/sailfish/device.mk and put the lines in? If so, they actually need to go into device/google/marlin/device-sailfish.mk. I did that mistake, and it didn't put anything into the final zip. You will get some other build errors that you have to work around after don't that change though... (Yes it's frustrating).
In any case, thanks for the link to the MTG readme. I'll have a go when I'm at home and see if I have any luck...
NZedPred said:
I just re-read what you said about the final zip install, sorry i mis-read that. Did you create a file device/google/sailfish/device.mk and put the lines in? If so, they actually need to go into device/google/marlin/device-sailfish.mk. I did that mistake, and it didn't put anything into the final zip. You will get some other build errors that you have to work around after don't that change though... (Yes it's frustrating).
In any case, thanks for the link to the MTG readme. I'll have a go when I'm at home and see if I have any luck...
Click to expand...
Click to collapse
No worries. Even though i've got a marlin does it go under device-marlin.mk? That wouldn't make any sense...
For MTG I added this to my .repo/manifests/default.xml
Code:
<remote name="mtg" fetch="https://gitlab.com/MindTheGapps/" />
<project path="vendor/gapps" name="vendor_gapps" revision="qoppa" remote="mtg" />
And it is acting like it is syncing properly. Step 2 has got me a little bit confused... I am going to assume that it is similar to opengapps
Code:
$(call inherit-product, vendor/opengapps/build/opengapps-packages.mk)
line for device-marlin.mk, but just modified for MTG.
It'd be cool if this works. I'd love to have my own build of LOS working.
---------- Post added at 02:48 AM ---------- Previous post was at 01:51 AM ----------
NZedPred said:
I just re-read what you said about the final zip install, sorry i mis-read that. Did you create a file device/google/sailfish/device.mk and put the lines in? If so, they actually need to go into device/google/marlin/device-sailfish.mk. I did that mistake, and it didn't put anything into the final zip. You will get some other build errors that you have to work around after don't that change though... (Yes it's frustrating).
In any case, thanks for the link to the MTG readme. I'll have a go when I'm at home and see if I have any luck...
Click to expand...
Click to collapse
Ok, I was able to get gapps to *almost* work - log shows that it is copying the files and all the fun stuff... however...
Code:
'linux/msm_ion.h' file not found
is appearing from
Code:
file included from device/google/marlin/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_reprocess.c:31:
02:42:21 device/google/marlin/camera/QCamera2/stack/mm-camera-test/inc/mm_qcamera_app.h
I'm gonna clean the build dir... see if that works.
GT3CH1 said:
No worries. Even though i've got a marlin does it go under device-marlin.mk? That wouldn't make any sense...
For MTG I added this to my .repo/manifests/default.xml
Code:
<remote name="mtg" fetch="https://gitlab.com/MindTheGapps/" />
<project path="vendor/gapps" name="vendor_gapps" revision="qoppa" remote="mtg" />
And it is acting like it is syncing properly. Step 2 has got me a little bit confused... I am going to assume that it is similar to opengapps
Code:
$(call inherit-product, vendor/opengapps/build/opengapps-packages.mk)
line for device-marlin.mk, but just modified for MTG.
It'd be cool if this works. I'd love to have my own build of LOS working.
---------- Post added at 02:48 AM ---------- Previous post was at 01:51 AM ----------
Ok, I was able to get gapps to *almost* work - log shows that it is copying the files and all the fun stuff... however...
Code:
'linux/msm_ion.h' file not found
is appearing from
Code:
file included from device/google/marlin/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_reprocess.c:31:
02:42:21 device/google/marlin/camera/QCamera2/stack/mm-camera-test/inc/mm_qcamera_app.h
I'm gonna clean the build dir... see if that works.
Click to expand...
Click to collapse
I've done the same change to the manifest. I would suggest though once you get it up and running, that you don't make the change directly to the default manifest, but rather put it into e.g. .repo/local_manifests/mindthegapps.xml. That way it won't get overwritten if the default manifest gets updated.
I had a build just complete with that change, but as it was practically built anyway, I'm trying from a clean build directory just to make sure it definitely builds! The only change in my case for sailfish is adding the line
Code:
$(call inherit-product, vendor/gapps/arm64/arm64-vendor.mk)
near the bottom of device/google/marlin/device-sailfish.mk. You'd do the same in the device/google/marlin/device-marlin.mk file.
If the build compiles successfully then I'll probably put together a start-to-finish guide on how to do this. I also want to do a "user" build that is signed, and see if it's possible to pass safety net without requiring magisk. But for now, my fingers are crossed that I just get a basic build done!
NZedPred said:
I've done the same change to the manifest. I would suggest though once you get it up and running, that you don't make the change directly to the default manifest, but rather put it into e.g. .repo/local_manifests/mindthegapps.xml. That way it won't get overwritten if the default manifest gets updated.
I had a build just complete with that change, but as it was practically built anyway, I'm trying from a clean build directory just to make sure it definitely builds! The only change in my case for sailfish is adding the line
Code:
$(call inherit-product, vendor/gapps/arm64/arm64-vendor.mk)
near the bottom of device/google/marlin/device-sailfish.mk. You'd do the same in the device/google/marlin/device-marlin.mk file.
If the build compiles successfully then I'll probably put together a start-to-finish guide on how to do this. I also want to do a "user" build that is signed, and see if it's possible to pass safety net without requiring magisk. But for now, my fingers are crossed that I just get a basic build done!
Click to expand...
Click to collapse
Been building for a couple weeks using razorloves' gapps then swtiched to shagbag913's gapps. Added the call inherit-product code to device/google/marlin/sailfish/device-lineage.mk but your way should work.
Everything has been working fine except for Android Auto which I think is a bigger GApps issue.
Can someone explain how to either properly install a pre-built gapps package for Android 10 and / or explain how to properly build gapps packages into a ROM (if such action is even legal)?
I followed the instructions from https://github.com/opengapps/aosp_build/blob/master/README.md and ended up getting build errors that I couldn't push through.
@razorloves, I would love your input since you have already accomplished this.
Hi,
I have written up a quick documentation on how to do this with MTG and my Google apps package.
Please take a look at it here.
My Google apps package(gavapps) may/may not work for your device, I have specifically fine-tuned it to work for a Google Pixel XL.
HOWEVER,
If you follow the instructions for the Mind The GApps, you will be able to compile a version of Android 10 with the Google play store.
For those who care, I was able to compile the most recent of LOS17 for Google Pixel XL with a couple of gapps pre-built.
Link is here
user build with release keys
I mentioned before I was going to attempt to do a build that would pass safety net without needing to install Magisk and use hiding modules. I haven't quite managed that, but thought I'd post details of the progress that I've made.
Note for the below, I have a Pixel, so my codename is always sailfish - replace with marlin for the Pixel XL. Also, follow the instructions above to include MindTheGapps (you need the Google services to do the SafetyNet check).
Now, importantly I found that the Eleven app didn't compile under a user build (it's fine in a userdebug build). If you find the same issue, best to remove it from the project by adding this to a local manifest, e.g. .repo/local_manifest/excluded-projects.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Does not compile in a user build -->
<remove-project name="LineageOS/android_packages_apps_Eleven" />
</manifest>
Follow instructions in this link to set up some build keys:
https://wiki.lineageos.org/signing_builds.html (the section Generating the keys). For convenience, the commands are pasted below (customize the subject):
Code:
subject='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
mkdir ~/.android-certs
for x in releasekey platform shared media testkey; do \
./development/tools/make_key ~/.android-certs/$x "$subject"; \
done
Now for building, do a 'repo sync' and 'source build/envsetup.sh' as you normally would, but now it's time to apply a few patches.
Kernel command line patch:
https://gist.github.com/kirelagin/211af699bd321f9448d310502074bd9c
Or get the raw version of the patch directly here:
https://gist.githubusercontent.com/...e45f468cbefc3a9c571bd3d8b2a877/safetynet.diff
This patch needs to be applied to the kernel/google/marlin folder. Its purpose is to change a few flags in the command line to remove the fact that the bootloader is unlocked, etc.
Code:
cd kernel/google/marlin
git apply safetynet.diff
The below is not required now, a recent patch fixed this issue
Now normally, as the build files replace the device fingerprint with the fingerprint from stock, we would expect that doing e.g. in a shell in the rom "getprop | grep fingerprint" would return said fingerprint in all cases. However, I always found that one, 'ro.build.fingerprint' would always be the default Lineage build fingerprint. I couldn't find how to get that one in particular to be the same as the others, so I ended up doing something that isn't portable but works
Patch system/code/base/properties.cpp by applying one of the following patches (you must be within the system/code folder)
Sailfish:
Code:
diff --git a/base/properties.cpp b/base/properties.cpp
index d5a5918ce..49959ffad 100644
--- a/base/properties.cpp
+++ b/base/properties.cpp
@@ -79,6 +79,10 @@ static int __system_property_set(const char* key, const char* value) {
std::string GetProperty(const std::string& key, const std::string& default_value) {
std::string property_value;
+ if (key == "ro.build.fingerprint") {
+ property_value = "google/sailfish/sailfish:10/QP1A.191005.007.A1/5908163:user/release-keys";
+ return property_value;
+ }
#if defined(__BIONIC__)
const prop_info* pi = __system_property_find(key.c_str());
if (pi == nullptr) return default_value;
If you have a Marlin, use the following:
Code:
diff --git a/base/properties.cpp b/base/properties.cpp
index d5a5918ce..49959ffad 100644
--- a/base/properties.cpp
+++ b/base/properties.cpp
@@ -79,6 +79,10 @@ static int __system_property_set(const char* key, const char* value) {
std::string GetProperty(const std::string& key, const std::string& default_value) {
std::string property_value;
+ if (key == "ro.build.fingerprint") {
+ property_value = "google/marlin/marlin:10/QP1A.191005.007.A1/5908163:user/release-keys";
+ return property_value;
+ }
#if defined(__BIONIC__)
const prop_info* pi = __system_property_find(key.c_str());
if (pi == nullptr) return default_value;
The value of the fingerprint is in the file device/google/marlin/lineage_[sailfish/marlin].mk. The patches above have a very simple job - if the ro.build.fingerprint property is requested, return a hard-coded value. Simple, works, but needs to be changed per device, and won't ever be seen in the Lineage repo :silly:
At the moment, the builds have SELinux in permissive mode. I've read that one of the CTS profile checks is to ensure that SELinux is in enforcing mode. We can override this by patching two files from within the external/selinux folder
Code:
diff --git a/libselinux/src/selinux_config.c b/libselinux/src/selinux_config.c
index b06cb63b..7877010c 100644
--- a/libselinux/src/selinux_config.c
+++ b/libselinux/src/selinux_config.c
@@ -87,44 +87,8 @@ static const uint16_t file_path_suffixes_idx[NEL] = {
int selinux_getenforcemode(int *enforce)
{
- int ret = -1;
- FILE *cfg = fopen(SELINUXCONFIG, "re");
- if (cfg) {
- char *buf;
- int len = sizeof(SELINUXTAG) - 1;
- buf = malloc(selinux_page_size);
- if (!buf) {
- fclose(cfg);
- return -1;
- }
- while (fgets_unlocked(buf, selinux_page_size, cfg)) {
- if (strncmp(buf, SELINUXTAG, len))
- continue;
- if (!strncasecmp
- (buf + len, "enforcing", sizeof("enforcing") - 1)) {
- *enforce = 1;
- ret = 0;
- break;
- } else
- if (!strncasecmp
- (buf + len, "permissive",
- sizeof("permissive") - 1)) {
- *enforce = 0;
- ret = 0;
- break;
- } else
- if (!strncasecmp
- (buf + len, "disabled",
- sizeof("disabled") - 1)) {
- *enforce = -1;
- ret = 0;
- break;
- }
- }
- fclose(cfg);
- free(buf);
- }
- return ret;
+ *enforce = 1;
+ return 0;
}
hidden_def(selinux_getenforcemode)
diff --git a/libselinux/src/sestatus.c b/libselinux/src/sestatus.c
index ed29dc55..5b057932 100644
--- a/libselinux/src/sestatus.c
+++ b/libselinux/src/sestatus.c
@@ -130,30 +130,7 @@ int selinux_status_updated(void)
*/
int selinux_status_getenforce(void)
{
- uint32_t seqno;
- uint32_t enforcing;
-
- if (selinux_status == NULL) {
- errno = EINVAL;
- return -1;
- }
-
- if (selinux_status == MAP_FAILED) {
- if (avc_netlink_check_nb() < 0)
- return -1;
-
- return fallback_enforcing;
- }
-
- /* sequence must not be changed during references */
- do {
- seqno = read_sequence(selinux_status);
-
- enforcing = selinux_status->enforcing;
-
- } while (seqno != read_sequence(selinux_status));
-
- return enforcing ? 1 : 0;
+ return 1;
}
/*
Now, I have a script that does the steps of:
Sets up a user build
Builds the appropriate files used for a signed build
Signs the APKs
Creates an installable zip / OTA from the signed zips
Code:
#!/bin/bash
echo "This script must be sourced."
BUILD="user"
DEVICE="sailfish"
DATE=$(date +%Y-%m-%d)
VERSION=17.0
croot && lunch lineage_$DEVICE-$BUILD
SIGNED_TARGET="$OUT/lineage-$VERSION-$DEVICE-signed-target_files-$BUILD-$DATE.zip"
SIGNED_OTA="$OUT/lineage-$VERSION-$DEVICE-signed-ota-$BUILD-$DATE.zip"
mka target-files-package otatools && \
./build/tools/releasetools/sign_target_files_apks -o -d ~/.android-certs $OUT/obj/PACKAGING/target_files_intermediates/*-target_files-*.zip $SIGNED_TARGET && \
./build/tools/releasetools/ota_from_target_files -k ~/.android-certs/releasekey --block $SIGNED_TARGET $SIGNED_OTA
It must be sourced (i.e. source do-build #or whatever you call the script). You can easily change some of the parameters above, e.g. sailfish to marlin.
So for my testing, after doing the above changes, I can get a basic integrity pass in Safety Net, but not a CTS profile pass. I tried using Magisk, and it passes Safety Net without the need for using any further prop tweaks (normally I would still need one of those). So at least that is a little bit of progress.
Hope that this is helpful to someone. And if anyone has any other insights as to what can be done to try and get a CTS profile match, let us all know!
NZedPred said:
I mentioned before I was going to attempt to do a build that would pass safety net without needing to install Magisk and use hiding modules. I haven't quite managed that, but thought I'd post details of the progress that I've made.
Note for the below, I have a Pixel, so my codename is always sailfish - replace with marlin for the Pixel XL. Also, follow the instructions above to include MindTheGapps (you need the Google services to do the SafetyNet check).
Now, importantly I found that the Eleven app didn't compile under a user build (it's fine in a userdebug build). If you find the same issue, best to remove it from the project by adding this to a local manifest, e.g. .repo/local_manifest/excluded-projects.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Does not compile in a user build -->
<remove-project name="LineageOS/android_packages_apps_Eleven" />
</manifest>
Follow instructions in this link to set up some build keys:
https://wiki.lineageos.org/signing_builds.html (the section Generating the keys). For convenience, the commands are pasted below (customize the subject):
Code:
subject='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
mkdir ~/.android-certs
for x in releasekey platform shared media testkey; do \
./development/tools/make_key ~/.android-certs/$x "$subject"; \
done
Now for building, do a 'repo sync' and 'source build/envsetup.sh' as you normally would, but now it's time to apply a few patches.
Kernel command line patch:
https://gist.github.com/kirelagin/211af699bd321f9448d310502074bd9c
Or get the raw version of the patch directly here:
https://gist.githubusercontent.com/...e45f468cbefc3a9c571bd3d8b2a877/safetynet.diff
This patch needs to be applied to the kernel/google/marlin folder. Its purpose is to change a few flags in the command line to remove the fact that the bootloader is unlocked, etc.
Code:
cd kernel/google/marlin
git apply safetynet.diff
The below is not required now, a recent patch fixed this issue
Now normally, as the build files replace the device fingerprint with the fingerprint from stock, we would expect that doing e.g. in a shell in the rom "getprop | grep fingerprint" would return said fingerprint in all cases. However, I always found that one, 'ro.build.fingerprint' would always be the default Lineage build fingerprint. I couldn't find how to get that one in particular to be the same as the others, so I ended up doing something that isn't portable but works
Patch system/code/base/properties.cpp by applying one of the following patches (you must be within the system/code folder)
Sailfish:
Code:
diff --git a/base/properties.cpp b/base/properties.cpp
index d5a5918ce..49959ffad 100644
--- a/base/properties.cpp
+++ b/base/properties.cpp
@@ -79,6 +79,10 @@ static int __system_property_set(const char* key, const char* value) {
std::string GetProperty(const std::string& key, const std::string& default_value) {
std::string property_value;
+ if (key == "ro.build.fingerprint") {
+ property_value = "google/sailfish/sailfish:10/QP1A.191005.007.A1/5908163:user/release-keys";
+ return property_value;
+ }
#if defined(__BIONIC__)
const prop_info* pi = __system_property_find(key.c_str());
if (pi == nullptr) return default_value;
If you have a Marlin, use the following:
Code:
diff --git a/base/properties.cpp b/base/properties.cpp
index d5a5918ce..49959ffad 100644
--- a/base/properties.cpp
+++ b/base/properties.cpp
@@ -79,6 +79,10 @@ static int __system_property_set(const char* key, const char* value) {
std::string GetProperty(const std::string& key, const std::string& default_value) {
std::string property_value;
+ if (key == "ro.build.fingerprint") {
+ property_value = "google/marlin/marlin:10/QP1A.191005.007.A1/5908163:user/release-keys";
+ return property_value;
+ }
#if defined(__BIONIC__)
const prop_info* pi = __system_property_find(key.c_str());
if (pi == nullptr) return default_value;
The value of the fingerprint is in the file device/google/marlin/lineage_[sailfish/marlin].mk. The patches above have a very simple job - if the ro.build.fingerprint property is requested, return a hard-coded value. Simple, works, but needs to be changed per device, and won't ever be seen in the Lineage repo :silly:
At the moment, the builds have SELinux in permissive mode. I've read that one of the CTS profile checks is to ensure that SELinux is in enforcing mode. We can override this by patching two files from within the external/selinux folder
Code:
diff --git a/libselinux/src/selinux_config.c b/libselinux/src/selinux_config.c
index b06cb63b..7877010c 100644
--- a/libselinux/src/selinux_config.c
+++ b/libselinux/src/selinux_config.c
@@ -87,44 +87,8 @@ static const uint16_t file_path_suffixes_idx[NEL] = {
int selinux_getenforcemode(int *enforce)
{
- int ret = -1;
- FILE *cfg = fopen(SELINUXCONFIG, "re");
- if (cfg) {
- char *buf;
- int len = sizeof(SELINUXTAG) - 1;
- buf = malloc(selinux_page_size);
- if (!buf) {
- fclose(cfg);
- return -1;
- }
- while (fgets_unlocked(buf, selinux_page_size, cfg)) {
- if (strncmp(buf, SELINUXTAG, len))
- continue;
- if (!strncasecmp
- (buf + len, "enforcing", sizeof("enforcing") - 1)) {
- *enforce = 1;
- ret = 0;
- break;
- } else
- if (!strncasecmp
- (buf + len, "permissive",
- sizeof("permissive") - 1)) {
- *enforce = 0;
- ret = 0;
- break;
- } else
- if (!strncasecmp
- (buf + len, "disabled",
- sizeof("disabled") - 1)) {
- *enforce = -1;
- ret = 0;
- break;
- }
- }
- fclose(cfg);
- free(buf);
- }
- return ret;
+ *enforce = 1;
+ return 0;
}
hidden_def(selinux_getenforcemode)
diff --git a/libselinux/src/sestatus.c b/libselinux/src/sestatus.c
index ed29dc55..5b057932 100644
--- a/libselinux/src/sestatus.c
+++ b/libselinux/src/sestatus.c
@@ -130,30 +130,7 @@ int selinux_status_updated(void)
*/
int selinux_status_getenforce(void)
{
- uint32_t seqno;
- uint32_t enforcing;
-
- if (selinux_status == NULL) {
- errno = EINVAL;
- return -1;
- }
-
- if (selinux_status == MAP_FAILED) {
- if (avc_netlink_check_nb() < 0)
- return -1;
-
- return fallback_enforcing;
- }
-
- /* sequence must not be changed during references */
- do {
- seqno = read_sequence(selinux_status);
-
- enforcing = selinux_status->enforcing;
-
- } while (seqno != read_sequence(selinux_status));
-
- return enforcing ? 1 : 0;
+ return 1;
}
/*
Now, I have a script that does the steps of:
Sets up a user build
Builds the appropriate files used for a signed build
Signs the APKs
Creates an installable zip / OTA from the signed zips
Code:
#!/bin/bash
echo "This script must be sourced."
BUILD="user"
DEVICE="sailfish"
DATE=$(date +%Y-%m-%d)
VERSION=17.0
croot && lunch lineage_$DEVICE-$BUILD
SIGNED_TARGET="$OUT/lineage-$VERSION-$DEVICE-signed-target_files-$BUILD-$DATE.zip"
SIGNED_OTA="$OUT/lineage-$VERSION-$DEVICE-signed-ota-$BUILD-$DATE.zip"
mka target-files-package otatools && \
./build/tools/releasetools/sign_target_files_apks -o -d ~/.android-certs $OUT/obj/PACKAGING/target_files_intermediates/*-target_files-*.zip $SIGNED_TARGET && \
./build/tools/releasetools/ota_from_target_files -k ~/.android-certs/releasekey --block $SIGNED_TARGET $SIGNED_OTA
It must be sourced (i.e. source do-build #or whatever you call the script). You can easily change some of the parameters above, e.g. sailfish to marlin.
So for my testing, after doing the above changes, I can get a basic integrity pass in Safety Net, but not a CTS profile pass. I tried using Magisk, and it passes Safety Net without the need for using any further prop tweaks (normally I would still need one of those). So at least that is a little bit of progress.
Hope that this is helpful to someone. And if anyone has any other insights as to what can be done to try and get a CTS profile match, let us all know!
Click to expand...
Click to collapse
So to my understanding, is that you've been able pass the basic integrity check, but not the ctsProfile, however, once you flash Magisk, it all sudden starts working w/o the MagiskProps module?? My goal for my builds of lineage is to completely get rid of Magisk as a whole, and have the apps I normally flash with Magisk pre-installed (just YouTube Vanced and Viper4android at the moment) and a few build.prop tweaks.
What I'm thinking for conquering this idea of yours is to copy the files that MagiskProps creates/modifies in it's module directory, and then have those files pushed automatically to the image when being built.
What do you think of that?
GT3CH1 said:
So to my understanding, is that you've been able pass the basic integrity check, but not the ctsProfile, however, once you flash Magisk, it all sudden starts working w/o the MagiskProps module?? My goal for my builds of lineage is to completely get rid of Magisk as a whole, and have the apps I normally flash with Magisk pre-installed (just YouTube Vanced and Viper4android at the moment) and a few build.prop tweaks.
What I'm thinking for conquering this idea of yours is to copy the files that MagiskProps creates/modifies in it's module directory, and then have those files pushed automatically to the image when being built.
What do you think of that?
Click to expand...
Click to collapse
Hey, yes we have similar goals there. I'm hoping to build Lineage without the need for Magisk to pass SafetyNet including the CTS profile check, and add in my own selection of apps etc.
I have been looking at the code for Magisk, hoping to work out exactly what it does. I'm not so sure it will be as simple as copying files as you have said above, although I have toyed with that idea in my head. If you work out how to do that, certainly let us know.
Another idea I had was to see if Magisk can be compiled to act as it currently does but without including the su, busybox, and other binaries that would trip SafetyNet.
Edit: I'm also just trying to find specific things that Magisk does to aid hiding. For example, I found this in the hide_policy.cpp file:
Code:
static const char *prop_key[] =
{ "ro.boot.vbmeta.device_state", "ro.boot.verifiedbootstate", "ro.boot.flash.locked",
"ro.boot.veritymode", "ro.boot.warranty_bit", "ro.warranty_bit", "ro.debuggable",
"ro.secure", "ro.build.type", "ro.build.tags", "ro.build.selinux", nullptr };
static const char *prop_value[] =
{ "locked", "green", "1",
"enforcing", "0", "0", "0",
"1", "user", "release-keys", "0", nullptr };
void hide_sensitive_props() {
LOGI("hide_policy: Hiding sensitive props\n");
// Hide all sensitive props
for (int i = 0; prop_key[i]; ++i) {
auto value = getprop(prop_key[i]);
if (!value.empty() && value != prop_value[i])
setprop(prop_key[i], prop_value[i], false);
}
}
That is used to override some of the props, if they aren't empty and don't match the required values. In the case of my build, they all match the values above or are empty. So I'm still digging into the code to find out what else might be needed. I do know that SELinux is set to Enforcing (hence my patch in my previous post) as another example.
NZedPred said:
Hey, yes we have similar goals there. I'm hoping to build Lineage without the need for Magisk to pass SafetyNet including the CTS profile check, and add in my own selection of apps etc.
I have been looking at the code for Magisk, hoping to work out exactly what it does. I'm not so sure it will be as simple as copying files as you have said above, although I have toyed with that idea in my head. If you work out how to do that, certainly let us know.
Another idea I had was to see if Magisk can be compiled to act as it currently does but without including the su, busybox, and other binaries that would trip SafetyNet.
Edit: I'm also just trying to find specific things that Magisk does to aid hiding. For example, I found this in the hide_policy.cpp file:
Code:
static const char *prop_key[] =
{ "ro.boot.vbmeta.device_state", "ro.boot.verifiedbootstate", "ro.boot.flash.locked",
"ro.boot.veritymode", "ro.boot.warranty_bit", "ro.warranty_bit", "ro.debuggable",
"ro.secure", "ro.build.type", "ro.build.tags", "ro.build.selinux", nullptr };
static const char *prop_value[] =
{ "locked", "green", "1",
"enforcing", "0", "0", "0",
"1", "user", "release-keys", "0", nullptr };
void hide_sensitive_props() {
LOGI("hide_policy: Hiding sensitive props\n");
// Hide all sensitive props
for (int i = 0; prop_key[i]; ++i) {
auto value = getprop(prop_key[i]);
if (!value.empty() && value != prop_value[i])
setprop(prop_key[i], prop_value[i], false);
}
}
That is used to override some of the props, if they aren't empty and don't match the required values. In the case of my build, they all match the values above or are empty. So I'm still digging into the code to find out what else might be needed. I do know that SELinux is set to Enforcing (hence my patch in my previous post) as another example.
Click to expand...
Click to collapse
Hmm. I wonder if Magisk is using itself to check ctsProfile via root... It would make sense to me if it did.
Are you able to install Google Apps through the playstore (ie Google Calendar). When I had a failing ctsProfile, I wasn't able to install google calendar.
Eureka!
GT3CH1 said:
Hmm. I wonder if Magisk is using itself to check ctsProfile via root... It would make sense to me if it did.
Are you able to install Google Apps through the playstore (ie Google Calendar). When I had a failing ctsProfile, I wasn't able to install google calendar.
Click to expand...
Click to collapse
I believe the phrase is "Eureka!"
I erred before - when I went back to installing Magisk, of course it keeps modules installed, which resulted in the pass. It would have failed...
However, reading the props module read me said that the security_patch date had to match that of the fingerprint. So I ended the build/make/core/version_defaults.mk file so that PLATFORM_SECURITY_PATCH is 2019-10-06 as per this patch:
Code:
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index b803ff81a..08ffb1a53 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -250,7 +250,7 @@ ifndef PLATFORM_SECURITY_PATCH
# It must be of the form "YYYY-MM-DD" on production devices.
# It must match one of the Android Security Patch Level strings of the Public Security Bulletins.
# If there is no $PLATFORM_SECURITY_PATCH set, keep it empty.
- PLATFORM_SECURITY_PATCH := 2019-11-05
+ PLATFORM_SECURITY_PATCH := 2019-10-06
endif
.KATI_READONLY := PLATFORM_SECURITY_PATCH

[ROM][OFFICIAL] LineageOS 17.1 for Xiaomi Mi Note 2 - scorpio

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.

[EOL][SODP][ROM][AOSP][XZ2, XZ2C, XZ3] SonyAOSP 12.1

Central project page
[EOL][SODP][ROM][AOSP][XZ2, XZ2C, XZ3] SonyAOSP 12.1 [Alpha]
The Sony Open Devices Project is always happy about volunteers (coding, testing, etc) :) Also mainlining your favorite snapdragon powered xperia device into the mainline kernel is possible and we will be glad to help you! Official site...
forum.xda-developers.com
09.02.2022
android-12.0.0_r28 (February security patchlevel)
OEMv1c support
Click to expand...
Click to collapse
14.02.2022
hotfix for the bootloop
Click to expand...
Click to collapse
30.03.2022
android-12.1.0_r1 (March security patchlevel)
Click to expand...
Click to collapse
MartinX3 said:
30.03.2022
Click to expand...
Click to collapse
a question why you don't upload photos of the user interface, and what options are available, I currently have the Xperia XZ2 Compact, and I'm thinking of changing the rom for this one based on Android 12.1
Carljaynp03 said:
a question why you don't upload photos of the user interface, and what options are available, I currently have the Xperia XZ2 Compact, and I'm thinking of changing the rom for this one based on Android 12.1
Click to expand...
Click to collapse
It's 90% aosp.
Please report any bug in the linked issue tracker.
MartinX3 said:
It's 90% aosp.
Please report any bug in the linked issue tracker.
Click to expand...
Click to collapse
any direct contact number for more information I am new in the world of custom roms, I want help, I can contribute with the work done please
Carljaynp03 said:
any direct contact number for more information I am new in the world of custom roms, I want help, I can contribute with the work done please
Click to expand...
Click to collapse
Thank you, please follow the link in the first post.
There it is also in the first post.
12.04.2022
android-12.1.0_r3 (April security patchlevel)
Click to expand...
Click to collapse
Bug....the touch does not work and it seems to reboot intermittently
Mint rhfo said:
Bug....the touch does not work and it seems to reboot intermittently
Click to expand...
Click to collapse
Bug....report?
MartinX3 said:
Bug....report?
Click to expand...
Click to collapse
Yeah! It's Bug report!
Mint rhfo said:
Yeah! It's Bug report!
Click to expand...
Click to collapse
I don't see a valid bug report according to the instructions.
Or you claim that I'm god and know everything.
But maybe I'm god, who knows.
Hello,
Android Custom Rom noob here. Just picked up a XPERIA zx2 Compact and wanted to use this guide to flash a more current Android on the phone (came with Android10).
I followed some guides and was able to unlock my bootloader and enable USB Debugging. I used adb platform tools to boot the device in fastboot mode and flashed the files as described in the instructions.
Errors encountered:
fastboot flash oem _a SW_binaries_for_Xperia_Android_12_4.19_v1c_tama.img
fastboot: error: cannot load '_a': No such file or directory
I changed the command to: fastboot flash oem_a SW_binaries_for_Xperia_Android_12_4.19_v1c_tama.img
Sadly, the device reboots after a few seconds showing the sony logo. Reboots about three times and then says corrupted image, then shuts down. What am I doing wrong?
Thanks for your help guys!
BigWoodFarmer said:
Hello,
Android Custom Rom noob here. Just picked up a XPERIA zx2 Compact and wanted to use this guide to flash a more current Android on the phone (came with Android10).
I followed some guides and was able to unlock my bootloader and enable USB Debugging. I used adb platform tools to boot the device in fastboot mode and flashed the files as described in the instructions.
Errors encountered:
fastboot flash oem _a SW_binaries_for_Xperia_Android_12_4.19_v1c_tama.img
fastboot: error: cannot load '_a': No such file or directory
I changed the command to: fastboot flash oem_a SW_binaries_for_Xperia_Android_12_4.19_v1c_tama.img
Sadly, the device reboots after a few seconds showing the sony logo. Reboots about three times and then says corrupted image, then shuts down. What am I doing wrong?
Thanks for your help guys!
Click to expand...
Click to collapse
Hey,
I'm sorry and fixed the type.
There was a wrong whitespace character in the manual.
It's `oem_a`, that's correct.
Did you flash everything and wiped the userdata before?
Because other XZ2C owners were able to post logs.
Also it is mandatory to run the latest stock firmware on both slots once before in the lifetime of your phone.
Hi,
Thank you for your fast reply. I flashed everything and wiped as described with "fastboot -w"
I am unsure what you mean by both slots, you mean Firmware and Software Content Erase? I used EMMA to flash: H8324 52.1.A.0.618 Customized_UK 1313-5469 R3C User-Live COM on the device.
Some other questions I had:
a) Do I need Magisk for root on the device?
b) can I use another Version the twrp 3.4.0.0.? If I install this to my recovery partition, I can't use it when booting since the screen seems frozen.
sry for asking some dumb questions in my last post. I was now able to install this Android 12 Version. I think the problem was, that i didn't wipe the device before the deployment.
Thanks again for all your work on this.
*EDIT*
Can you suggest a twrp version I should use? I cannot start 3.4-0-0 (2020-06-14_21-07-37) anymore using fastboot boot
**EDIT #2**
I received the following error: "there is an internal problem with your device, contact manufacturer". I will attach output of logcat -b all
BigWoodFarmer said:
sry for asking some dumb questions in my last post. I was now able to install this Android 12 Version. I think the problem was, that i didn't wipe the device before the deployment.
Thanks again for all your work on this.
*EDIT*
Can you suggest a twrp version I should use? I cannot start 3.4-0-0 (2020-06-14_21-07-37) anymore using fastboot boot
**EDIT #2**
I received the following error: "there is an internal problem with your device, contact manufacturer". I will attach output of logcat -b all
Click to expand...
Click to collapse
Nice that you achieve to flash it.
The camera is currently not implemented because of the russian invasion in the ukraine.
Code:
04-12 19:02:48.363 0 0 I init : starting service 'vendor.camera-provider-2-4'...
04-12 19:02:48.451 3114 3114 I [email protected]: [email protected] legacy service is starting.
04-12 19:02:48.452 3114 3114 D ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
04-12 19:02:48.453 3114 3114 D hw-ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
04-12 19:02:48.452 0 0 I binder : 3114:3114 ioctl 40046210 7ff5fbfc44 returned -22
04-12 19:02:48.453 0 0 I binder : 3114:3114 ioctl 40046210 7ff5fbfc24 returned -22
04-12 19:02:48.489 3114 3114 E [email protected]: Could not load camera HAL module: -2 (No such file or directory)
04-12 19:02:48.489 3114 3114 E [email protected]_64: getProviderImpl: camera provider init failed!
04-12 19:02:48.490 3114 3114 D RefBase : RefBase: Explicit destruction, weak count = 0 (in 0xb400007a624ceaa0)
04-12 19:02:48.491 3114 3114 W RefBase : CallStack::getCurrentInternal not linked, returning null
04-12 19:02:48.491 3114 3114 W RefBase : CallStack::logStackInternal not linked
04-12 19:02:48.492 3114 3114 E HidlServiceManagement: Could not find instance 'legacy/0' in library [email protected] Keeping library open.
04-12 19:02:48.493 3114 3114 E LegacySupport: Could not get passthrough implementation for [email protected]::ICameraProvider/legacy/0.
04-12 19:02:48.501 0 0 I init : Service 'vendor.camera-provider-2-4' (pid 3114) exited with status 1
04-12 19:02:48.501 0 0 I init : Sending signal 9 to service 'vendor.camera-provider-2-4' (pid 3114) process group...
04-12 19:02:48.501 0 0 I libprocessgroup: Successfully killed process cgroup uid 1047 pid 3114 in 0ms
04-12 19:02:48.504 0 0 E init : process with updatable components 'vendor.camera-provider-2-4' exited 4 times in 4 minutes
04-12 19:02:48.513 0 0 I init : processing action (sys.init.updatable_crashing=1) from (/system/etc/init/flags_health_check.rc:10)
04-12 19:02:48.514 0 0 I init : starting service 'exec 29 (/system/bin/flags_health_check UPDATABLE_CRASHING)'...
04-12 19:02:48.541 0 0 I init : SVC_EXEC service 'exec 29 (/system/bin/flags_health_check UPDATABLE_CRASHING)' pid 3115 (uid 1000 gid 1000+0 context default) started; waiting...
04-12 19:02:48.564 3115 3115 I flags_health_check: ServerConfigurableFlagsReset reset_mode value: 1
04-12 19:02:48.565 3115 3115 I flags_health_check: ServerConfigurableFlagsReset updatable crashing detected, resetting flags.
Please subscribe to
[Tama][XZ2C][AOSP12][4.19] Apollo camera provider init failed (every 5secs) · Issue #751 · sonyxperiadev/bug_tracker
Platform: Tama Device: XZ2C (apollo) Kernel version: 4.19.188-ge73c1a837c4f-dirty Android version: AOSP12 Software binaries version: 12_4.19_v1c_tama Previously working on n/a (latest official Sony...
github.com
[Tama][4.19][AOSP12] Device reboots for no clear reason any time it is not idle · Issue #755 · sonyxperiadev/bug_tracker
Platform: Tama Device: Apollo Kernel version: 4.19 Android version: AOSP12 Software binaries version: 12_4.19_v1c_tama Previously working on n/a Description The device reboots after a few minutes o...
github.com
[TAMA][12][4.19] Bootloop · Issue #748 · sonyxperiadev/bug_tracker
Platform: Tama Device: Apollo Kernel version: 4.19 Android version: 12 Software binaries version: v1c Previously working on Stock Description Bootloop and no ADB logs available. The device was flas...
github.com
and firstly this will get fixed: https://github.com/sonyxperiadev/bug_tracker/issues/770
20.05.2022
android-12.1.0_r5 (May security patchlevel)
Click to expand...
Click to collapse
Because of problems with the ftp server the new release is on google drive.
Click to expand...
Click to collapse
Hello, what changes between this rom and the stock based roms ?

Categories

Resources