Well, even though what i just said is true, no remote controller app has the learning method enabled, even on a stock rom, only QuickRemote can enable the IR receiver to learn a controller that does not appear on the device/manufacturers list.
So, that's the reason we want QuickRemote to work on our AOSP rom.
So, before anything, i would like to thank @hikarisei23 because in a comment of his post HERE i found the files for QuickRemote to work on MM wich leads to the second person i want to thank wich is @syndre who on said comment, posted the files that worked on MM, also @KronicSkillz who helped a lot to troubleshoot and also confirmed that the method i'm posting here works.
Well, this is it, after personally testing with: Resurrection Remix, AICP and Bliss, all of them MM amd CM13 based, all of them with the stock kernel and Lambda Kernel i'm confident enough to post it here, days of testing and troubleshooting and 3 different roms later.
So first, the mandatory disclaimer, im not responsible for any problem that may result from using my method and the files i'm providing you, either with your phone or your self-esteem, it's your responsibility to read, re-read and only do what you are comfortable with.
1. - The phone, this only has been tested with Lg G2 and Lg G3, this may or may not work on another LG phone with IR, you can try, but at your own risk.
2. - The Rom, this only have been tested with AOSP roms either CM13 or CM13 based roms, again, you can try in another rom but at your own risk.
3. - Obviously a Custom Recovery (twrp, cwm, philz)
4. - The three zips im leaving at the end of the post, QRemote_AOSP_MM.zip Fix_Part1.zip and Fix_Part2.zip.
5. - Maybe necessary or not, depending on your rom, Universal init.d from Playstore HERE and Selinux Mode Changer from HERE.
6. - Root Access.
Ok, once you checked and have everything needed, we have to make a little prep on your Rom before starting to flash the zips.
You need to set Selinux to permissive, here is where you may or may not need Selinux Mode Changer, First go into "About Device" on your phone settings and in the bottom you will find an indicator for Selinux state, if its "Permissive" you are good to go, some Roms and Kernels have this set to Permissive by default, if it's Enforcing, search in your Rom or Kernel settings, some of them have an option to set it to Permissive, if your rom does not have any option to change it, you will need Selinux Mode Changer, you install it and set Selinux to permissive, after reboot you can check in About Device again to see if it succeded, if it does not work, try again and check the original post, most of the answers are there, i cant give support for this app, also, this app needs root rights, and preferably two reboots after setting Selinux to Permissive.
Next you need to have init.d support, again, some roms have it, but at least for the test that me and the other users did, even though you are pretty sure init.d is enabled it's better to just install Universal init.d from the Play Store and enable init.d manually after doing so, reboot the system at least two times and grant Root access.
Now we are ready to start flashing, reboot into recovery and RECOMMENDED, do a Nandroid Backup just in case, but at the moment no boot loops or any other problems had raised from flashing this, but again, just in case. After that, flash the first file: QRemote_AOSP_MM.zip, reboot your system and let it settle for a bit, 1 minute at least.
Now is the part where almost everyone has problems, you have to check in your Sdcard root for a log file named Qremote.log, if the file is there, it means init.d is enabled and in the file it will say if Selinux is Ok, if you don't have the file, check back the first two prep steps and try again.
Now if everything is going ok, is time for the second file, Fix_Part1.zip, reboot and let the system settle again, you may have some force close errors from QuickRemote or QuicksetSDK, its ok, you can try and check if QuickRemote is working, in allmost every case it will not work just yet, but you may have some luck.
Now, is the time to flash the third file, Fix_Part2.zip, again, reboot and let the system settle, now, you should have a working QuickRemote app on you AOSP MM Rom.
This are the steps, if you need more information about what all of this is doing and why you need Selinux and init.d, also why you need to flash 3 files, you can read the troubleshooting section where i explain what i understand about it.
Well, if you are here, it means that this didn't work as planned, so lets make this like a FAQ so you just search your problem and get the answer for it.
P.- I can't see QuickRemote on my app drawer. A: be sure that QuickRemote.apk is not showing as "com.lge...." and has the default green Android icon on your app drawer, sometimes and for reasons unknown to me, this happens for the first day or so, it will automatically change to QuickRemote and it will have the correct icon at least 5 hours after you installed it, it can take more time. A2: Maybe the flashing proccess was not successful, re-flash the file, it will automatically delete previously flashed files and install a new copy of them.
P. - I get force close messages for QuickRemote or QuicksetSDK after completing the proccess. A: try to run QuickRemote after the system settled, most of the times is 1 minute, in some roms and for reasons unknown to me, this messages will appear at boot but after the system settled, you will be able to run QuickRemote without any problem.
P. - QuickRemote opens up but no manufacturers are showing and it also gets really slow. A: this problem shows when either QuicksetSDK is not correctly installed or Selinux is not set to permissive, the solution for the first problem is in my 2 part fix, the version of Selinux included in the first zip, works great with MM but for some reason it will not work out of the box, i dont know if it's missing some files but it may or may not even show under system apps list on your settings menu, what my 2 part fix does is that, deletes the version of QuicksetSDK that the first flash installs and installs a temporary copy of QuicksetSDK wich i believe, writes information needed for QuicksetSDK to work properly, but this newer temporary QuicksetSDK apk, will allmost never work on MM, you can try but allmost every time it will not work, it will constantly force close, so the second fix zip, will delete this temporary QuicksetSDK and the folder it creates in your Sdcard root and install the previous version of QuicksetSDK again, and now, if everything went well, it will work as it's supposed to, i really dont know why exactly, but it works.
A2: the first thing you will notice when you switch to MM is that allmost every app will ask for permission to your Sdcard or camera or microphone wich in LP was not doing, since 4.3 Google is taking extra steps to ensure that you and your information are better protected one of this steps is Selinux (Security Enhanced Linux) wich, for putting it in simple terms, is like a sandbox for your system, only some trust-signed apps can get out of that sandbox and copy files etc... Into your system, those not-so privileged apps cant output anything outside the sanbox and thats why you need to disable or "set to permissive" Selinux, so QuicksetSDK can make the changes necessary for QuickRemote to do its work, it's true that now your system is in a degree "more vulnerable" but if you are a user of this forum, the odds to install something that will damage your system or jeopardize your information are minimal, you need to be really silly to fall for those "your system has problems" or "your battery is gonna explode if you don't install this app" ads that appear on your phone on the daily basis, so, dont worry, but at the same time, just be carefull and have some common sense, if there is a way for this to work with Selinux set to Enforcing, i will update it in the same second.
P. - QuickRemote force closes whenever i try to open it. A: this is caused by either a bad zip flash, or problems with Selinux or init.d, follow the previous answer and the first installation steps again.
P. - I can see QuickRemote and QuicksetSDK on my apps list, no force closes but still no manufacturers. A: Be sure init.d is enabled, i had problems with Roms that had "native init.d support" and emulated init.d will not work, the only way i got no problems with this was with Universal init.d, install that even though you are "pretty sure" your rom supports init.d, the 10QuickRemote.sh script on your init.d tries to get your country to see if you will use the app in, either Korean or any other supported language, it will also give some permissions to a file and it will check if Selinux is Permissive and finally, it will log this to a file called Qremote.log on the root of your Sd, if you have problems and you cant see the file, the problem is 99% most of the time, init.d.
P.- I don't want to flash three files, isn't there a simpler way? A: Unfortunately no, at this moment and after A LOT of testing etc... This is the only effective way i found.
P. - I'm afraid to set Selinux to permissive and leave the door open for all kind of bad ju ju and stuff to invade my sacred Android system, what can i do? A: Skip this hole thing, at the moment, the only way to make this work on AOSP MM is by doing the previous, just be careful, get some common sense and everything will be just fine.
Well, thats all i can think of right now, if you have suggestions, problems or a better way to make this work, please tell me in the comments or PM me, i'm glad to help as far as i can, i hope this helps, i leave you with the needed files and proof that it works.
QRemote_AOSP_MM.zip - MEGA - DRIVE