[APP] QuickRemote IR Blaster for AOSP roms

Search This thread

sefnap

Member
Sep 22, 2013
40
479
Hi everybody! I've switched over to CM 10.2 M1 as my daily driver, but I missed being able to change the volume on my tv with my phone. So, I've managed to get the QuickRemote app from the stock ROM working on Cyanogenmod (and hopefully other AOSP roms). There is nothing carrier-specific in this, so it should work on all variants.

Luckily there is no kernel module involved in driving the IR hardware. Instead the IR chip is a black box that is controlled via an internal serial port interface. The QuicksetSDK.apk package includes the code to control the IR chip. It creates a Service that the LGQRemote.apk app binds to to send commands to the IR hardware.

Installation
This will only work on rooted devices.
To get this working you'll need to install two APKs:

You'll also need to add a script that runs on device boot.
You can download mine here: 10QuickRemote

Or just make one yourself, containing this code:
Code:
#!/system/bin/sh

chmod 666 /dev/ttyHSL1
setprop persist.sys.lge.eula_agreement true

This makes the serial port accessible to non-system processes. On the LG stock rom the QuicksetSDK package runs as the system user, but here we're running it as a normal unprivileged user, so we need to make the serial port world-readable and writable. We also use the 'setprop' command to tell the QuickRemote app that we've agreed to LG's EULA, otherwise it will attempt to launch a non-existent EULA activity and crash.

I'm not 100% sure how the init.d system works on other AOSP roms, but on Cyanogenmod, you can place this script in the /data/local/userinit.d directory (creating the userinit.d directory if necessary). The script should not have an extension, and should be executable.

A quick method that works on CM, assuming you've downloaded my 10QuickRemote script to your current directory:
Code:
adb root
adb shell "mkdir -p /data/local/userinit.d"
adb push 10QuickRemote /data/local/userinit.d
adb shell "chmod 755 /data/local/userinit.d/10QuickRemote

For the above to work, you'll need to enable root for adb in Settings > Developer Options > Root Access

After a reboot, you should be able to use the QuickRemote app just like on the stock ROM!

If the app crashes right away, or if it launches but won't send any IR commands or learn new ones, your start-up script probably isn't being executed properly. Try running it manually and see if things work:

Code:
adb shell
--- inside adb, as root:
# sh /data/local/userinit.d/10QuickRemote

# ls -l /dev/ttyHSL1
--  result should be: 
crw-rw-rw- system   system   245,   1 2013-11-06 08:20 ttyHSL1

# getprop persist.sys.lge.eula_agreement
--  result should be:
true

If running it manually works, make sure the script is executable or it won't be called automatically on boot:
Code:
-- inside a root shell
# chmod 755 /data/local/userinit.d/10QuickRemote
If it is executable and still doesn't work after a reboot, and you're running a non-Cyanogen ROM, they probably do init scripts differently. Hopefully you can google up how to make it work ;)

If everything looks correct and it still won't work, send me a logcat and I'll try to figure it out.

Enjoy!
 

steveo17

Senior Member
Sep 30, 2010
1,187
282
South Amboy
Hi everybody! I've switched over to CM 10.2 M1 as my daily driver, but I missed being able to change the volume on my tv with my phone. So, I've managed to get the QuickRemote app from the stock ROM working on Cyanogenmod (and hopefully other AOSP roms). There is nothing carrier-specific in this, so it should work on all variants.

Luckily there is no kernel module involved in driving the IR hardware. Instead the IR chip is a black box that is controlled via an internal serial port interface. The QuicksetSDK.apk package includes the code to control the IR chip. It creates a Service that the LGQRemote.apk app binds to to send commands to the IR hardware.



Enjoy!


thanks so much!!

would it be possible to make this into a flashable zip?
 
Last edited:

blkghost22

Senior Member
Jan 29, 2010
880
220
Samsung Galaxy Z Flip3
just a quick question am i suppose to see the list of make and models? if so i dont see it... the remote is installed though

nvm... some how the list came out.. not sure what i did. thx for the mod
 
Last edited:

blkghost22

Senior Member
Jan 29, 2010
880
220
Samsung Galaxy Z Flip3
I have the same issue. You just keep playing around with it?

Sent from my LG-VS980 using Tapatalk

yes.. but honestly i really dont know what i did... the last thing i did was try to make a universal remote and just cancelled out of it... and installed the sql...apk

---------- Post added at 11:11 AM ---------- Previous post was at 11:09 AM ----------

