Skip to content

0xMartin/IRShark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

228 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IRShark logo

IRShark

Android app for IR device control, testing codes from the Flipper IRDB, and building custom automation macros.

Version 1.2.4 Android Kotlin Jetpack Compose minSdk 26 IR parsed and raw GitHub all releases

πŸ“± About

IRShark is a practical IR remote toolbox for Android. It helps you:

  • control devices via your phone's built-in IR blaster
  • use a large profile database from Flipper IRDB
  • test compatible codes step by step (IR Finder)
  • save your own remotes and button layouts
  • build macros (automated IR command sequences)

The project is designed as a practical-first tool: fast signal sending, clear profile navigation, and a smooth workflow for real-world hardware testing.

πŸ“‘ Supported IR Protocols

NEC NECext NEC16 NEC42 Samsung Samsung32 Samsung36 RC5 RC5X RC6 SIRC12 SIRC15 SIRC20 Kaseikyo RCA Pioneer Denon JVC RAW

🐬 Flipper IR DB

IRShark uses a bundled Flipper IRDB copy in assets:

This gives the app broad brand/device coverage without manual code entry.

🧭 App Sections

Main sections in the app:

  • Universal Remote: quickly sends common commands across multiple profiles in a category
  • My Remotes: your saved remotes, custom button mappings, favorites
  • Remote DB: browse the built-in IR profile database
  • Remote Control: control screen for a specific remote
  • IR Finder: guided workflow to find working codes based on device response
  • Macro Editor: create/edit block-based command sequences

πŸ–ΌοΈ Screenshots

Home Remote My Remotes

Remote DB IR Finder Macro Editor

Remote Editor supports clear, structured editing of both whole remotes and individual IR payload codes sent by each button.

Remote Editor Button Editor

Widget Preview

IRShark also includes a home screen widget for quick access to saved IR actions without opening the full app.

IRShark widgets

πŸ› οΈ Tech Stack

  • Kotlin + Jetpack Compose
  • Material 3
  • Gradle Kotlin DSL
  • Android ConsumerIrManager for IR transmission

πŸš€ Build & Run

Requirements:

  • Android Studio (recent version with Compose support)
  • Android SDK 36
  • Minimum supported runtime: Android 8.0+ (API 26)
  • a device with an IR blaster for real transmission

Most emulators do not expose ConsumerIrManager. For real transmission testing use a physical device with an IR emitter (e.g. Xiaomi, OPPO, some Samsung models).

./gradlew :app:compileDebugKotlin   # compile check
./gradlew :app:installDebug         # build + install on connected device
./gradlew :app:assembleDebug        # build debug APK
./gradlew :app:assembleRelease      # build release APK

πŸ§ͺ Usage Notes

  • some commands may need repeats or a longer press depending on device behavior
  • real-world compatibility depends on the quality of your phone's IR emitter
  • for reliable validation, test both decode output (e.g. with Flipper) and real target-device response

🀝 Contributing

Contributions are welcome! Here is how to get started and what to keep in mind when opening a pull request.

Getting the code

git clone https://github.com/vexdev/IRShark.git
cd IRShark

Open the project root in Android Studio (File β†’ Open). Gradle syncs automatically on first open.

Branch naming

Use a short, lowercase, hyphen-separated name that describes what the branch does:

feat/rc6-protocol
fix/db-cache-regression
ui/button-editor-header
chore/bump-compose-bom
Prefix Use for
feat/ new feature or protocol support
fix/ bug fix
ui/ visual / UX change with no functional impact
chore/ dependency bumps, refactors, build changes
docs/ documentation only

Pull request guidelines

  • One concern per PR. Don't mix a bug fix with a refactor β€” open separate PRs.
  • Title format: [prefix] short description in present tense
    • βœ… [feat] Add RC6 protocol encoder
    • βœ… [fix] Restore DB cache fast-path on startup
    • ❌ Various improvements and fixes
  • Description should include:
    • What the PR does and why
    • How to test it (which screen / device / flow to exercise)
    • Screenshots or a short screen recording for UI changes
  • Keep the diff focused β€” avoid reformatting unrelated files.
  • Make sure ./gradlew :app:compileDebugKotlin passes before opening the PR.

πŸ“„ License

  • IRShark application code is licensed under the PolyForm Noncommercial License 1.0.0.
  • Commercial use of the application code is not allowed without separate permission from the author.
  • License scope applies only to the IRShark application project files.
  • The bundled Flipper IRDB dataset is licensed separately by its upstream project and is not re-licensed by this repository.

See:

About

Android app for IR device control, testing codes from the Flipper IRDB, and building custom automation macros.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors