[Omni Q&A] ssuds:
Awesome, thanks and that's great to hear that I'm getting close.

So if I'm understanding you correctly, I would be safe in just removing the 'include tlv.h' line in alsa_mixer.c? It's kinda curious that it didn't cause any conflicts while compiling CM12 vs Omni, but I guess the source might be different enough to cause conflicts?

EDIT: It initially looked like removing the 'include tlv.h' line let me get past that, I then ran into

DumpPublicKey: /home/shreyas/omni2/out/target/product/mb886/obj/PACKAGING/ota_keys_intermediates/keys <= build/target/product/security/testkey.x509.pem
java -jar /home/shreyas/omni2/out/host/linux-x86/framework/dumpkey.jar build/target/product/security/testkey.x509.pem > /home/shreyas/omni2/out/target/product/mb886/obj/PACKAGING/ota_keys_intermediates/keys
device/motorola/msm8960_jbbl-common/sepolicy/sysinit.te:2:ERROR 'unknown type userinit_exec' at token ';' on line 18238:
#line 1 "device/motorola/msm8960_jbbl-common/sepolicy/sysinit.te"
allow sysinit userinit_exec:file { getattr execute read open execute_no_trans };
checkpolicy: error(s) encountered while parsing configuration
make: *** [/home/shreyas/omni2/out/target/product/mb886/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery] Error 1
make: *** Waiting for unfinished jobs....
target StaticLib: libc (/home/shreyas/omni2/out/target/product/mb886/obj/STATIC_LIBRARIES/libc_intermediates/libc.a)
target StaticLib: libc_nomalloc (/home/shreyas/omni2/out/target/product/mb886/obj/STATIC_LIBRARIES/libc_nomalloc_intermediates/libc_nomalloc.a)

real	3m19.468s
user	1m34.553s
sys	1m0.526s
shreyas@shreyas-VirtualBox:~/omni2$

The code in sysinit.te is:

allow sysinit userinit_exec:file { getattr execute read open execute_no_trans };
allow sysinit property_socket:sock_file write;
allow sysinit system_data_file:file { open };
allow sysinit init:unix_stream_socket connectto;
allow sysinit sysfs:file write;

I just deleted out the first line referring to sysinit userinit_exec

Tried the build again, at which point seems like everything broke on the libalsa-intf stuff:

Install: /home/shreyas/omni2/out/target/product/mb886/system/bin/am
Import includes file: /home/shreyas/omni2/out/target/product/mb886/obj/EXECUTABLES/amix_intermediates/import_includes
target thumb C: aplay <= hardware/qcom/audio/legacy/libalsa-intf/aplay.c
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'mixer_dump':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:240:9: warning: pointer targets in passing argument 1 of 'is_volume' differ in signedness [-Wpointer-sign]
ALOGV("%4d %5s %3d %3d %3d %3d %c%c%c%c%c%c%c%c%c %-6s %8d %s",
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:78:12: note: expected 'const char *' but argument is of type 'unsigned char *'
static int is_volume(const char *name, enum ctl_type *type)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'mixer_ctl_read_tlv':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:345:14: error: 'SNDRV_CTL_TLVT_DB_SCALE' undeclared (first use in this function)
case SNDRV_CTL_TLVT_DB_SCALE: {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:345:14: note: each undeclared identifier is reported only once for each function it appears in
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:368:14: error: 'SNDRV_CTL_TLVT_DB_LINEAR' undeclared (first use in this function)
case SNDRV_CTL_TLVT_DB_LINEAR: {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'mixer_ctl_get':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:403:5: warning: pointer targets in passing argument 1 of 'is_volume' differ in signedness [-Wpointer-sign]
if (is_volume(ctl->info->id.name, &type)) {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:78:12: note: expected 'const char *' but argument is of type 'unsigned char *'
static int is_volume(const char *name, enum ctl_type *type)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:409:5: warning: passing argument 5 of 'mixer_ctl_read_tlv' from incompatible pointer type [enabled by default]
mixer_ctl_read_tlv(ctl, tlv, &min, &max, &tlv_type);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:311:5: note: expected 'unsigned int *' but argument is of type 'unsigned int **'
int mixer_ctl_read_tlv(struct mixer_ctl *ctl,
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'mixer_ctl_mulvalues':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:488:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (count < ctl->info->count || count > ctl->info->count)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:488:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (count < ctl->info->count || count > ctl->info->count)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'mixer_ctl_set':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:537:5: warning: pointer targets in passing argument 1 of 'is_volume' differ in signedness [-Wpointer-sign]
if (is_volume(ctl->info->id.name, &type)) {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:78:12: note: expected 'const char *' but argument is of type 'unsigned char *'
static int is_volume(const char *name, enum ctl_type *type)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:544:18: error: 'SNDRV_CTL_TLVT_DB_LINEAR' undeclared (first use in this function)
case SNDRV_CTL_TLVT_DB_LINEAR:
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:551:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:551:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:53: warning: signed and unsigned type in conditional expression [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:551:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:31: warning: signed and unsigned type in conditional expression [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:551:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:552:17: warning: format '%d' expects argument of type 'int', but argument 5 has type 'long int' [-Wformat=]
ALOGV("tlv db linear: %d %d %d\n", percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:552:17: warning: format '%d' expects argument of type 'int', but argument 6 has type 'long int' [-Wformat=]
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:557:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:557:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:53: warning: signed and unsigned type in conditional expression [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:557:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:51:31: warning: signed and unsigned type in conditional expression [-Wsign-compare]
(((val < min) ? (min) : (val > max) ? (max) : (val)))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:557:27: note: in expansion of macro 'check_range'
percent = check_range(percent, min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'set_volume_simple':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:645:5: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long int' [-Wformat=]
ALOGV("val = %x", val);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:651:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (count < ctl->info->count || count > ctl->info->count)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:651:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (count < ctl->info->count || count > ctl->info->count)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c: In function 'mixer_ctl_set_value':
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:701:5: warning: pointer targets in passing argument 1 of 'is_volume' differ in signedness [-Wpointer-sign]
if (is_volume(ctl->info->id.name, &type)) {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:78:12: note: expected 'const char *' but argument is of type 'unsigned char *'
static int is_volume(const char *name, enum ctl_type *type)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:707:13: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long int' [-Wformat=]
ALOGV("min = %x max = %x", min, max);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:707:13: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'long int' [-Wformat=]
make: *** [/home/shreyas/omni2/out/target/product/mb886/obj/SHARED_LIBRARIES/libalsa-intf_intermediates/alsa_mixer.o] Error 1
make: *** Waiting for unfinished jobs....
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:44:8: warning: type defaults to 'int' in declaration of 'pcm_flag' [-Wimplicit-int]
static pcm_flag = 1;
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:45:8: warning: type defaults to 'int' in declaration of 'debug' [-Wimplicit-int]
static debug = 0;
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c: In function 'play_file':
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:196:5: warning: passing argument 2 of 'pcm_open' discards 'const' qualifier from pointer target type [enabled by default]
pcm = pcm_open(flags, device);
^
In file included from hardware/qcom/audio/legacy/libalsa-intf/aplay.c:30:0:
hardware/qcom/audio/legacy/libalsa-intf/alsa_audio.h:137:13: note: expected 'char *' but argument is of type 'const char *'
struct pcm *pcm_open(unsigned flags, char *device);
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:197:13: warning: ordered comparison of pointer with integer zero [-Wextra]
if (pcm < 0)
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:198:9: warning: return makes integer from pointer without a cast [enabled by default]
return pcm;
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:312:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (avail < pcm->sw_p->avail_min) {
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:324:18: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u_int8_t *' [-Wformat=]
fprintf(stderr, "dst_addr = 0x%08x\n", dst_addr);
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:325:18: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat=]
fprintf(stderr, "Aplay:avail = %d frames = %d\n",avail, frames);
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:325:18: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat=]
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:339:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (remainingData < bufsize) {
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:444:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (remainingData < bufsize)
^
hardware/qcom/audio/legacy/libalsa-intf/aplay.c:461:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (remainingData < bufsize)
^

real	6m36.672s
user	15m25.977s
sys	2m42.391s
shreyas@shreyas-VirtualBox:~/omni2$

I'm not really sure where to go from here... So far I've just deleted out those two lines (one in tlv.h and one in sysinit.te), but with so much stuff seemingly broken here I don't even know where to start :eek: