[Q] Toolchain for kernel? - X 2014 Q&A, Help & Troubleshooting

I have no idea why this keeps mucking up: I keep having missed make targets and rules; is there a specific toolchain we have to use with Motorola? I'm trying to write a boot.img to see if I can restore the sensors that I lost to the AOSP rom.

Related

[Q] Custom kernel - device not found during boot

Hello,
I have compiled my own kernel based off Samsung's source, but am experiencing problems after the flash. I compiled the kernel with Leshak's initramfs (cloned from his git) and Samsung's official source. The compilation itself was successful and the total file size of the zImage is around 6MB.
After the compilation, I replaced the zImage inside the PDA-file for the firmware I want to use (is this the correct way?) and used Odin to flash. The flash was successful, however, when the phone reboots it says it can't find the device /stl11 with the error message "No such device". I have also tried flashing with RomRecovery and it also appears to suceed, but it gives the same error message. For creating the update.zip, I used a script I here.
When I have seen similar errors when I have compiled the Linux kernel for other architectures, there has usually been a module missing. However, I have not been able to figure out if this is the case here, after trying several different solutions the error still occurs. Have you or anyone else experienced something similar and know how to fix it, or what I am doing wrong when I am compiling? I also noticed that the zImage-files in most distributions are smaller than mine, but I am not sure if this matters or not.
-Kristian

[HELP_NEEDED]Kitkat 4.4 for Galaxy Tab

