Unofficial Google Docs Client
- 10 Devlogs
- 24 Total hours
A avalonia application that is a local Google docs client that uses browsers cookie files to authenticate.
A avalonia application that is a local Google docs client that uses browsers cookie files to authenticate.
I have been working on chromium based browser support.
Chrome & other modern Chromium based browsers use App-Bound-Encryption to encrypt their cookies. This is the reason why this unofficial Google Docs Client is currently unable to fully decrypt cookies from modern chromium based browsers out of the box on Windows. Chromium encrypts its cookies using the Windows DDAPI(Figure 2). Chromium used to decrypt cookies using the methods implemented in this repository before Chromium 127, this repository should decrypt cookies from chromium versions 127 and below(Figure 1).
ABE is in full effect, we would need SYSTEM perms, and try to impersonate Chrome. I plan to integrate xaitax/Chrome-App-Bound-Encryption-Decryption but this likely will not work forever, it is an arms race with Google and xaitax. Currently it works but likely Google with shut it down eventually.
ABE is only used on Windows, on Linux Chromium uses the system Keychain over DBUS. (Gnome or KWallet) If these are unavailable it uses a completely exposed key in a file(basic encyption). This is very surpassable, it just needs implementation.
Dynamic Paths are now enabled by default! Currently only Firefox works reliably from my limited testing. Zen(Fork of Firefox) works like 1/2 the time, and chromium based browsers get found but don’t work properly. The UI is kind of broken but it works for now(Working on it). Beta 3 is now released on Github with builds from the new Package&Release Script mentioned in the previous devlog.
Today I worked on yet more build scripts, now .zip files can be generated for every supported platform and placed in a folder with a single command! I still need to update the installer to fetch the corresponding .zip for the OS and Arch automatically. I am planning on doing my first ship once the installer & associated scripts are in a finished state where you can just paste one command into the terminal (for Win/Linux) and it opens the installer application which walks through the installation. After the installation the application should be able to be launched from the Start Menu/App Launcher along with an icon. Also the Dynamic Browser Paths(automatically finding the cookie directory of the user’s installed browser) should be stable, or if not then Internal Mode(planned mode which packages a Servo based browser to login with google to get cookies for auth).
Beta 2: Unofficial Google Docs Client I have worked more on RE’ing in Wireshark to RE saving and binding to a document(receive realtime updates), Implemented the infrastructure in the application, but both currently return a 400 (Bad Request), I am still working on it. There is a new material 3 theme with some other subtle UI changes. Various little fixes aswell. Also, you used to have to unzip and run the installer manually, but now there is a curl install command on the repo that downloads it to AppData and runs it.
Installer flow complete! It doesnt do any installing yet but we have a framework that calls a powershell script with progress updates and a progress bar
Avalonia Animations keep overlapping the pages!?!?
Made some fancy installer UI (Avalonia wwhhhyyy does your styling have to be so finicky!!!!!!)
Made a Build script to automate building and compiling the application for people!
-Demo of Unofficial Google Docs Client
This is the status of my Unofficial Google Docs Client(Most of what is demoed in this devlog is done before stardance, this is a recap before i get into new features)
Can authenticate with google to fetch public & private documents(using browser cookies)
Can view documents including text(including bolds and italics) and tables
Can move a cursor around and type, but cannot save to google’s servers yet