Giter Site home page Giter Site logo

flipperdevices / flipper-android-app Goto Github PK

View Code? Open in Web Editor NEW
1.3K 83.0 152.0 20.66 MB

Android Mobile app to rule all Flipper's family

Home Page: https://forum.flipperzero.one/c/mobile/14

License: MIT License

Kotlin 99.57% FreeMarker 0.34% Fluent 0.01% CMake 0.06% C++ 0.04%
android flipperzero hacktoberfest flipper

flipper-android-app's Introduction

Flipper Android App Flipper App Status Discord

Mobile app to rule all Flipper's family

dolphin-dark dolphin-light

Download

Get it on Google Play Get it on F-Droid

Or get the app from the Releases Section.

Module arch

├── instances
│   ├── app
├── components
│   ├── core
│   ├── bridge
│   ├── feature1
│   ├── feature2
  • app - Main application module with UI
  • components/core - Core library with deps and utils
  • components/bridge - Communication between android and Flipper
  • components/* - Features modules, which connect to root application

flipper-android-app's People

Contributors

abdhilahirwabwire avatar astrrra avatar bober182 avatar coletz avatar danijcom avatar dependabot[bot] avatar drunkbatya avatar dsvoronin avatar ilyagulya avatar kavitate avatar lionzxy avatar makeevrserg avatar matkovivan avatar nikatar avatar poussinou avatar programistich avatar renovate[bot] avatar rougsig avatar sharapych avatar technically-possible avatar thebino avatar timur164 avatar zhovner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flipper-android-app's Issues

Sync crashes

Describe the bug
A clear and concise description of what the bug is.

Samsung S20+
Android 12

Syncing worked the first time on my device. Now syncing just causes the app the crash. Tried clearing data and cache. Remove and reinstall does not change issue. File manager and streaming work fine.

To Reproduce
Steps to reproduce the behavior:

  1. Switch on...
  2. Press button '....'
  3. Wait for the moon phase
  4. It burns

Expected behavior
A clear and concise description of what you expected to happen.

Logs
Add debug logs

Target
Specify the target

Additional context
Add any other context about the problem here.

[Regression] Upgrade on final release do not show up on v1.3.0.689

Describe the bug
Latest final release 0.73.1 doesn't show up for upgrade

To Reproduce
Steps to reproduce the behavior:

  1. Switch on BT
  2. Go on app
  3. Wait for the sync to finish
  4. It shows that 0.72.1 is the latest final release even if the latest tagged release is 0.73.1 on the Flipper Zéro firmware repository.

Expected behavior
An update should be shown to be made when a new final release tag is out on the official FP zero FW repository.

Logs
Add debug logs

Target
Specify the target

Additional context
The final release tags went from v0.72.1 to v0.73.1 and seems to have skipped v0.73.0.

The v1.2.1 of the app does work properly, and finds the update.

Implement library for communication with Flipper

We need a design doc for this library (libraries?).

Main requirements:

  • Should be served as a separate library (libraries?)
  • Should keep the connection to the device and notify about the connection status.
  • Should be implemented using plain listeners (no rxjava/coroutines)
  • Should provide Bluetooth device connection flow. (including UI)
  • Should provide high-level API to communicate with Flipper core (in future)
  • Should provide high-level API to communicate with Flipper plugins (in future)
  • Should provide rxjava/coroutines adapters

Android app no longer detects Flipper

Describe the bug
Android app no longer detects Flipper on CFW with a name change for device so it doesn't transmit "Flipper" in the name.

To Reproduce
Steps to reproduce the behavior:

  1. Install Custom FW with line changes compiled in furi_hal_version.c so instead of Flipper it says anything else.
  2. Try to connect with Android app via bluetooth

Expected behavior
It connecting, like IOS app can. Possibly identifying other flippers with mac?

Recursive file indexing in the "Archive" tab

In the archive tab in the app, there is no way to list files that are sorted in folders, only files directly in the subfolders are listed.

Describe the solution you'd like
A folder like "browser" or all files indexed recursively and listed as a single list would be handy to have.

WearRequestListenerService closes too quickly

Describe the bug
Now sometimes we don't stop emulation automatically because the service dies early. We need to create a foreground service and show a notification all the time we emulate the key.

To Reproduce

  • Start the SubGhz key emulation from the clock
  • One-tap emulation is endless

Expected behavior

  • Fixed progress bar for the subghz button
  • Automatic stop emulation

Mifare Classic .bin support or converter to .nfc

Description of the feature you're suggesting.

Hi, it will be great to add support card read, .bin file a by application Mifare Classic on Android.

Or add to mobile app feature to convert that files ... like mfkey23 🙂

Anything else?

No response

Hide or minimize update button when up to date firmware

What are you want to add or change

Update button should not be so important when flipper is up to date.

What questions do you have

Users should be allowed to re-update or update from a custom firmware/unknown version
Users should have a custom firmware install button

Launcher shortcuts for keys

Instead of opening the app & navigating to the key every time, it would be nice to have a shortcut that sends you directly to the key so you can emulate it with only one extra click.

crash on start of app

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Start app, pair with flipper or start app with already paired flipper
  2. Crash

Expected behavior
A clear and concise description of what you expected to happen.
App works

Logs
eb965b42f14d4efd8382db45f3f71789 - from app
from serial:

145682 [I][BtGap] Connection parameters: Connection Interval: 39 (48 ms), Slave                                                                                                                                Latency: 0, Supervision Timeout: 500
145685 [W][BtGap] Unsupported connection interval. Request connection parameters                                                                                                                                update
146128 [I][BtGap] Connection parameters event complete
146130 [I][BtGap] Connection parameters: Connection Interval: 30 (37 ms), Slave                                                                                                                                Latency: 0, Supervision Timeout: 500
146309 [I][BtGap] Pairing complete
146312 [I][BtSrv] Open RPC connection
146609 [I][BtGap] Connection parameters event complete
146611 [I][BtGap] Connection parameters: Connection Interval: 6 (7 ms), Slave La                                                                                                                               tency: 0, Supervision Timeout: 500
146613 [W][BtGap] Unsupported connection interval. Request connection parameters                                                                                                                                update
146795 [I][BtGap] Connection parameters event complete
146798 [I][BtGap] Connection parameters: Connection Interval: 30 (37 ms), Slave                                                                                                                                Latency: 0, Supervision Timeout: 500
147458 [I][BtGap] Rx MTU size: 414
147758 [I][BtGap] Connection parameters event complete
147761 [I][BtGap] Connection parameters: Connection Interval: 12 (15 ms), Slave                                                                                                                                Latency: 0, Supervision Timeout: 500
147763 [W][BtGap] Unsupported connection interval. Request connection parameters                                                                                                                                update
147923 [I][BtGap] Connection parameters event complete
147926 [I][BtGap] Connection parameters: Connection Interval: 30 (37 ms), Slave                                                                                                                                Latency: 0, Supervision Timeout: 500
153559 [I][BtGap] Disconnect from client. Reason: 13
153563 [I][BtSrv] Close RPC connection

Target
Specify the target
0.68.1-rc, hardware_ver: 12 (flipper)
1.2.1.559 (app)

Additional context
Add any other context about the problem here.

Syncing wipes/edits favorites.txt

Describe the bug

If files on the flipper are sorted into subfolders beyond the root application folder (example: /ext/subghz/sub_folder/file.sub) and are also in favorites.txt, are removed from favorites.txt after syncing with the android app.

Files that are not in subfolders (example: /ext/subghz/file.sub) act as expected and remain in favorites.txt

Possibly related to issue #284

To Reproduce

  1. Place a file on the flipper in a subfolder such as /ext/nfc/my_folder/file.nfc
  2. On flipper, pin the file to your favorites
  3. Connect flipper to android app via bluetooth
  4. Sync device and app
  5. Check favorites.txt

Expected behavior
Pinned/Favorite files should remain in favorites.txt after syncing with android app

Android SubGhz widget tx loop instead of one shot tx

The problem is that if i send a subghz via widget it keeps sending instead of a "one shot" transmission

To Reproduce
Put a subghz widget on the phone desktop and try to send it.

Expected behavior
One shot transmission

Target
Android

Folders in the Android app

I have a lot of sub-ghz files sorted in folders but the android app show only the sub files in the subghz folder.

Is it possible to implement folders structure in the app?

[Security] Potential Secret Leak

It has been noticed that while using r0adkll/sign-android-release@v1 your keyPassword 123456 is present in plaintext. Please ensure that secrets are encrypted or not passed as plain text in github workflows.

Synchronisation does not work

Describe the bug
The Synchronisation feature doesn't work on Flipper app version 1.1.1 on Android 10 (Motorola Moto g7) and Flipper firmware version Release 0.59.1.

To Reproduce
Steps to reproduce the behavior:

  1. Enable Bluetooth on the Phone and the Flipper
  2. Open the Flipper app
  3. Pair the Flipper and app if necessary
  4. Wait for the phone to recognise the Flipper

Expected behavior
Synchronisation would begin and complete.

Actual behaviour
Synchronisation is stuck on 0% and the app only displays Firmware Version and Build Date.

Logs
Here are some logs from the Flipper itself (retrieved by running the log command and then attempting to synchronise):

1563764 [I][BtGap]: Pairing complete
1563768 [I][BtSrv]: Open RPC connection
1564753 [I][BtGap]: Rx MTU size: 414
1565112 [I][BtGap]: Connection parameters event complete
1565113 [I][BtGap]: Connection parameters: Connection Interval: 12 (15 ms), Slave Latency: 0, Supervision Timeout: 500
1565115 [W][BtGap]: Unsupported connection interval. Request connection parameters update
1565418 [I][BtGap]: Connection parameters event complete
1565419 [I][BtGap]: Connection parameters: Connection Interval: 36 (45 ms), Slave Latency: 0, Supervision Timeout: 500

Target
Not sure what this means

Additional context
I've tried a switching to the Release Candidate branch and deleting some NFC/Amiibo files on the SD card that were noted to potentially cause issues, but no luck.

Mifare tag UID not editable

What are you want to add or change

I want edit these parts

What questions do you have

These parts are not editable
image

Copy to clip board for synced data

In the Archive I can view some of the captures I've synced to my phone but I cannot copy the data to my Android clipboard. If the data/keys fields in the Archive objects were selectable/copyable it would make it easier to put them into a hex/decimal converter or otherwise work with the data.

Dark theme incorrect colors

In Dark Theme active tab text color is hard to see

Describe the bug
device: Xiaomi mi8, miui 12.0.3, android: 10
System theme: Dark
flipper theme: System

Additional content
image

Use cross-platform tools?

There's currently a number of tools allowing building apps for different platforms from one code base. I personally have a good experience with

  • React Native
  • Ionic

From both of these frameworks you can interface peripherals (e.g BLE) without a problem, unless you're doing something very non-standard

Flipper zero soft bricks when screen streaming

Describe the bug
When streaming the screen and using the remote buttons on the phone if you scroll too fast or switch between menus too fast the flipper will freeze and you have to reset by holding left and back.

To Reproduce
Steps to reproduce the behavior:

  1. Start streaming flipper screen
  2. Jump quickly between menus or scroll quickly.

Additional context
Issue could be on flipper firmware end. I have latest official firmware. Seems to vary in how long it takes to crash. I haven't attempted going slower with scrolling to see if it's about the speed that I'm scrolling through the flipper or happens no matter what speed I control flipper.

Opening .sub files inside a folder

I know I have posted about this multiple times, but I need a reply.

Here is what I need, and if you could, please help me

I cannot open a .sub file from my android app if the file is inside a folder. I have them inside a folder to organize them to find them easier. The problem is, I cannot open them while they are inside a folder to broadcast to my flipper from my device. What I am trying to say is please make it possible to open them while they are in a folder, it would make things much easier.

Thank you
Mario-head (1).txt

updater: Local firmware build detected as "Release", unlike qFlipper

Describe the bug
The Flipper Android app assumes FirmwareChannel.RELEASE if it is not able to parse the firmware version and incorrectly offers to install an update. This contrasts with qFlipper, which assumes CUSTOM if it fails to parse the version.

To Reproduce
Steps to reproduce the behavior:

  1. Build the Flipper firmware locally in a branch not named dev, rc, or release
  2. Install your local firmware build
  3. Connect to the Flipper Android app
  4. Observe the Firmware Version and Firmware Update sections

Expected behavior
The Flipper Android app correctly detects the use of a local firmware build and does not attempt to offer an update.

However, the Flipper Android app should still provide a way to change the Update Channel back to Release, Release Candidate, or Development to provide a way to migrate away from a local firmware build.

Logs
Unsure of which logs would be relevant - a full adb logcat…?

Target
Pixel 4 XL running Android 12 (SP2A.220505.002)

Additional context
The Flipper Android app builds the firmware version from a string in buildFirmwareVersionFromString() from FirmwareVersionBuildHelper.kt. This falls through to FirmwareChannel.RELEASE.

qFlipper builds the firmware version from a string in branchToChannelName() from deviceinfohelper.cpp. This falls through to CUSTOM.

To fix this in the Android app in a way that allows reverting to a release/RC/dev build, this may involve adding a new firmware channel that can't be manually selected, but the app selects it when it can't parse the version.

Кнопка "update" горит зелёным всегда

Описание бага
Кнопка "update" горит зелёным даже в том случае, когда последняя версия прошивки уже установлена

Как повторить

  1. Установить последнюю версию прошивки на флиппер (канал release)
  2. Очистить все данные мобильного приложения
  3. Очистить все данные флиппера через qFlipper
  4. Подключить флиппер к приложению по bluetooth
  5. Кнопка будет гореть зелёным

Как "пофиксить"

  1. Начать обновление с мобильного приложения
  2. На 1-2% прервать его через кнопку "cancel"
  3. Кнопка будет гореть серым

Ожидаемое поведение
Кнопка горит серым, когда флиппер итак обновлен до последней версии прошивки

Телефон
Android 10, Doogee S86

Samsung "my files" file manager bug

Using the Samsung's my files I am unable to upload any file to flipper

Expected behavior
Flipper shows up in open with list.
For supported files types

Target
1.0

Additional context
Works correctly with any third party file manager such as FX or a deep link file manager that calls the native android "files" file manager.

components/deeplink/impl/src/main/AndroidManifest.xml

Flipper Zero App resets favorites when synced

Describe the bug.

Every application or file in your favorites tab the flipper zero app doesn't recognize in it's archive menu (eg. any app inside a folder) will get removed from the favorites tab when you sync it with the flipper zero.

Reproduction

  1. "Pin" something through the quick menu (press down on screen saver) the Flipper app doesn't recognize, such as an IR remote you have in a folder.
  2. Turn on Flipper app and let it synchronize (you may have to press "synchronize" yourself)
  3. Watch your favorited item disappear.

Target

No response

Logs

No response

Anything else?

No response

Move file to folder?

For the moment, if you want to move a file to a folder, you must download it/them and re-upload to the correct one.

Is there a way to directly move files by long pressing per exemple or anything else ?

Thx.

Install firmware from Flipper

Is your feature request related to a problem? Please describe.
It seems like the Android app can't handle custom firmware files. This effectively means that one can't flash a custom firmware for the Flipper Zero using their Android device.

Describe the solution you'd like
User is able to download a firmware from the internet (outside the app), click on "Open with..." / "Share" and select tbe Flipper app.

The Flipper all should then prompt the installation of the firmware.

Describe alternatives you've considered
N/A

Additional context

Procedure 1

Steps to reproduce:

  1. Open a File Manager (in this case, Material Files from F-Droid)
  2. Navigate to the directiry that contains the ".tgz"/ ".zip" of the firmware.
  3. Select the firmware file three dots on the right
  4. Click "Open With"
  5. Note that the Flipper app doesn't show there
  6. Select "Open As"
  7. Select the "Other" option
  8. Select the "Flipper" app

Result:
The app opens for a split second, then closes jtself automatically.

Procedure 2

Steps to reproduce:

  1. Open the file manager
  2. Navigate to the directory contained the extracted firmware (.tgz, .zip)
  3. Click on the update manifest update.fuf
  4. Select the Flipper app

Result:

The following screen appears, but nothing can be done:
Screenshot_2022-09-18-10-09-51-61_7588ec92b699bdd924e4cc049cbf9f1b

Update AGP to last released version

Describe you problem here

Hi. In this Pull Request, I tried to update the Android Gradle Plugin in the project (here), but it just didn't work that way. I would be happy if someone could update the Gradle Plugin. That way we can keep the project up to date.

Home screen

Implement like this

ezgif-6-833f74c002bb

All view get from custom module

Wrong date clock

Describe the bug.

When linked/synced to the PC APP, date clock is ok.
When linked/synced to the Android APP, date clock is wrong.
IMG_20220808_012420

Reproduction

Switch on your flipper zero
Sync the Android APP via Bluetooth
Check your date/year under Clock App !
(day/month are good)

Target

Android App.

Logs

No response

Anything else?

No response

Flipper App tells me "Unsupported Firmware" in spite of me being on release channel.

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Connect Flipper Zero to App
  2. On first Tap, recieve notice to update Flipper Zero on PC
  3. Plug Flipper Zero into qFlipper, which shows Flipper Zero to be on the latest official Released version

Environment
Flipper Zero: firmware 0.53.0
App Version: 1.0 (Google Playstore Version)
Phone
Samsung Note 20 Ultra (Android 12)
Patch version March 1, 2022

[Security] Potential Secret Leak

It has been noticed that while using r0adkll/sign-android-release@v1 your keyStorePassword 123456 is present in plaintext. Please ensure that secrets are encrypted or not passed as plain text in github workflows.

Archive tab

Problem:

Can't see my files in the archive tab because I put them in subfolders.

Can't play files from archive tab, only open. so I still need the flipper to play a file.

Solution:

Index subfolders, so that we can navigatie through subfolders using the app.

Make it able to play files using the app, not just opening.
example: playing a subfile using the app so you don't have to touch the flipper.

Allow Sending INFRARED signals

Is your feature request related to a problem? Please describe.
why is it possible to send subghz signal, emulate NFC, RFID, iButton, but not infrared?

Describe the solution you'd like
Allow sending Infrared signals from App -> Archive -> Infrared signal in same way as i would send a subghz signal, or any other supported signal

Also it is possible to send IR signals with ios app but not android....

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
I asked this in Telegram group multiple times, but got a response of "maybeee, soon, why is it needed?"

Can't connect to Flipper

  • Platform: Samsung GS9 with Android 10, app version 1.2.0.
  • Flipper version 0.65.2 (latest release, tested with 0.64.3)

Symptoms:
After pairing with the device, an android popup shows can't find version gatt service and then application states that firmware is outdated and not supported.
Tried setting "Ignored unsupported firmware version" but it only seems worse.
Internets do not seem to know much about that "gatt service", don't really know where to look :(

Thanks for your help :)

Размножение диалоговых окон Bluetooth

Если нажать кнопку "отклонить" или "назад" в диалоговом окне включения Bluetooth, окно пропадает и появляется 2 окна. Потом 3, 4, 5 и т.д. по нарастающей. Выйти из приложения по двойному клику кнопки "назад" в таком случае не удаётся.

Шаги по воспроизведению:

  1. Зайти в приложение
  2. Нажать на обе синие кнопки (принять соглашение и анбординг)
  3. Нажать "отклонить" или "назад" в диалоговом окне включения Bluetooth

Ожидаемое поведение:
При нажатии кнопки "отклонить" пользователя возвращают на анбординг с пояснительной запиской по типу "без Bluetooth приложение работать не будет", либо всплывает уведомление с таким же содержанием, но уже без возвращения на анбординг.

Прикрепляю запись экрана с демонстрацией бага

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.