An application that lets you turn-off TVs with the IR-blaster of your Android device. Inspired by the TV-B-Gone remote.

Related tags

Kotlin TVKILL
Overview

TV KILL - Universal IR-Remote

TV KILL is a mobile application for Android that enables you to turn off TVs, using your device's built-in IR-blaster.
The app basically transmits a variety of off-patterns for different TVs successively, which will cause most TVs to power down.

TV KILL is available on Google Play and F-Droid
Get it on Google Play Get it on F-Droid

Feedback

If you have any suggestions or questions regarding our app, feel free to contact us!
[email protected]

You may also use the issues-page to submit bug reports and feature requests:
https://github.com/42SK/TVKILL/issues

Contributing

Adding new patterns

If you can determine the off-pattern for a TV that is not yet supported, it would be great if you would add it to TV KILL.
You can find a detailed explanation on how to add patterns to the application on this wiki page.

Translate

Help us to translate TV KILL by creating a new strings.xml file for your language.
We'd also appreciate any translation suggestions for the app's description on Google Play.

Take a short look at our contributing guidelines before opening a pull request.

Licence

GPLv3
This application is free (and open source) software.
Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html
Copyright 2015-2018 Sebastian Kappes
Copyright 2018 Jonas Lochmann

Comments
  • LG G2 with CM

    LG G2 with CM

    I'm using the F-Droid build on LG G2 with the latest CyanogenMod 12.1 nightly, but the IR-Diode isn't sending out any signal. The app detects an IR-Blaster at startup. According to the changelog of CM the IR-Blaster is supported on the LG G2 now: http://review.cyanogenmod.org/#/c/111554/

    Maybe a logcat helps: 10-25 15:11:43.672 I/ActivityManager(819): START u0 {act=android.intent.action.VIEW dat=https://github.com/42SK/TVKILL cmp=org.mozilla.fennec_fdroid/.App} from uid 10137 on display 0 10-25 15:19:59.591 I/Timeline(2123): Timeline: Activity_launch_request id:com.redirectapps.tvkill time:13823519 10-25 15:19:59.592 I/ActivityManager(819): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.redirectapps.tvkill/.MainActivity (has extras)} from uid 10009 on display 0 10-25 15:19:59.620 V/WindowManager(819): addAppToken: AppWindowToken{16a1519 token=Token{29c0ec60 ActivityRecord{1ff10863 u0 com.redirectapps.tvkill/.MainActivity t2581}}} to stack=1 task=2581 at 0 10-25 15:19:59.623 V/WindowManager(819): Adding window Window{2bc3e778 u0 Starting com.redirectapps.tvkill} at 12 of 18 (after Window{2ce1cd34 u0 org.mozilla.fennec_fdroid/org.mozilla.fennec_fdroid.App}) 10-25 15:19:59.673 I/ActivityManager(819): Start proc 12821:com.redirectapps.tvkill/u0a15 for activity com.redirectapps.tvkill/.MainActivity 10-25 15:19:59.818 V/WindowManager(819): Adding window Window{eea7e8d u0 com.redirectapps.tvkill/com.redirectapps.tvkill.MainActivity} at 12 of 19 (before Window{2bc3e778 u0 Starting com.redirectapps.tvkill}) 10-25 15:19:59.943 I/ActivityManager(819): Displayed com.redirectapps.tvkill/.MainActivity: +299ms 10-25 15:20:00.142 I/Timeline(819): Timeline: Activity_windows_visible id: ActivityRecord{1ff10863 u0 com.redirectapps.tvkill/.MainActivity t2581} time:13824070 10-25 15:20:02.149 W/PackageManager(1592): Failure retrieving resources for com.redirectapps.tvkill: Resource ID #0x0 10-25 15:20:06.464 V/WindowManager(819): Adding window Window{3028f6b5 u0 Starting com.nolanlawson.logcat} at 13 of 19 (after Window{eea7e8d u0 com.redirectapps.tvkill/com.redirectapps.tvkill.MainActivity}) 10-25 15:20:24.449 I/Timeline(819): Timeline: Activity_windows_visible id: ActivityRecord{1ff10863 u0 com.redirectapps.tvkill/.MainActivity t2581} time:13848377 10-25 15:20:28.235 W/PackageManager(1592): Failure retrieving resources for com.redirectapps.tvkill: Resource ID #0x0

    compatibility issue 
    opened by DocSniper 18
  • Improvments

    Improvments

    • adjusted for new Android Studio Version
    • adjusted for Android 8
    • simpler UI
      • this removes the possibility of a brand selection for the infinite mode
      • remove transmission dialog
      • show progress bar when sending all off patterns
      • show other app content instead of dialog when device is not supported
    • refactored widget
      • widget indicates if currently sending + allows canceling
    • move all transmission work into a Service
      • the screen rotation lock is not needed anymore
    opened by ghost 17
  • Patterns are misinterpreted by TV when using the universal-mode (HTC One M8 - CM 12.1)

    Patterns are misinterpreted by TV when using the universal-mode (HTC One M8 - CM 12.1)

    Hi, I tried this app with my phone on 2 Sony TV's But neither worked. It did detect my IR blaster so it should work. Can you confirm whether it should work on my setup? It seems like I'm having the same issue as the guy running CM on his LG G2

    bug 
    opened by ghost 5
  • How to add more patterns

    How to add more patterns

    Killing TVs is good, but killing more TVs is better. I've yet stumbled upon a Grundig TV set that did not react to the shipped patterns.

    What about crowdsourcing more? If the Android IR thing can also receive IR, recording patterns from an actual remote is easy. If not, one could publish a tiny Arduino-based circuit and code to produce necessary data.

    opened by Natureshadow 5
  • maintenance

    maintenance

    • target android pie
    • java 1.8 compatibility
    • bump kotlin to 1.2.71 (1.3.0 is released; I'll let you do that :))
    • use kotlin jdk8
    • replaced some kotlin "if"s with "when"s
    • reformat code
    • fix some english
    opened by TacoTheDank 4
  • Sony Xperia Z2 Tablet isn't recognized

    Sony Xperia Z2 Tablet isn't recognized

    My Sony Xperia Z2 Tablet isn't recognized by the app. "No IR blaster" which I'm pretty sure its got. The tablet even comes with an universal remote control app.

    Device: Sony Xperia Z2 Tablet (SGP511) Android: 5.1.1 Firmware: 23.4.A.1.264

    wontfix compatibility issue 
    opened by WildS0ft 4
  • Display IR activity; debug UI for geeks

    Display IR activity; debug UI for geeks

    Would it be possible to show live/raw activity of the IR blaster doing its thing (blinking on/off) as well as a cycling queue of which pattern is currently being played and which patterns are coming up next? Or are the instructions sent off to the API asynchronously?

    feature request 
    opened by a-raccoon 4
  • GPG release signing

    GPG release signing

    How about a GPG key for this project? Also good to add this in README.md

    ## Our GPG key
    You can get public key from [here]( Link to key )
    

    EDIT:

    Also how about X.509 key to sign apk?

    enhancement 
    opened by nm17 3
  • Support for LG G2 VS980 stock rom via root

    Support for LG G2 VS980 stock rom via root

    ConsumerIrManager is not installed, as the IR transmitter isn't supposed to be accessible by third party apps. The QRemote API doesn't exist, either. The preinstalled Quick Remote app appears to be the only thing able to access the IR. Other apps can't even tell it exists. Can you still send IR signals via root? LG G2 VS980, upgraded to Lollipop OTA.

    help wanted compatibility issue 
    opened by AidanRB 3
  • "No IR blaster" even though phone does have one.

    I'm using a LG G2 Mini (D620/D620r/G2M), which does have an IR blaster.

    Is this a hardware limitation or is it down to not having a phone to debug with? Either way, let me know if there's anything I can do to help. I wouldn't know where to start personally, but I can be guided through things.

    duplicate compatibility issue 
    opened by auribirb 2
  • Feature Request: REDUCE volume, not Mute

    Feature Request: REDUCE volume, not Mute

    The 'experimental' mute button works. Every time (multiple TV models). Would it be possible to get a button to reduce the volume instead of muting it? For example, cutting volume in half? I love the app. You rock my world for making it available. Thank you! I would use it more-- every day, almost, at work where I'm plagued by TVs in my break rooms cranked up to f**king ELEVEN, with this feature.

    feature request 
    opened by jimmiles 1
  • Add screenshots on F-Droid

    Add screenshots on F-Droid

    There are currently no screenshots on this app's page in the F-Droid catalog. Without a preview, only by a text description, it is difficult to decide whether to download and install the application or not. I propose to add a few screenshots that most fully describe the appearance and functionality of the application.

    opened by Korb 0
  • Additional Patterns preference does not take effect instantly

    Additional Patterns preference does not take effect instantly

    As @ysard pointed out in #49, changes toe the Additional Patterns preference (a.k.a. " depth") take some time to take effect:

    The "additional codes" parameter is not always taken into account instantly. When starting the app, select this parameter, return to the universal remote control tab and send codes: Depending to the initial state, the patterns are neither added (number remains at 20), nor deleted (number remains at 287). It goes both ways almost unpredictably. Even if you go back in preferences and change the setting.

    Restarting the application (exiting the app from the list of active apps) seems to apply the new setting.

    Sometimes it works the first time.

    Tested on 2 phones.

    Is there an explanation for this?

    bug 
    opened by 42SK 0
  • Support for external Usb devices

    Support for external Usb devices

    I am currently working on a branch allowing the use of external USB modules (idea from #47, it could bring TVKILL to all Android devices).

    They are produced by the company that publishes the ZaZa Remote application. See app.

    • These are proprietary modules which were recently reversed here:

    https://gitlab.com/XenRE/tiqiaa-usb-ir/ https://habr.com/ru/post/494800/

    • The application is itself proprietary; I also broke my teeth during its reversing.

    • The company publishes an SDK which allows its application and others like it, to query a large database of codes. https://developer.tiqiaa.com/en/mainconsole.html This SDK is licensed for a fee.

    • Example of material (micro USB / USB-C): https://fr.aliexpress.com/item/4000211545067.html

    In short, these are fairly closed hardware and software. Encouraging the purchase of these modules may not be a good idea. However, they cost around € 3 which is very honorable and is even more valuable if they can be hijacked.


    My code and the lib integration interface correctly with TVKILL. The Java / native code binding is done with the JNA project. The integration of the native libusb library on Android is still imperfect and the example I had used JNA...

    Personally, I would have preferred to use JNI directly or even convert the C++ code into pure Java for a lighter integration into the project. However, I am running out of time for these things...

    In addition to the ethical aspects exposed above, I noticed that the sending of the codes is slowed down by approximately 6 seconds for 297 codes (for a duration of 64s instead of 58s). The Java-JNA-C ++ additional cost therefore generates ~20ms per call.


    The integration in TVKILL is finished but I'm still cleaning the lib code.

    => This PR is NOT ready and is based on my implementation of external json patterns (not currently merged).

    I plan to integrate these projects (libusb and libtiqiaa) as submodules rather than hard in this repository. But this remains open.

    What do you think of all this? :p

    opened by ysard 3
  • Custom pattern db

    Custom pattern db

    Hi, here are some fixes and updates for a new version 1.5.0 based on 1.4.0 of #49 (following #46)

    Mainly: Add an option in preferences to allow a user to load a custom JSON database with its own codes. Moreover this should avoid having to recompile the application for a pattern test.

    opened by ysard 2
  • JSON

    JSON "database" for brands and patterns - TV-B-Gone support

    Hi, here are some fixes and updates for a new version 1.4.0. Mainly:

    • Ability to load patterns from a JSON file to bypass the limit of 64kB of methods (See #46)
    • All TV-B-Gone NA/EU codes are supported (Thanks to glaukon-ariston for its conversion program)
    • Add some custom codes for Europe
    • Add codes for projectors (Epson for example), camcorders, HiFi devices (mainly via universal remotes) (Thanks to Furrtek and its modification of the TV-B-Gone firmware)
    • Translation updates

    JSON file is just a binding over Brand and Pattern classes. Example for a Brand:

    {
        "designation": "projectors EU",
        "patterns": [
          {
            "comment": "sony SX263U T=26.315789us",
            "frequency": 38000,
            "pattern": [...]
          },
        "mute": {
            "frequency": 38000,
            "pattern": [...]
        }
    }
    

    It should be ok for merging; then, once done, someone should update the Google Store version and contact the F-Droid packager for a release. I can try to ping the F-Droid part.

    opened by ysard 12
Releases(v1.3.2)
Owner
null
A simple way to handle remote image in Kotlin.

Parrot A kotlin extension to load easily remote images in your ImageView. Install Add to gradle in allprojects maven { url 'https://jitpack.io' } the

Matteo Crippa 22 Oct 3, 2022
Parking Robot based on 3D LiDAR. Keywords: Automatic Parking, SLAM, 3D Navigation, Remote Control, ROS, RRT

ELEC3875-Final-Project My undergraduate final project: Parking Robot based on 3D LiDAR. ELEC3875 / XJEL3875 Keywords: Automatic Parking, SLAM, 3D Navi

Hugo Hu 6 Oct 1, 2022
This library is a set of simple wrapper classes that are aimed to help you easily access android device information.

SysInfo Simple, single class wrapper to get device information from an android device. This library provides an easy way to access all the device info

Klejvi Kapaj 7 Dec 27, 2022
👋 A common toolkit (utils) ⚒️ built to help you further reduce Kotlin boilerplate code and improve development efficiency. Do you think 'kotlin-stdlib' or 'android-ktx' is not sweet enough? You need this! 🍭

Toolkit [ ?? Work in progress ⛏ ?? ??️ ?? ] Snapshot version: repositories { maven("https://s01.oss.sonatype.org/content/repositories/snapshots") }

凛 35 Jul 23, 2022
Minimal UI library for Android inspired by React

Anvil - reactive views for Android Anvil is a small Java library for creating reactive user interfaces. Originally inspired by React, it suits well as

null 1.4k Dec 23, 2022
Simple random ore mod for Minecraft/Fabric. Heavily inspired by Randomite.

Rand'Ore >> Download << Simple random ores for Fabric! This mod is open source and under a permissive license. As such, it can be included in any modp

null 3 Dec 31, 2021
Netflix inspired OTT Home Screen, Contains implementation in Reactjs, Kotlin React Wrapper, Jetpack Compose Web

Netflix-Clone-React Practising React by building Netflix Clone Requirements TMDB api key : Add TMDB API key to AppApi.kt Learning Resourcce Build Netf

Chetan Gupta 61 Nov 13, 2022
Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.), inspired by Badoos RIBs fork of the Uber RIBs framework

Decompose Please see the project website for documentation and APIs. Decompose is a Kotlin Multiplatform library for breaking down your code into life

Arkadii Ivanov 819 Dec 29, 2022
Simple random ore mod for Minecraft/Rift. Heavily inspired by Randomite.

Rand'Ore >> Download << Simple random ores for Rift! This mod is open source and under a permissive license. As such, it can be included in any modpac

Peakstep 1 Jul 10, 2022
WordMasterKMP - WIP Kotlin Multiplatform sample inspired by Wordle and also Word Master web sample

WordMasterKMP WIP Kotlin Multiplatform sample inspired by Wordle and also Word M

John O'Reilly 56 Oct 4, 2022
Kotlin DSL inspired by bhailang.js

Kotlin DSL inspired by bhailang.js

kaiwalya 1 Mar 22, 2022
A Kotlin multiplatform unit testing library inspired by / similar to Google Truth.

Truthish A testing API inspired by Google Truth but rewritten in Kotlin from the ground up, so it can be used in Kotlin multiplatform projects. For ex

Varabyte 70 Nov 2, 2022
Free and Open Source monster taming video game. Inspired by traditional RPGs like Pokémon, Final Fantasy and Golden Sun.

Welcome Help Wanted: I cannot finish this on my own. If you are willing to help, let me know. GuardianMonsters is a Free and Open Source monster tamin

Georg Eckert 2 Oct 17, 2022
An android application for creating a journal for subjects you studied and also you can set timer for break.

Study Journal An android application for creating a journal for subjects you studied and also you can set timer for break between two consecutive subj

Prasoon 3 Aug 10, 2022
[Android Library] Get easy access to device information super fast, real quick

DeviceInfo-Sample Simple, single class wrapper to get device information from an android device. This library provides an easy way to access all the d

Anitaa Murthy 193 Nov 20, 2022
🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device) - More Chucker than Chuck

Chucker A fork of Chuck Getting Started Features Multi-Window Configure Redact-Header️ Decode-Body Migrating Snapshots FAQ Contributing Building Ackno

Chucker Team 2.9k Dec 30, 2022
This program will read from your android application string.xml file and generate translated strings.xml files in your preferred languages using google sheet.

Localize your application content This program will read from your application string.xml file and generate translated strings.xml files in your prefe

DhiWise 4 Jul 29, 2022
On-device wake word detection powered by deep learning.

Porcupine Made in Vancouver, Canada by Picovoice Porcupine is a highly-accurate and lightweight wake word engine. It enables building always-listening

Picovoice 2.8k Dec 30, 2022
A simple and easy adapter for RecyclerView. You don't have to make adapters and view holders anymore. Slush will help you.

한국어 No more boilerplate adapters and view holders. Slush will make using RecyclerView easy and fast. The goal of this project is to make RecyclerView,

SeungHyun 26 Sep 13, 2022