Hi Fellow devs,
As you may know, I have been compiling Android 4.0-4.3-based ROMs for Galaxy Tab 10.1. Currently, I am trying to get kitkat 4.4 to work on our devices.
Although I can compile a ROM with only minor difficulties, it already fails when flashing a ROM. It errors with the following message: "set_metadata_recursive: some changes failed". I think this is related to the new way of setting permissions in KK4.4.
If I look in the recovery.log after flashing, I see this:
minzip: Extracted 1197 file(s)
ApplyParsedPerms: removexattr of /system/addon.d/50-hosts.sh to 0 failed: Operation not supported on transport endpoint
script aborted: set_metadata_recursive: some changes failed
set_metadata_recursive: some changes failed
E:Error executing updater binary in zip
I have no idea whether the problem is that the recovery needs an update, or the updater binary is not yet finished, or that the updater script needs to be adjusted.
Anyone also working on this?
Hello, although I'm not a rom dev, I think I found the problem and a possible solution.
http://forum.xda-developers.com/showthread.php?p=47212560#post47212560
Here, I hope it's of some use to you. Keep up the good, quality work!
miztahbeezy said:
Hello, although I'm not a rom dev, I think I found the problem and a possible solution.
http://forum.xda-developers.com/showthread.php?p=47212560#post47212560
Here, I hope it's of some use to you. Keep up the good, quality work!
Click to expand...
Click to collapse
Thanks. I guess it is related to recovery then, with a need for an updated recovery. I guess that the lack of proper selinux support may also contribute to the problem....
OK, I tried to build both cwm & twrp based on latest kk source code. Recovery image is always over 5.5MB, which is way too large for our device, as our recovery partition is only 5MB. Even when trying to strip recovery & recompile kernel with maximum compression, I can't get to 5MB.
So then I tried a different route, I put the old permission code from an updater-script from jb4.3 in a kk4.4 ROM. Flashing such a ROM works, but it hangs on the bootanimation. Logcat won't connect, so I couldn't find the source of the problem.
Verstuurd van mijn Nexus 5
Go Kasper! ben trots op je! (proud of you!)
kasper_h said:
OK, I tried to build both cwm & twrp based on latest kk source code. Recovery image is always over 5.5MB, which is way too large for our device, as our recovery partition is only 5MB. Even when trying to strip recovery & recompile kernel with maximum compression, I can't get to 5MB.
So then I tried a different route, I put the old permission code from an updater-script from jb4.3 in a kk4.4 ROM. Flashing such a ROM works, but it hangs on the bootanimation. Logcat won't connect, so I couldn't find the source of the problem.
Verstuurd van mijn Nexus 5
Click to expand...
Click to collapse
kasper_h said:
Hi Fellow devs,
As you may know, I have been compiling Android 4.0-4.3-based ROMs for Galaxy Tab 10.1. Currently, I am trying to get kitkat 4.4 to work on our devices.
Although I can compile a ROM with only minor difficulties, it already fails when flashing a ROM. It errors with the following message: "set_metadata_recursive: some changes failed". I think this is related to the new way of setting permissions in KK4.4.
If I look in the recovery.log after flashing, I see this:
minzip: Extracted 1197 file(s)
ApplyParsedPerms: removexattr of /system/addon.d/50-hosts.sh to 0 failed: Operation not supported on transport endpoint
script aborted: set_metadata_recursive: some changes failed
set_metadata_recursive: some changes failed
E:Error executing updater binary in zip
I have no idea whether the problem is that the recovery needs an update, or the updater binary is not yet finished, or that the updater script needs to be adjusted.
Anyone also working on this?
Click to expand...
Click to collapse
Just sent a message to pershoot on gtalk or whatever its supposed to be called, I'll let you know if he says he'll take a look at it
update: he's hasn't been working on the sgt 10.1 in a long time, but if he get's some free time, he might look at it.
good luck either way, you seem to have no trouble pumping out good stuff, I'm sure you'll get it figured out
I'm no developer, but I did some Google search about the error. Most people said that latest recovery is needed, but there's another guy with a different point of view: http://stackoverflow.com/questions/19860479/set-metadata-recursive-failing-on-android-install
Good luck getting KitKat to boot on our tabs!
Sent from my GT-P7500 using Tapatalk HD
eushaun99 said:
I'm no developer, but I did some Google search about the error. Most people said that latest recovery is needed, but there's another guy with a different point of view: http://stackoverflow.com/questions/19860479/set-metadata-recursive-failing-on-android-install
Good luck getting KitKat to boot on our tabs!
Sent from my GT-P7500 using Tapatalk HD
Click to expand...
Click to collapse
Thanks, any help is appreciated!
I actually got recovery to shrink enough to fit in the recovery partition. It just won't boot
The struggle continues
Well then let's just hope that pershoot finds some time to help us out.
Sent from my GT-P7500 using Tapatalk HD
kasper_h said:
Thanks, any help is appreciated!
I actually got recovery to shrink enough to fit in the recovery partition. It just won't boot
The struggle continues
Click to expand...
Click to collapse
Could you please share the recovery?
I found this thing ro.build.selinux=1 in the build.prop. Is there someway to change this to 0 and removing all the set_metadata_recursive lines from the updater-script? Doesn't work
Here's what I've tried so far: I followed my android 4.3 guide but it needs some extras. There's 1 header line from libnbaio/audiostreamoutsink that needs to be removed. The error message tells you exactly which one. I also had to comment out 2 lines in surfaceflinger to prevent a very annoying crash I got when I first did android 4.3. There are a few other random lines from audioflinger that have to be removed but the error messages are pretty specific on which ones those are. I also cheated the recovery's gr_text that it said was missing and added in a dummy function according to the header since I never planned to use the recovery and just put that in to get it to compile. I can't get past a metadata error in cwm recovery from pershoot. My TWRP refuses to install the zip at all.
AAccount said:
Could you please share the recovery?
I found this thing ro.build.selinux=1 in the build.prop. Is there someway to change this to 0 and removing all the set_metadata_recursive lines from the updater-script? Doesn't work
Here's what I've tried so far: I followed my android 4.3 guide but it needs some extras. There's 1 header line from libnbaio/audiostreamoutsink that needs to be removed. The error message tells you exactly which one. I also had to comment out 2 lines in surfaceflinger to prevent a very annoying crash I got when I first did android 4.3. There are a few other random lines from audioflinger that have to be removed but the error messages are pretty specific on which ones those are. I also cheated the recovery's gr_text that it said was missing and added in a dummy function according to the header since I never planned to use the recovery and just put that in to get it to compile. I can't get past a metadata error in cwm recovery from pershoot. My TWRP refuses to install the zip at all.
Click to expand...
Click to collapse
Hi AAccount, thanks for joining in! I also talked to matt604 through gtalk last night. Glad to see I am not alone
I am trying to compile OMNI in stead of CM. Advantage is that it does not require any changes to the source code to compile for p4wifi. Works fine for 4.3 as well.
Anyway. I think we have two options: give proper SELinux support, which means making a SE policy for our device. Or we have to completely get rid of it. Because I think the second is simpler, I chose that route. What I did:
-Add the ro.boot.selinux=disabled prop (maybe we should try ro.build.selinux=0 as well!)
-I removed all the SELinux patches from the kernel (so essentially go back to the 4.2 kernel). This kernel boot fine on 4.3
-Manually swap the set_metadata lines in the updater script by set_perm lines from a 4.3 script (I compared the two and besides the change from set_prop to set_metadata, the permissions set are the same).
This time the ROM booted. But when I saw the launcher for 0.1 sec, I got a "Launcher3 has unexpectedly stopped" error. And with the current security feature for adb, you can't get a logcat on a fresh ROM boot, as you need to approve the connection first, which is impossible due to the continuous FC.
I then also tried adding Apex Launcher (confirmed working on KK on my Nexus 5) - first added to system/app and then moved to /data/app. Both times didn't boot at all.
Removed Launcher3 with Apex in /system/app. Didn't boot.
But at least I saw kitkat running for 0.1sec on my tab, so I feel it should be possible!
My next step:
-Add the HAVE_SELINUX := false flags to BoardConfigCommon
-Add ro.build.selinux=0 to p4-common.mk
Samsung have updated their several devices which latest firmware of Android which are old but popular as new. Now the devices are on an end of its update life cycle on Jelly Bean. But the upcoming Google's Android 4.4 KitKat rise an hope for the older Galaxy phone as the KitKat is rumored to feature an improved Linux kernel supporting lower memory devices.
Here is the list of nominated Galaxy Devices for Android 4.4 KitKat
Galaxy Grand and Grand DUOS
Galaxy Ace II
Galaxy S III mini
Galaxy Beam
Galaxy Express
Galaxy S Advance
Galaxy S II and S II Plus
Galaxy Premier
Galaxy Note I
Galaxy Young and Young DUOS
Galaxy Fame
Galaxy X Cover 2
Galaxy Tabs
Click to expand...
Click to collapse
I think it's a little obious that our revoceries are not compatible anymore with android 4.4 since there changed alot in recoveries... So.. Older versions of CWM won’t work, nor will TWRP. I think we will need at least cwm 6.0.4.3 to be compatible with kitkat 4.4, our latest recovery is and older build (cwm 6.0.3.6) which is ment to be for android 4.2.2
Edit:
Looks like it's also because of selinux, and you need a newer version of TWRP or cwm as i said. Right now in the Omni 4.4 manifest it actually has the AOSP recovery so you'll wanna change that to Omni 's TWRP on a local manifest. Or at least you need a recovery with proper fstab because the new fstab format in Android 4.3+ is not used by TWRP yet. Beyond that it depends on your BoardConfig.mk whether the recovery is flash able, if you configured it ok then yes!
kasper_h said:
Hi AAccount, thanks for joining in! I also talked to matt604 through gtalk last night. Glad to see I am not alone
I am trying to compile OMNI in stead of CM. Advantage is that it does not require any changes to the source code to compile for p4wifi. Works fine for 4.3 as well.
Anyway. I think we have two options: give proper SELinux support, which means making a SE policy for our device. Or we have to completely get rid of it. Because I think the second is simpler, I chose that route. What I did:
-Add the ro.boot.selinux=disabled prop (maybe we should try ro.build.selinux=0 as well!)
-I removed all the SELinux patches from the kernel (so essentially go back to the 4.2 kernel). This kernel boot fine on 4.3
-Manually swap the set_metadata lines in the updater script by set_perm lines from a 4.3 script (I compared the two and besides the change from set_prop to set_metadata, the permissions set are the same).
This time the ROM booted. But when I saw the launcher for 0.1 sec, I got a "Launcher3 has unexpectedly stopped" error. And with the current security feature for adb, you can't get a logcat on a fresh ROM boot, as you need to approve the connection first, which is impossible due to the continuous FC.
I then also tried adding Apex Launcher (confirmed working on KK on my Nexus 5) - first added to system/app and then moved to /data/app. Both times didn't boot at all.
Removed Launcher3 with Apex in /system/app. Didn't boot.
But at least I saw kitkat running for 0.1sec on my tab, so I feel it should be possible!
My next step:
-Add the HAVE_SELINUX := false flags to BoardConfigCommon
-Add ro.build.selinux=0 to p4-common.mk
Click to expand...
Click to collapse
Perhaps this might be useful to you:
http://forum.xda-developers.com/showthread.php?t=2457427
Its a sort of work around to pre authorise the ADB connection to your computer using the ADB authentication keys from a working (i.e. 4.3 ROM) build.
It sounds like a very long work around though. Also don't want to sound insulting but did you remembered to put the appropriate mount and install lines for Apex while in /data/app into the updater script!
scaryshark said:
Perhaps this might be useful to you:
http://forum.xda-developers.com/showthread.php?t=2457427
Its a sort of work around to pre authorise the ADB connection to your computer using the ADB authentication keys from a working (i.e. 4.3 ROM) build.
It sounds like a very long work around though. Also don't want to sound insulting but did you remembered to put the appropriate mount and install lines for Apex while in /data/app into the updater script!
Click to expand...
Click to collapse
Thanks.
Don't worry, I am not easily insulted I even checked through a file manager whether apex ended up in the right spot. I didn't check permission though, so that may have been wrong, but I am almost sure I checked that one well...
Thanks kasper_h for your hard work. I thought HAVE_SELINUX boardconfig flag was only for android 4.2. I read that here http://selinuxproject.org/page/SEAndroid#Merge_Status. Another thing i t tried was changing the ro.selinux flag in 4.3.1 to see if it made any difference in the about device selinux status page. Setting that flag to disabled or 0 didn't effect that. Ill try omni rom next but i have limited time this weekend though. I agree a removal would be ideal. I disable it on my desktop and laptop right away after installing fedora.
Sent from my GT-P7510 using xda app-developers app
I now managed to get it to boot. But I get fatal errors in AUDIO_SERVICE, crashing the system. I had something similar when trying to compile AOSP in the past. Maybe CM11 is a better choice than OMNI...
I'll keep on trying.
But at least, getting rid of SELinux seems to be thé way to go.
So the xda app messed up my post big time. What I wanted to say was that by using a non selinux kernel, setting the selinux build.prop flag and changing the install script it boots? Yesterday I tried doing the build.prop edit on my cm11 rom and it didn't boot. Very interesting suggestion about the kernel though.
--------------------------------------------Added-----------------------------------------------------------------------
I tried the 3 things you did on my cm11 rom from yesterday:
-Add the ro.boot.selinux=disabled prop (maybe we should try ro.build.selinux=0 as well!)
-I removed all the SELinux patches from the kernel (so essentially go back to the 4.2 kernel). This kernel boot fine on 4.3
-Manually swap the set_metadata lines in the updater script by set_perm lines from a 4.3 script (I compared the two and besides the change from set_prop to set_metadata, the permissions set are the same).
and I can't get past the "samsung galaxy tab 10.1" screen. Note I did these things after the rom was compiled since build.prop can be edited from the update zip and I just flashed an older A1 kernel with no selinux.
kasper_h said:
I now managed to get it to boot. But I get fatal errors in AUDIO_SERVICE, crashing the system. I had something similar when trying to compile AOSP in the past. Maybe CM11 is a better choice than OMNI...
I'll keep on trying.
But at least, getting rid of SELinux seems to be thé way to go.
Click to expand...
Click to collapse
Finally downloaded the omnirom source. A possible cause of this is becasue omni rom has no ICS_AUDIO_BLOB flag in its source at all. You'll probably need to take a working android 4.3 source, do a "grep ICS_AUDIO_BLOB -r ." on the source and find every place in the working source this flag is defined and then transfer it over to omni rom. Yes it sounds like a pain in the butt.
AAccount said:
Finally downloaded the omnirom source. A possible cause of this is becasue omni rom has no ICS_AUDIO_BLOB flag in its source at all. You'll probably need to take a working android 4.3 source, do a "grep ICS_AUDIO_BLOB -r ." on the source and find every place in the working source this flag is defined and then transfer it over to omni rom. Yes it sounds like a pain in the butt.
Click to expand...
Click to collapse
Maybe it is easier to swap all OMNI project that contain ICS_AUDIO_BLOB in CM for the CM-code
With regard to the kernel, you can't flash a 4.2 kernel on 4.4, as there are ramdisk changes causing it to not boot. I can send you a kernel that will boot on 4.4 that you could try to flash on top of CM11....
I will try a kernel on CM11 and then compare the ramdisk to OMNI to see if that gives a hint why it won't boot...
kasper_h said:
Maybe it is easier to swap all OMNI project that contain ICS_AUDIO_BLOB in CM for the CM-code
With regard to the kernel, you can't flash a 4.2 kernel on 4.4, as there are ramdisk changes causing it to not boot. I can send you a kernel that will boot on 4.4 that you could try to flash on top of CM11....
I will try a kernel on CM11 and then compare the ramdisk to OMNI to see if that gives a hint why it won't boot...
Click to expand...
Click to collapse
What are those ramdisk changes? That would probably help for the rom not booting.