just figured it out.. the •QuicksetSDK.apk is not running at first.. so i just reinstalled it again... and the list comes up... for some reason i guess it doesnt start.
 

steveo17

Senior Member
Sep 30, 2010
1,187
282
South Amboy
yes.. but honestly i really dont know what i did... the last thing i did was try to make a universal remote and just cancelled out of it... and installed the sql...apk

---------- Post added at 11:11 AM ---------- Previous post was at 11:09 AM ----------

just figured it out.. the •QuicksetSDK.apk is not running at first.. so i just reinstalled it again... and the list comes up... for some reason i guess it doesnt start.


Right i installed it by clicking the apk and installed it like normal. And now it works


Sent from my LG-VS980 using Tapatalk
 

player911

Inactive Recognized Developer
Sep 8, 2006
7,952
1,205
Cincinnati
www.SnapSiteAdmins.com
awesome job!

I've been leery of flashing a custom rom for the lack of IR and other features. Plus I'm really digging the stock rom.

But with AOKP coming soon, I am might be tempted. Good to know that the application works with directly with the IR blaster.

I thought AOSP 4.4 was suppose to have support for IR blasters, but it seems noone has them working on CM yet.
 

sefnap

Member
Sep 22, 2013
40
479
yes.. but honestly i really dont know what i did... the last thing i did was try to make a universal remote and just cancelled out of it... and installed the sql...apk

---------- Post added at 11:11 AM ---------- Previous post was at 11:09 AM ----------

just figured it out.. the •QuicksetSDK.apk is not running at first.. so i just reinstalled it again... and the list comes up... for some reason i guess it doesnt start.

The list is actually downloaded by the QuicksetSDK app at runtime. I guess they did it that way so they could add models after shipping the phone.
 

slayer3032

Senior Member
May 23, 2013
181
32
Set this up on my D801, works great! It's a little difficult to navigate sometimes because some of the coloring of menus is designed for the stock rom. It seems to be missing the Comcast cable box settings though, it could be possible the app is different on different phones. Either way I just made it "learn" buttons over my TV remote which works way better than the short while I had it on the stock rom. This is the only feature I miss at all from stock, now my phone has every feature I want!

It's really not difficult to use a little terminal/command prompt, people are scared of putting in commands for some silly reason. If you've used ioroot, you already have adb to use too.
 
  • Like
Reactions: tesna

zplit

Senior Member
Dec 28, 2008
718
218
Google Pixel 6 Pro

Attachments

  • 1383788592284.jpg
    1383788592284.jpg
    36.7 KB · Views: 2,419

fireworksordie

Senior Member
Dec 12, 2010
109
28
thank you SO MUCH sefnap! and thank you RieGo for the flashable zip. just flashed on PA 4.3 for D801 and everything is working beautifully.

and as mentioned above- if there's any way you could get the lg camera to work, too, you would be the king. it looks like some sort of progress has been made over in this thread. the AOSP camera works well, but i'd love to have the manual focus option, and so on.

thanks again for adding this great functionality back for us! :good:
 

allan1229

Senior Member
Jan 29, 2011
221
77
Thanks. Flashable zip works perfectly with slimbean on D801. This was the only thing I was missing with AOSP. Thanks again

LG D801 on Slimbean
 

