I don't think the question is why it fails. I think we all agree the snippet posted by Elena should fail. But what I still don't understand is why the addition of a entry to an fc without a newline causes the build error to finally manifest.
We should also update all the device policies so they have a newline in AOSP so the examples are correct. On Thu, Dec 3, 2015, 9:15 AM Stephen Smalley <[email protected]> wrote: > On 12/03/2015 09:02 AM, Stephen Smalley wrote: > > On 12/03/2015 05:07 AM, Elena Reshetova wrote: > >> Hi guys, > >> > >> I have been investigating a really weird issue and want to ask if you > >> know what might go wrong. > >> So, normally file_contexts file is composed from the > >> external/sepolicy/file_contexts and OEM modifications that can be > >> declared in different places in file_contexts files, but joined using > >> the BOARD_SEPOLICY_DIRS. For example: > >> BOARD_SEPOLICY_DIRS += device/intel/sepolicy/bla/xyz > >> > >> All is good and it worked for ages, but now it works strangely on one > >> (and only one) particular addition in file_contexts like this: > >> > >> /dev/xyz u:object_r:xyz_device:s0 > >> > >> Important part here is that there is no newline at the end of the above > >> line (which is quite normal and the same for many other similar > >> file_contexts file). > >> > >> So, what happens is that line gets added to the resulted file_contexts > >> there is a no newline after and the next addition to file_contexts get > >> written to the same line (straight after the label). So, in the > >> resulting file_contexts we have: > >> > >> /dev/xyz u:object_r:xyz_device:s0#Additional file_contexts > >> > >> Where "#Additional file_contexts" is the first line of another > >> file_contexts file that happens to be added after. > >> > >> Of course selinux has an issue with the above label, so it complains: > >> > >> out/target/product/bla/root/file_contexts: line 721 has invalid file > >> type u:object_r:xyz_device:s0# > >> out/target/product/bla/root/file_contexts: line 721 has invalid file > >> type u:object_r:xyz_device:s0# > >> out/target/product/bla/root/file_contexts: line 721 has invalid file > >> type u:object_r:xyz_device:s0# > >> out/target/product/bla/root/file_contexts: line 721 has invalid file > >> type u:object_r:xyz_device:s0# > >> > >> Any ideas why this happens? > > > > I don't see why this would ever work (I just tried with 5.1.1 and it > > failed there too). m4 (or cat) doesn't insert newlines automatically > > between input files, so if you do not newline-terminate your files, they > > will get munged in this way. > > Oh, I see - this didn't become a hard error at build time until: > https://android-review.googlesource.com/#/c/163570 > > But it is wrong regardless and will cause that line to get ignored at > runtime. > _______________________________________________ > Seandroid-list mailing list > [email protected] > To unsubscribe, send email to [email protected]. > To get help, send an email containing "help" to > [email protected]. >
_______________________________________________ Seandroid-list mailing list [email protected] To unsubscribe, send email to [email protected]. To get help, send an email containing "help" to [email protected].
