KavishDevar

KavishDevar

0-day streak
didn't manage to do much for my airpods project today, but i tried to communicate with the find my server running on the airpods case to read battery even when the airpods are not connected for audio. And of course a few bug fixes in the UI... github.com/kavishdevar/aln
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/9006248f-b344-4909-b5ea-b6bf7fb520e8-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/185701596b4c60337e79f4b6bfabb1b654d52532acf6b962e52ee8b6756d05fd/5b12ff65-8e89-41af-aa32-54bd7f4e6153.png
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/76eebc26-663b-4ef3-b840-2d133635c235-1000029576.pnghttps://imgutil.s3.us-east-2.amazonaws.com/14dca223f13163aea7b9f36f549bd0f2d8d56e31346208e09c2e9a52d286c73c/2c85b412-6b10-4920-9e0f-35b7c809aecd.png
github emoji
slack emoji
I finally made the connections to airpods automatic on the ALN Android app! Now I don't need to worry about accidentally opening the app before connecting the airpods. I had to move around the whole service into a new one that also listens for bluetooth connections, and refactor all of my UI code, and the actual part where the l2cap socket is opened and a connection is established. Because originally the service would only run when airpods were connected. Now, the service always runs and connects to the socket itself! Along with that, I also fixed the QuickSettings tile which kept on crashing for some reason. Demo Video: youtube.com/shorts/WcjxR78_Q_Q GitHub: github.com/kavishdevar/aln Last post: hackclub.slack.com/archives/C01504DCLVD/p1732823258716669?thread_ts=1732823258.716669&cid=C01504DCLVDDCLVD
https://imgutil.s3.us-east-2.amazonaws.com/6b7d5d61f6c232cd269a3ff99f1746097f5801ac3240ed2ec213fd572c2d165f/d996da03-0b1c-483d-98f0-974b1c594bc6.png
goose-honk-technologist emoji
github emoji
slack emoji
I tried to add a overlay to show whenever airpods are connected! And it turned out to be really difficult. It doesn't want to work whenever i try to use compose instead of the layouts, so, ig i'm stuck with the old boring layoutinflators etc... :pf: it feels like my 2015 macbook air's temperature is reaching 200°C, when running slack, brave, and android studio all at once. too lazy to get up to my pc and work on it :/ original scrap: hackclub.slack.com/archives/C01504DCLVD/p1732651925430999 github: github.com/kavishdevar/aln
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/eeaf5cfd-0164-4408-9497-27d2780ad1a7-screenshot_20241129-011558_lawnchair__debug_.pnghttps://imgutil.s3.us-east-2.amazonaws.com/66c221457101c2121afad225a6b4cc0384cb8272693fe4d70f50baeeafac9412/7cc6be0c-266d-4774-bb82-9a56fc47fb19.png
macbook-air-space-gray-screen emoji
slack emoji
c emoji
github emoji
I managed to style my AirPodsLikeNormal android app a little bit better now. • The top app bar blurs the background (wth google! you're saying i can't blur background on jetpack compose directly!?) • The sliders are better themed now • and i tracked down a bug where the app would activate bluetooth audio profiles (a2dp and hsp) when they were put into case, just after deactivating them after they're taken out of ear Not much of an update, just because the blurring part took me 3 hours -_- GitHub - github.com/kavishdevar/aln Original Scrap - hackclub.slack.com/archives/C01504DCLVD/p1732651925430999
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/5b91a6ef-437f-4436-a1dd-5d2b2cab7288-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/66c221457101c2121afad225a6b4cc0384cb8272693fe4d70f50baeeafac9412/b53c6bac-193b-451d-b735-6020fbe4eb97.png
Been a long time since I actually posted something on here... I have made an app for android (and linux) that makes using AirPods on those operating systems way easier and better. Do you know how much Apple likes to restrict most of the features to their devices. Well, I removed the restriction! I reverse-engineered how Apple devices communicate with AirPods and wrote an app for linux and android. AirPods use the L2CAP Bluetooth protocol to communicate with apple devices. The linux version of this app has multiple scripts. One of them runs as a daemon to handle the connection, and others to handle UI, userspace, like pausing music, lowering volume, etc.. I did this so that I can have multiple applications which can talk to the AirPods without interrupting the other one. It is written purely in Python. Currently, I have made a tray application using PyQT5/6. It manages ear detection, conversational awareness, and gives me control over ANC. And, it shows the battery level too! As for the Android app, well I have attached a few images! Yes, I have tried to clone iOS's settings screen for AirPods. :okig: The android app was a pain to work upon. For starters, Android's bluetooth stack sent extra packets to the AirPods to check for some flow control mode. The AirPods will not respond to anything until they receive a specific handshake packet. I had to download the entire android source to test out and edit the libbluetooth_jni.so (the bluetooth stack). Then, I used my smol brain to make a few changes to the source code (and by a few changes, i mean commented a few lines)... And, it worked! Rant about Apple - Guess what- They hide their handshake packet from the PacketLogger app which allows me to view all the packets sent/received from my mac to any bluetooth device. Fortunately this was available online thanks to some other people who worked way before me. Apple even hid another packet necessary to activate Conversational Awareness and Adaptive Audio! Somehow, I got really, really, really lucky, and the packet just showed up in the PacketLogger app, shortly after which, it crashed. :confused-dino: What works on the app – • Accurate battery levels • In-Ear detection – Music is automatically paused when they're taken out of ear! Plus, AirPods are removed as an available audio output device when none of the AirPods are in ear. • Conversational Awareness – Lowers volume when you start speaking! • Set Noise Control Mode – I can change the Noise Control Mode on my AirPods Pro 2! • Renaming AirPods • And a bunch of other settings extracted from the iOS/iPadOS settings page. ◦ Namely, Toggle Conversational Awareness, Toggle Loud Sound Reduction, Set Adaptive Audio Noise level, Toggle Automatic ear detection, Off listening Mode, Tone Volume, Noise Cancellation with Single AirPod, Toggle Volume Control by swiping. • And, of course, a debug screen, which lists all packets received, and even allows you to send packets! GitHub: github.com/kavishdevar/aln upvote the issue on android issue tracker so that the bug gets fixed: issuetracker.google.com/issues/371713238 :>
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/d89740a1-d87a-490e-be84-8ab1c47934a4-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/d2fc76f3-eb75-49b2-9d58-15b6d944eced-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/c40dd5a4-128b-429a-933a-91615e602052-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/16c5d016-de35-4cc6-8fab-8a02a2bce59b-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/a574e52c-3562-4241-9c73-1f14ace53bd4-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/81d564f1558c4035313b4447aba8eec39d3fbf388f9ccb04c8b4648151d82963/8a3136cf-43d4-4b5b-9936-71e1837df994.png
I started making a openrgb client for mac in swift(ui) (cuz I use a hackintosh), just because I believe an app looks the most beautiful in an OS's native UI. I haven't really made much progress, since I started working on other projects, but here's the first 1 hour of my work GitHub: github.com/kavishdevar/OpenRGB-Swift
https://imgutil.s3.us-east-2.amazonaws.com/cb7b631e55488c5207b107da724fcb643b7a20a09c735146c5f3ce881fcb9838/ea232b40-54db-4df5-a73b-0dbcb19854c1.png
summer-of-making emoji
github emoji
swift emoji
https://scrapbook-into-the-redwoods.s3.amazonaws.com/db2b2f02-7788-47e6-bf85-9ae4b82d454a-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/d73a4e57d8fda2a944b29b424d12c02ffdf8b77f589ec99b4fdb4465c1633289/28607c7e-28de-473b-b5db-cdc16d94d645.png
github emoji
spotify emoji
summer-of-making emoji
I've made a few changes to the touchscreen dashboard that I made for my waveshare touchscreen display! • I've added support for controlling HomeAssistant entites, using their websocket API. • The device state is also updated using the websocket API. • The device controls/elements are dynamically created after the page has been loaded, instead of being hardcoded. • I've changed the UI for controlling devices a bit. • Switched from OpenWeatherMap to WeatherAPI for fetching weather. • Added colored icons for the weather widget (used in daytime). • And of course, I've refactored a lot. (basically split the ~1000 lines of code into various files) And, obviously, I broke the whole while making these changes :D (I just saw that the day/night detection isn't working, while writing this! nice.) I want to add more widgets, like reminders, simple text updates, current energy source (generator/grid), etc.. But, that's it for now! Links: GitHub
https://scrapbook-into-the-redwoods.s3.amazonaws.com/d923ac24-871b-4f55-a8b5-4af2485cf06d-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/deeb319a6c5f63fce56b49c4cb07291844e701c2d69934f7dfb0309948e0f45d/8d03a5b0-2823-4f2e-ab5f-fc25352726d2.png
github emoji
summer-of-making emoji
goose-honk-technologist emoji
I made a dashboard for my waveshare touchscreen display! It's pretty basic rn, i'm still gonna add multiple widgets, like calendar, shared reminders, music control from Spotify, and much more! Here's an image of what it looks like rn... (yes, ik it looks very apple-like, that's what i was aiming for, i love the design!) GitHub Repo: github.com/kavishdevar/dashboard
https://scrapbook-into-the-redwoods.s3.amazonaws.com/f2113927-aff7-44bc-84f1-0d26e4c6bbe1-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/c87160433ebb59faff2433a263dc68743a644ad2d963e5ec179ee4cd8410d409/3c102a6e-95a8-4e4a-87f3-405d4001129e.png
music emoji
appleinc emoji
summer-of-making emoji
github emoji
spotify emoji
I re-wrote my Hamming Code visualizer that i had initially written in AngularJS and hosted on vercel. But it was totally unnecessary, so i wrote it again in plain javascript and html, with some css, and it's currently hosted on gh-pages. it just took me 30 minutes, i don't even know if this will count :] Source Code Published website
https://imgutil.s3.us-east-2.amazonaws.com/8a8833f806249b291b5ff81365b6035767cfa26b9efe24cff15ecbf806be15d8/471e6955-430e-4a6c-8749-02b9f92e6489.png
I have also worked on adding temporary (one-time) connections to my openrgb client for android... github.com/kavishdevar/OpenRGB-Android. I had already shared screenshots of it earlier, but forgot to link one session specific to this...
https://imgutil.s3.us-east-2.amazonaws.com/9607bb741b7c47facdff29a3e9c5e6be8169bd22de9ffc48f9ed0e3a023a9e67/ab9ee6a7-c556-42c2-8a0a-10310c28ce9a.png
summer-of-making emoji
github emoji
I created a quick vector calculator using plain HTML and CSS. It can add, subtract, find out dot and cross products! I will definitely be working on it further, and may calculate all the results as the input values are updated... I am also planning on adding a graph for visualization. Check it out at my website! And you can find the source code on Github.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/75c066d7-32c3-45f2-a22c-331f4859afb3-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/d73a4e57d8fda2a944b29b424d12c02ffdf8b77f589ec99b4fdb4465c1633289/fc41f773-9287-42df-8711-6e2ee40dd50e.png
Apparently I forgot to select one of the sessions for this scrap, so posting it again... I updated the hammimg code ui and refactored the code slightly. github.com/kavishdevar/Angular-Playground/tree/main/hammingcode p.s. I couldn't deploy it on vercel, so anyone who wants to try it out will have to run it locally..
https://imgutil.s3.us-east-2.amazonaws.com/b8cd87c48967ff2af1659d6c940829934231792372c7e0e77052de29af805187/2fbdcf28-f8cf-4ace-8ce4-998528a95155.png
goose-honk-technologist emoji
github emoji
summer-of-making emoji
I made a hamming code visualizer! I made it in angularjs unfortunately, i couldn't get it setup on vercel... but here are a few screenshots... it's also uploaded on github: github.com/kavishdevar/Angular-Playground/tree/main/hammingcode for anyone who wants to try it out(and yes i picked up the same example as the 3b1b vid :D)
https://scrapbook-into-the-redwoods.s3.amazonaws.com/0e2a4644-8402-4f24-8674-8cd3bdb6ba37-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/f1ba1cbf-8e75-42e6-8652-042be7a5897e-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/0b2c0b83-918c-4c40-a67e-22580364fe01-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/fb2182b3-afdc-436a-a30a-310ce695bfbf-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/39291a9e-25af-4292-9e1d-cbdb36d452a8-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/b8cd87c48967ff2af1659d6c940829934231792372c7e0e77052de29af805187/781df177-2942-41c4-b1f9-34db210b780b.png
goose-honk-technologist emoji
vercel emoji
summer-of-making emoji
github emoji
https://scrapbook-into-the-redwoods.s3.amazonaws.com/48c015d9-d670-4a60-afe2-0975cbfea45c-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/0eed3894ebb7e62db66f6a2106341d2b05f00396f51745f2d2dce2af03265e11/d43826fe-286b-4e22-a4c6-84da67f66786.png
I am reverse engineering my school's web portal! Turns out its easy! I have made the login page which posts the credentials and fetches the access token. I have also figured out a way to get the ebooks and homeworks from the website/portal github.com/kavishdevar/Angular-Playground Funny thing is that I didn't actually want to reverse engineer it, but instead learn angular. Guess I do both now..
https://imgutil.s3.us-east-2.amazonaws.com/86ae2182cf6de3debd37dad66fb57bf5ae34346f8ab3e82587df2bf95b1e2207/82009865-eff1-4b48-97bb-3b0b54fef84b.png
https://imgutil.s3.us-east-2.amazonaws.com/9607bb741b7c47facdff29a3e9c5e6be8169bd22de9ffc48f9ed0e3a023a9e67/a601500b-f370-4aa7-8472-8073aafc1640.png
github emoji
summer-of-making emoji
I built an app to control PC lighting from my phone using OpenRGB. It is functional, but not pretty, still working on the UI. I've also added a check if the device is able to connect to the computer, and provide the neccessary information/actions to the user if the connection fails...
https://scrapbook-into-the-redwoods.s3.amazonaws.com/9cb26830-5c3c-454a-b81f-41de276804fd-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/b780ed30-c4e2-4f0c-8c29-4d07dcab67e4-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/5a2eb609-96f0-4b18-8806-cc5cf45de23b-image.png