Top Liked Posts

  • There are no posts matching your filters.
  • 93
    Hi everybody! I've switched over to CM 10.2 M1 as my daily driver, but I missed being able to change the volume on my tv with my phone. So, I've managed to get the QuickRemote app from the stock ROM working on Cyanogenmod (and hopefully other AOSP roms). There is nothing carrier-specific in this, so it should work on all variants.

    Luckily there is no kernel module involved in driving the IR hardware. Instead the IR chip is a black box that is controlled via an internal serial port interface. The QuicksetSDK.apk package includes the code to control the IR chip. It creates a Service that the LGQRemote.apk app binds to to send commands to the IR hardware.

    Installation
    This will only work on rooted devices.
    To get this working you'll need to install two APKs:

    You'll also need to add a script that runs on device boot.
    You can download mine here: 10QuickRemote

    Or just make one yourself, containing this code:
    Code:
    #!/system/bin/sh
    
    chmod 666 /dev/ttyHSL1
    setprop persist.sys.lge.eula_agreement true

    This makes the serial port accessible to non-system processes. On the LG stock rom the QuicksetSDK package runs as the system user, but here we're running it as a normal unprivileged user, so we need to make the serial port world-readable and writable. We also use the 'setprop' command to tell the QuickRemote app that we've agreed to LG's EULA, otherwise it will attempt to launch a non-existent EULA activity and crash.

    I'm not 100% sure how the init.d system works on other AOSP roms, but on Cyanogenmod, you can place this script in the /data/local/userinit.d directory (creating the userinit.d directory if necessary). The script should not have an extension, and should be executable.

    A quick method that works on CM, assuming you've downloaded my 10QuickRemote script to your current directory:
    Code:
    adb root
    adb shell "mkdir -p /data/local/userinit.d"
    adb push 10QuickRemote /data/local/userinit.d
    adb shell "chmod 755 /data/local/userinit.d/10QuickRemote

    For the above to work, you'll need to enable root for adb in Settings > Developer Options > Root Access

    After a reboot, you should be able to use the QuickRemote app just like on the stock ROM!

    If the app crashes right away, or if it launches but won't send any IR commands or learn new ones, your start-up script probably isn't being executed properly. Try running it manually and see if things work:

    Code:
    adb shell
    --- inside adb, as root:
    # sh /data/local/userinit.d/10QuickRemote
    
    # ls -l /dev/ttyHSL1
    --  result should be: 
    crw-rw-rw- system   system   245,   1 2013-11-06 08:20 ttyHSL1
    
    # getprop persist.sys.lge.eula_agreement
    --  result should be:
    true

    If running it manually works, make sure the script is executable or it won't be called automatically on boot:
    Code:
    -- inside a root shell
    # chmod 755 /data/local/userinit.d/10QuickRemote
    If it is executable and still doesn't work after a reboot, and you're running a non-Cyanogen ROM, they probably do init scripts differently. Hopefully you can google up how to make it work ;)

    If everything looks correct and it still won't work, send me a logcat and I'll try to figure it out.

    Enjoy!
    43
    update: http://xdaforums.com/showthread.php?p=49083111

    old version:

    Flashable ZIP:

    QRemoteG2_v6_unsigned.zip
    info:
    -extracted from leaked kitkat build, only tested on 4.4 ROMs
    -reduced size by removing unneeded help videos and optimizing pngs
    -works with all ROMs that have init.d support (or use "universal init.d")
    -reflash after ROM update depends on ROM (same as gapps), known to work: CM + AOSPA
    -does not work with ART
    -key sound is fixed

    Download: https://drive.google.com/file/d/0B5oN6i68oB0RYVlBQXNwWWpTQ1E/edit?usp=sharing
    mirrors: http://mir.cr/9QS3M4NJ


    QRemoteG2_slim3_unsigned.zip
    info:
    -reduced size to ~25MB by removing unneeded help videos and smoothing graphics
    -all color problems should be fixed
    -works with all almost all ROMs (480dpi), including kitkat, but has to be reflashed after ROM update
    -if it doesn't work for you you can try using "universal init.d" or a similar app. (or ask your rom developer to add init.d kernel support)

    Download: http://d-h.st/wmQ
    mirrors:
    https://mega.co.nz/#!W1ZXSI5Q!WBE89XwMGN-PQBXG2n5mWWicsW8TKKIc7oSiesmA-xs
    http://mir.cr/F6VEGLJH

    CM special version (survives a ROM update, but works on CM only):
    https://mega.co.nz/#!e1ZzSYza!FwtByg-dQpa8buHxjEgejnFc1lYRkebjjRBFP_-7IQ8
    12
    nice job!
    i made a quick flashable zip package:
    http://www43.zippyshare.com/v/86147127/file.html (new slim mod)
    -> http://xdaforums.com/showpost.php?p=47500016&postcount=94
    (installs in data partition so it should survive a rom update)
    11
    alright, i trimmed the apk a bit, so here is the new one which is much smaller (162MB->52MB):
    http://www43.zippyshare.com/v/86147127/file.html old
    -> http://xdaforums.com/showpost.php?p=47500016&postcount=94
    you can just flash it over the last one if you like.
    You should not notice any difference to the big one. i just removed unused resolutions and optimized the drawables.
    10
    i guess carbon has no userinit.d support.
    you could try to move the 10QuickRemote userscript from "/data/local/userinit.d/" to "/system/etc/init.d/" with any root explorer.
    only downside to this method is the script gets removed after flashing a new rom

    I edited the flashable zip for Carbon and other Roms, that don't have userinit.d-Support. The changes worked all right for me. My thanks go to sefnap and RieGo!
    http://www14.zippyshare.com/v/4583863/file.html