Booting .4.5.2 Kernel (Apollo - Old Bootloader)

@Cpasjuste,
In the image headers I noticed that the ramdisk and tag addresses have changed.
ramdisk addr: 0x02000000 -> 0x01000000
tags addr: 0x01e00000 -> 0x00000100
Please correct me if I'm wrong...
The bootloader (lk) loads the ramdisk and kernel tags (device tree) at these physical RAM locations.
@ggow
Yes i saw that but it have no effect. I'm focusing on the .dt part because I found a few things :
- The DT images can correctly be extracted with a tool named "mkboot".
- When using the DT image from kk kernel, the bootloader complains about DT not found (fastboot boot boot.img)
- Opened both DT image in hex editor, noticed some differences in the headers. I switched kk DT headers by jb DT headers, the bootloader don't complain
anymore so I guess it can now found it. But the kernel will just hang immediately.
- The DT syntax seems to have changed (arch/arm/boot/dts/thor.dtsi), this may be the problem for our old bootloader ?!
- Now I'd like to use compiled dt from kk kernel, but has you may have noticed the DT compilation fail about "fb_mem" not declared. I think I need to fix this, then maybe use old jb tools ( $KERNEL_OUT/scripts/dtc/dtc -p 2048 -O dtb -o thor-v1.dtb arch/arm/boot/dts/thor-v1.dts) to compile them, unlike kk kernel which now compile them with the kernel.
From what iv read dt, kernels and bootloaders are linked together, so there is also maybe some changes to be done in the dt sources. But this start to be out of my knowledge.
I asked to hashcode for that but I guess he is very busy.
Cpasjuste said:
@ggow
Yes i saw that but it have no effect. I'm focusing on the .dt part because I found a few things :
- The DT images can correctly be extracted with a tool named "mkboot".
- When using the DT image from kk kernel, the bootloader complains about DT not found (fastboot boot boot.img)
- Opened both DT image in hex editor, noticed some differences in the headers. I switched kk DT headers by jb DT headers, the bootloader don't complain
anymore so I guess it can now found it. But the kernel will just hang immediately.
- Now I'd like to use compiled dt from kk kernel, but has you may have noticed the DT compilation fail about "fb_mem" not declared. I think I need to fix this, then maybe use old jb tools ( $KERNEL_OUT/scripts/dtc/dtc -p 2048 -O dtb -o thor-v1.dtb arch/arm/boot/dts/thor-v1.dts) to compile them, unlike kk kernel which now compile them with the kernel.
From what iv read dt and kernels are linked together, so there is also maybe some changes to be done in the dt sources. But this start to be out of my knowledge.
Click to expand...
Click to collapse
I noticed the "fb_mem" not declared error and couldn't find any reference to it anywhere. I switched the dt.img header also and got to the point where the kernel was not dumping out to fastboot any more, but instead bootloops.
I have messaged amazon once again to post the source code for apollo and thor for update .4.1.1 .
Hehe we are at the same point it seems (nowhere)
Today I did spent a lot of time on this. After a lot of dt hacks/test I'm unable to resolve this problem for now. So I had another idea and started to port kexec hardboot for our device. I'm at the point where is successfully load kernel and DT (something is different for our device, the msm_id struct, which I solved) and reboot but will hang or restart just after a few seconds of the reboot. I think I'm almost there but I may have some problem to find correct memory addresses which are not overwritten by the boot loader. Let me know if you want to take a look I'll upload patches. But well even if we succeed we may still encounter the same DT problem.
In the "dt.img" there is 3 dtb files in, which are scanned by the bootloader for the correct hw revision. I did find that our device use the "thor-v2-apq.dts/.dtb" dt file for booting (not the thor-v1 nor v2) which correspond to our hardware revision. This is in correlation to the 4.1 kernel which only compile this dtb.
When loading the 4.1 dt image with kexec I was able to debug and see that while the header of each dtb parts have changed, there's still the correct hw revision included (of course!?). This one is correctly loaded by kexec and so probably by the bootloader (but in the new dt.img we still need to modify the img header for our bootloader to find it). By the way, I wonder how this final dt.img is built !?
I just don't know yet what is the thor.dtsi file in the 4.1 kernel, the one missing the fb_mem def. This is not included in the dt.img so should it be modified to match our old thor-v2-apq.dts instead the new one ?
By the way manual compilation (and decompilation!) does work with the dtc utility (apt-get install device-tree-compiler).
Yes, upload the the patches for kexec. Definitely interested in taking a look. I have configured a kernel last night with kexec config enabled (great minds think alike)
This DT problem is troubling me. Perhaps not everything is included in this kernel for Apollo or Thor to boot.
I received a reply from amazon, they said they will post the missing source for the last 3 updates very soon (no idea of time frame).
Sent from my Full Android on C6603 using Tapatalk
I don't think the sources are the problem as we have it on stock 4.1 boot.img. I'll upload the patches tomorrow with a little briefing.
@ggow : 4.1.1 kernel booted (not from sources. As you noted this sources may be incomplete).
I'll post the kernel this night, with a clean 4.1.1 system if i have the time.
Cpasjuste said:
@ggow : 4.1.1 kernel booted (not from sources. As you noted this sources may be incomplete).
I'll post the kernel this night, with a clean 4.1.1 system if i have the time.
Click to expand...
Click to collapse
Good News, well done
ggow said:
Good News, well done
Click to expand...
Click to collapse
Finally, sorry for the delay So here is the modded 4.1.1 boot image. In short : binary extract correct dts from 4.1.1 stock dt image and happend it to 4.1.1 stock zImage.
Didn't had the time to finish my gapps rom based on 4.1.1 but should not be too long
http://android.mydedibox.fr/hdx/boot-4.1.1.img
Cpasjuste said:
Finally, sorry for the delay So here is the modded 4.1.1 boot image. In short : binary extract correct dts from 4.1.1 stock dt image and happend it to 4.1.1 stock zImage.
Didn't had the time to finish my gapps rom based on 4.1.1 but should not be too long
http://android.mydedibox.fr/hdx/boot-4.1.1.img
Click to expand...
Click to collapse
Good work looking forward to testing it out.
Sent from my Optimus G using XDA Free mobile app
cdub50 said:
Good work looking forward to testing it out.
Sent from my Optimus G using XDA Free mobile app
Click to expand...
Click to collapse
This is a wip for you. You need to wait for a root exploit on 4.1.1 for using it !
Cpasjuste said:
This is a wip for you. You need to wait for a root exploit on 4.1.1 for using it !
Click to expand...
Click to collapse
Ah gotcha. Hopefully that will be sooner than later.
Sent from my Optimus G using XDA Free mobile app
Cpasjuste said:
Finally, sorry for the delay So here is the modded 4.1.1 boot image. In short : binary extract correct dts from 4.1.1 stock dt image and happend it to 4.1.1 stock zImage.
Didn't had the time to finish my gapps rom based on 4.1.1 but should not be too long
http://android.mydedibox.fr/hdx/boot-4.1.1.img
Click to expand...
Click to collapse
Thanks for that
Which number dts is the correct one (there are 3). I need to do the same for Apollo...
ggow said:
Thanks for that
Which number dts is the correct one (there are 3). I need to do the same for Apollo...
Click to expand...
Click to collapse
From what i remember this is the third (which is thor-v2-apq.dtb)
Well, cm is still a ***** to get ported :/, tree days on it without success.
Else the new odex framework is not deodexable by baksmali. If you ever have a solution let me know (You may not need that but I'm in a dead end).
So @ggow, did you made some progress on resurecting your device ?
In the meantime i did get msm aosp up and running ! (but no wifi, qcmediaplayer not found for no apparernt reason which prevent some audio to work, slow ui transitions and probably more stuff to fix).
Cpasjuste said:
So @ggow, did you made some progress on resurecting your device ?
In the meantime i did get msm aosp up and running ! (but no wifi, qcmediaplayer not found for no apparernt reason which prevent some audio to work, slow ui transitions and probably more stuff to fix).
Click to expand...
Click to collapse
So far no...
What I think could have happenned is the synaptic dsx firmware and configuration has been updated or corrupted by the new kernel.
I am in the process trying to figure out exactly what I need to do to fix it. I have found a utility which can be used to force an update to an older version of synaptic firmware.
I might have to write a utility to extract the firmware and configuration area from a working device.
Will let you know what I find.
Sent from my Kindle Fire HDX 7 using Tapatalk
ggow said:
So far no...
What I think could have happenned is the synaptic dsx firmware and configuration has been updated or corrupted by the new kernel.
I am in the process trying to figure out exactly what I need to do to fix it. I have found a utility which can be used to force an update to an older version of synaptic firmware.
I might have to write a utility to extract the firmware and configuration area from a working device.
Will let you know what I find.
Sent from my Kindle Fire HDX 7 using Tapatalk
Click to expand...
Click to collapse
Yep i was just going to talk you about this. I'm trying to fix wifi on the aosp build and discovered this lines in dmesg :
<6>[ 6.404807] synaptics_dsx_i2c 2-0020: fwu_start_reflash: Requesting firmware image Synaptics.3.B.thor.img
<6>[ 6.414184] synaptics_dsx_i2c 2-0020: Firwmare size 45056, config size 512
<6>[ 6.421216] synaptics_dsx_i2c 2-0020: Device firmware id 1509905.
<6>[ 6.427045] synaptics_dsx_i2c 2-0020: Device config ID 0x13, 0x07, 0x00, 0x02
<6>[ 6.434233] synaptics_dsx_i2c 2-0020: .img config ID 0x13, 0x07, 0x00, 0x02
<6>[ 6.441127] synaptics_dsx_i2c 2-0020: Nothing needs to be updated
<6>[ 6.447230] synaptics_dsx_i2c 2-0020: fwu_start_reflash: No need to do reflash.
Click to expand...
Click to collapse
Thank you for your work! I hope your problem will spill over into different firmware for our device. With the support of LTE I hope.

[Q] Init.d Support & SELinux

I am sure this will soon be moved into general ware it will sit among questions not related to compiling or Rom building but I am in hope it is her long enough to be read and maybe addressed.
I rely a bit on init.d support for my Rom's especially CM12. I do this so changes can be made without changing the code or default.xml as much as possible in adition to Google Apps I would like not included. My basic philosophy is if it can be installed via Play Store than I would like the first boot only to include the Google Core files and Play Store so for example if you look at the below github link will see the changes I needed in CM11 to replace the default launcher with the Now Launcher, Replace Stock Camera with Google Camera and the same for the Calendar but would like the users to decide if they would like to include whatever apps they would like as oposed to needing to remove the APK. Anyhow in short I use init.d to avoid making as little changes to code or default.xml as possible as well as what gapps package is used. Many include incompatible libs as a few for my CM based incarnation need to be replaced using either the Stock lib or libs taken from data/app that are more current so the script on first boot after flashing gapps will move files from a staging directory and place or replace ware needed and then remove the staging directory.
CM11
https://github.com/Starship-Android/android_device_starship-common/blob/cm-11.0/app-update
https://github.com/Starship-Android/android_device_starship-common/blob/cm-11.0/cleanup
CM12
https://github.com/Starship-Android/android_device_starship-common/blob/cm-12.0/app-update
https://github.com/Starship-Android/android_device_starship-common/blob/cm-12.0/cleanup
So far have done a decent amount of Google work and have learned my problem with both AOSP and CM is that SELinux is blocking init.d but have not found anything on how to address steps on fixing for what I use it for. The above links are just a small part but give enough of an idea of what I am trying to accomplish via init.d.
Any help would be appreciated. Until now I had fought a bit with SELinux once introduced to apply to the Kernel for the device I was developing at the time HTC EVo V 4g & EVO 3D but since then is still unfamiliar territory as I have not needed to learn much about it other than implementing into a Kernel when cm-10.2 was released. Both Devices had not been updated past ICS by HTC. I am thinking that maybe I need to add or change permissions in one of the rc files in the boot.img but honestly not sure as mentioned I have found plenty of mentions that SELinux is what is causing my init.d problems but have not seen anything on a solution or even just a link to an explanation of what specific changes had been made regarding SELinux or a further more detailed explanation specific to what in SELinux is responsable so can try to understand enough to figure out myself how to make the necessary changes .
Otherwise like my previous thread on What needs to be done differently developing with AOSP for developers who have gained all their experience bringing Cyanogen to new devices and other Sources who are now trying to develop AOSP Rom's for Nexus devices think this is a topic that would help developers save time and research but will probably be moved to general Q&A. Is off topic but with other Devices if questions or topics required basic knowledge of compiling source, Kernel changes or github would see the opposite in the threads being moved into developer discussions and not for example move a thread discussing say compiling the AOSP Kernel in line compiling both Rom and Kernel together or code changes needed in the build repository / Directory to stop custom recovery from being replaced with Stock recovery when users flash a custom Rom and reverting from Block based update zips to using the old school non Block based update zips. So far though I have posted these topics here as you don’t see members with such knowledge looking through the general Q&A section. Maybe I just inadvertently made an enemy of an admin as was surprised almost besides myself when a previous thread in the middle of discussing what changes would be needed for in line AOSP Kernel compiling in line like CM does compiling the Kernel along with the Rom and doing away with pre built Kernels. Needless to say the discussion was moved and died in general Q&A so if this is actually read I am asking that this thread remain in Developer Discussion long enough for an answer or at least a link to a resource covering the topic as a topic regarding the implementation of SELinux policy in a custom Rom will surely die in general Q&A, Thanks!
Are you OK with just disabling selinux? That's what I ended up doing. I recompiled the kernel with the option of using a boot command-line parameter to enable or disable as I see fit.
Gene Poole said:
Are you OK with just disabling selinux? That's what I ended up doing. I recompiled the kernel with the option of using a boot command-line parameter to enable or disable as I see fit.
Click to expand...
Click to collapse
When you have the option to disable or enable it, how do you set it to "disabled" afterwards?
I tried to compile a kernel+rom with selinux disabled many times but got only bootloops. With Kitkat it was working flawless.
L changed a partition entry adding a selinux policy to the mounting information. You need to change this entry int fstab.hammerhead to keep it from hanging on boot:
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337[COLOR="Red"],context=u:object_r:firmware_file:s0 [/COLOR] wait
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337 wait
Then your kernel should boot. You can add a command line entry to the boot image to turn it off or on.
Edit:
You may also have to comment out a line at the top of init.rc. I'm not sure, but mine is commented so I must have done it for some reason.
Code:
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /init.environ.rc
import /init.usb.rc
import /init.${ro.hardware}.rc
import /init.${ro.zygote}.rc
import /init.trace.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_score_adj -1000
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
[COLOR="Red"]#write /sys/fs/selinux/checkreqprot 0[/COLOR]
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
# Set the security context of /adb_keys if present.
restorecon /adb_keys
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
Thanks, will give it a shot!
Any downside on disabling it?
Well, obviously, anything that selinux might be protecting you from would be able to get through, but as developers, we're pretty pessimistic about what we run on our devices.
Gene Poole said:
Well, obviously, anything that selinux might be protecting you from would be able to get through, but as developers, we're pretty pessimistic about what we run on our devices.
Click to expand...
Click to collapse
So its only f*** the NSA for us then!
So i add this to boardconfig: androidboot.selinux=disabled
Then do those things you said. Would i need to put on kernel defconfig :
#CONFIG_SECURITY_SELINUX=is not set
Or will i have to add that "allow selinux disabled on boot"
Or is it enough to have that boardconfig parameter and your things.
Thank you very much mate!
Oh and yes im building a full rom with inline kernel
I think that should do it. I've got a pretty hacked up boot.img so I can't be sure what's in there for what.
I have the following setting in my kernel config:
Code:
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y
Ok thanks for all the Selinux help but may look like I’m not able to run init.d scripts because root is disabled by default. So bringing up a new topic about starting first boot with root access. I have been looking over the CM github for a commit that turns it off so I can either manually revert or rebase a clone.
Gene Poole said:
L changed a partition entry adding a selinux policy to the mounting information. You need to change this entry int fstab.hammerhead to keep it from hanging on boot:
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337[COLOR="Red"],context=u:object_r:firmware_file:s0 [/COLOR] wait
Code:
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337 wait
Then your kernel should boot. You can add a command line entry to the boot image to turn it off or on.
Edit:
You may also have to comment out a line at the top of init.rc. I'm not sure, but mine is commented so I must have done it for some reason.
Code:
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /init.environ.rc
import /init.usb.rc
import /init.${ro.hardware}.rc
import /init.${ro.zygote}.rc
import /init.trace.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_score_adj -1000
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
[COLOR="Red"]#write /sys/fs/selinux/checkreqprot 0[/COLOR]
# Set the security context for the init process.
# This should occur before anything else (e.g. ueventd) is started.
setcon u:r:init:s0
# Set the security context of /adb_keys if present.
restorecon /adb_keys
start ueventd
# create mountpoints
mkdir /mnt 0775 root system
Click to expand...
Click to collapse
Bumb to this method. Something is changed in Nougat, after editin all these stuff, i will loose data and cell connections..

I9300 Kexec-Hardboot

Hello! So I've been trying to Kexec-Hardboot another custom kernel. I'm using Agni Kernel which has Kexec-Hardboot implemented. I patched the guest kernel to copy atags to be able to make it a guest kernel. Everytime I try to execute the guest kernel, the phone turns off for about 30 seconds and then boots to the ptevious kernel.
kexec --load-hardboot zImage --initrd=ramdisk --mem-min=0x44000000 --command-line=" androidboot.selinux=permissive buildvariant=userdebug"
kexec -e
Tried different --mem-min values but still the same. Tried cat'ing /proc/cmdline for --command-line. I even Tried recompiling Agni and enabling ram_console and copy atags. Still the same. If anyone could please help me here. Thanks
EDIT: Managed to implement kexec on TWRP but still the same. last_kmsg shows no trace of kexec
Post it in Q&A section not here
Sorry I didn't know there was a discussion section for this. I can't move this thread.

Categories

Resources