myzel394 / alibi Goto Github PK
View Code? Open in Web Editor NEWUse your phone as a dashcam and save the last 30 minutes when you need them.
License: GNU General Public License v3.0
Use your phone as a dashcam and save the last 30 minutes when you need them.
License: GNU General Public License v3.0
Is there the possibility to use the opus audio codec? It is fully open source.
Alibi crashes after the Batch duration has expired.
--------- beginning of main
[ 08-16 16:18:15.329 6306: 6306 E/.myzel394.alibi ]
Not starting debugger since process cannot load the jdwp agent.
--------- beginning of crash
[ 08-16 16:19:18.999 6306: 6306 E/AndroidRuntime ]
FATAL EXCEPTION: main
Process: app.myzel394.alibi, PID: 6306
java.lang.IllegalStateException
at android.media.MediaRecorder.getMaxAmplitude(Native Method)
at d3.b.c(SourceFile:19)
at d3.a.run(Unknown Source:12)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7918)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Samsung Galaxy a20e
LineageOS 20 (Android 13)
i see a lot of potential for this to essentially be a pocket security camera or personal evidence collector, and as such id like to have it running at low quality at all times in the background automatically, caching the last X amount of time with the option for export. this is basically how it works now, which is wonderful, just missing the auto-start. thanks for making this app !
Hi,
I often get app not responding errors when I return to Alibi after leaving it running for a while. Usually, the app screen goes black then I see the popup and no audio appears to be recorded. If I reopen the app, it starts recording all over again.
Could you please look into this, or advise me on solutions/workarounds?
Not full explanation, just "save" and "pausing" buttons in notifications' bar, without explicit explanations that lead to record an audio track. No hints, just neutral buttons and drawer.
Just leaving this here as feedback ๐
I've translated Alibi to German
I couldn't find any option to switch the microphone/audio source from the inbuilt microphone on my phone to the one in my wireless earphone.
Device: Realme Narzo 30A
OS: Android 11(realme ui)
Earphone used: Truke BTG Beta
This would be a really great feature as it would provide clearer audio when for example the phone is in a pocket and is walking? Or when only the earphones are connected and the phone is in a bag or something.
Can you consider adding this as a feature?
I have a quick idea for a new Alibi feature:
Upon device boot, a notification will appear reminding the user that Alibi's recording has been interrupted, and offering a quick direct button to begin/resume recording.
Here is my idea implemented using MacroDroid - my work is a little sloppy, but hopefully it gets the idea across.
I'd also love if there were toggles in the settings to switch between three modes:
No Reminder - Does not prompt the user to restart Alibi (the current behavior).
Reminder - Reminds the user via push notification that Alibi has been interrupted.
Automatic - Automatically restarted Alibi's recording upon boot, eliminating the need for any input.
At the moment hitting save means I'm saving a predetermined amount of data on my phone every time, regardless of if I only need the last minute in an instance. It would be really useful I think to be able to choose how far back to save out of the recording.
I think this could also pair well with the batch duration feature already implemented, as then you could simply choose how many/which files to save.
I hope you consider this as I would find this feature very useful.
To easily import/export my settings to other devices.
FATAL EXCEPTION: DefaultDispatcher-worker-2
Process: app.myzel394.alibi, PID: 26266
java.lang.IllegalArgumentException: app.myzel394.alibi: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
at android.app.PendingIntent.getActivity(PendingIntent.java:444)
at android.app.PendingIntent.getActivity(PendingIntent.java:408)
at b3.e.h(SourceFile:229)
at b3.e.k0(SourceFile:13)
at kotlinx.coroutines.flow.m.h(Unknown Source:43)
at kotlinx.coroutines.flow.m.f0(SourceFile:18)
at d5.j.h(SourceFile:35)
at d5.j.k0(SourceFile:13)
at a5.a.e0(SourceFile:28)
at a5.y.a1(SourceFile:47)
at a5.y.b1(Unknown Source:11)
at d5.l.e(Unknown Source:105)
at d5.u.f0(SourceFile:5)
at d5.t.j(SourceFile:135)
at d5.t.e(Unknown Source:0)
at n2.t.e(SourceFile:177)
at kotlinx.coroutines.flow.l.e(Unknown Source:125)
at kotlinx.coroutines.flow.l0.a(SourceFile:172)
at n2.v.h(SourceFile:81)
at n2.v.k0(SourceFile:13)
at kotlinx.coroutines.flow.g.a(SourceFile:91)
at d5.m.h(Unknown Source:46)
at d5.m.k0(SourceFile:13)
at o4.a.g1(SourceFile:5)
at a5.y.g0(Unknown Source:9)
at d5.n.g(Unknown Source:6)
at d5.e.h(SourceFile:45)
at j4.a.n(Unknown Source:8)
at a5.e0.run(Unknown Source:104)
at kotlinx.coroutines.internal.e.run(Unknown Source:11)
at kotlinx.coroutines.scheduling.i.run(Unknown Source:2)
at kotlinx.coroutines.scheduling.a.run(SourceFile:77)
Suppressed: a5.c0: [m1{Cancelling}@6322c45, Dispatchers.IO]
Alibi crashes when i try to set the sampling rate above 9999999999 insted of showing that the number is to big. If i try to empty the input field completly, Alibi also crashes.
FATAL EXCEPTION: main Process: app.myzel394.alibi, PID: 6324 java.lang.NullPointerException at e4.b.a(SourceFile:66) at e4.b.t0(SourceFile:16) at a5.e.a(SourceFile:8) at b5.c.h(SourceFile:36) at l5.a.m(SourceFile:1) at c6.e0.run(SourceFile:1) at androidx.compose.ui.platform.s0.f(SourceFile:23) at androidx.compose.ui.platform.r0.run(SourceFile:3) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7929) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:854) Suppressed: c6.c0: [androidx.compose.ui.platform.r1@81560cd, h0.e@26dd82, m1{Cancelling}@c961c93, s0@55124d0]
It would bei nice top have the Option to record with multiple Cameras at the Same time and select witch backfacing camera i want to use. For example to allow recording with the ultrawide camera.
Normally I use this setup: 90 minutes of coverage and 10-minute batches.
But if I'm going to a job interview, it's better to have 60-minute batches to avoid having too many files unbundled.
Finally, when I get home, I'll set up the profile with the 10-minute batches. Again.
Switching between profiles is instant and this will make the app more usable and useful.
Hello, I'm having a problem where the file picker doesn't appear after finishing a recording/ clicking on "save recording".
I have looked at the android logcat and saw no errors. I also tried reinstalling & resetting the app and it still doesn't work.
Here is a screencap of what happened:
Is this the file picker (DocumentUI) or the app at fault here?
Regards,
Notunderscore
I would like an option to not merge recordings. I do need to monitor and record a long time frame but i only need sections of it not the whole 3 hours.
Not merging the entire recording but keeping the batches in sections (preferably with a little overlapping) would be the best option for me.
Can we all use https://crowdin.com/ to translate Alibi ? Would be easier.
I still had no idea how to make the most of this app.
Then I realized that at night it's totally useless, so I can rule out using it at night.
There are times during the day when I need "coverage" and other times when I am alone and do not need any.
Limiting the use of Alibi is also useful to save battery and preserve the health of the flash drive.
In scheduling mode I thought that the batches would save themselves, and that at a later time I would discard them as irrelevant.
I think that's a better approach than hitting save. Maybe I forget or I'm in an interview and I can't handle the phone.
It is extremely important that I can decide afterwards what is good and what is not.
It would be useful having an autostart for certain conditions:
โข wifi: lose or gain a wifi local network
โข mic: when environment sound overcomes X db then start recording for Y time
โข gps: when I leave or gain a certain geographical aerea
And so on. Have you other triggers idea?
My proposal is to add a small note to the start up screen, something along the lines of: "some bodies might regulate how or when you are allowed to record a conversation, please check in with your local law", since the app implies that it should be used without anyones knowledge, to provide an "alibi".
In some countries (eg. germany) it is illegal to record a conversation without consent, therefore a note like the one above would be nice to have.
I noticed you put up a message to "use the software at the users own risk" but I think this is not a really conclusive statement, since this could also apply to data security and the hardware lifespan.
Is the output file (.ogg or what you want) fully cleared by metadata, phone model, microphone type, etc that can identify the record maker?
I didn't use Alibi yet and I am not a developer.
Will continuous recording lead to a shorter longevity of the storage memory?
Might you force your app to always record on different, random sectors? That would help it not write the same tracks over and avoiding to burn them out (hardware side).
A useful feature would be a quick settings button to save recording. This would likely be faster than opening the app, and could be done on the lock screen without unlocking the device. If holding the button opened the app, you could remove it from your home screen and app drawer, essentially "hiding" it in the quick settings.
Is it a minimum time interval between two records?
I would like to have the last four hours of recording available to me at all times, divided into 15 minutes of recording for each session.
How do I set up the app?
Examples that I've found are THREE_GPP
format/Auto
encoder outputting .3gp.aac
files and MPEG_2_TS
format/Auto encoder outputting .ts.aac
files. I presume that this is unintentional and that they should be only .3gp
and .ts
files.
There might be more combinations when not using the Auto
encoder option.
Using Tasker or Macrodroid to start, stop or save a recording session could be incredibly useful
I have translated Alibi into Chinese, and here is the relevant file.
Alibi.zip
First congrats to your listing at F-Droid! At this point apps are usually removed from my repo โ but your Readme still links to it. Will you replace that badge & link by F-Droid's?
Please add direct cryptocurrency addresses within the app. Easy tap and donate without leaving the app: I don't want going around to websites. I don't want support FIAT economy.
TRX, AVAX, ETH, LTC, BTC, XEC, BNB, SOL, BCH, ALGO, XTZ, DASH, FTM, XMR addresses available for donations (addresses have to be copyable).
Currently, short_description.txt
for de-de
has 98 chars. The specs only allow for 80 chars, so all beyond that is being cut off. Could you please fix that (and maybe limit the field length with Crowdin)? Thanks!
Try to use signals to send the information instead of using callbacks approach
Move cache -> internal files dir
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.