Skip to content
This repository has been archived by the owner on Oct 11, 2024. It is now read-only.

Commit

Permalink
poc
Browse files Browse the repository at this point in the history
  • Loading branch information
smartfrigde committed Apr 30, 2024
1 parent e82315a commit a6cb7d7
Show file tree
Hide file tree
Showing 8 changed files with 115 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# These builds are automatically generated by GitHub Actions
54 changes: 54 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Build and release
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: jiro4989/setup-nim-action@v1
with:
nim-version: '2.0.2' # default is 'stable'
- name: Install dependencies
run: nimble install -y
- name: Build the project on Linux
run: nim c -d:release src/bdInject.nim
- name: Build the project on Windows
run: sudo apt install mingw-w64 && nim c --os:Windows -d:mingw -d:release --cpu:amd64 src/bdInject.nim
- id: vars
shell: bash
run: |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.vars.outputs.sha_short }}
release_name: Release ${{ steps.vars.outputs.sha_short }}
draft: true
prerelease: false
body_path: ./.github/release.md
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /home/runner/work/bdInject/bdInject/src/bdInject
asset_name: bdInjectLinux
asset_content_type: application/octet-stream
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /home/runner/work/bdInject/bdInject/src/bdInject.exe
asset_name: bdInjectWindows.exe
asset_content_type: application/octet-stream
- run: |
curl --request PATCH \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/json" \
https://api.github.com/repos/${{ github.repository }}/releases/${{steps.create_release.outputs.id}} \
-d '{"draft":false}'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
nimcache/
nimblecache/
htmldocs/
src/bdInject
13 changes: 13 additions & 0 deletions bdInject.nimble
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Package

version = "0.1.0"
author = "smartfrigde"
description = "bdCompat installer for ArmCord"
license = "MIT"
srcDir = "src"
bin = @["bdInject"]


# Dependencies

requires "nim >= 2.0.2", "puppy >= 2.1.2", "zippy >= 0.10.12"
5 changes: 5 additions & 0 deletions nim.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
amd64.windows.gcc.path = "/usr/bin/"
amd64.windows.gcc.exe = "x86_64-w64-mingw32-gcc"
amd64.windows.gcc.linkerexe = "x86_64-w64-mingw32-gcc"
amd64.windows.gcc.options.linker = ""
#gcc.options.linker = ""
26 changes: 26 additions & 0 deletions src/bdInject.nim
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import os
import zippy/ziparchives
import puppy
const jsIndex: string = staticRead"index.js"
const jsonPackage: string = staticRead"package.json"
type
Paths = array[3, string]
# let commonInstallPaths: Paths = ["Jasmine", "Ktisztina", "Kristof"]
when isMainModule:
echo("BDCompat injector")
write(stdout, "Your resources directory -> ")
var input: string = readLine(stdin)
var asar: string = joinPath(input & "/app.asar")
echo(asar)
if fileExists(asar):
echo "Injecting BDCompat..."
moveFile(asar, input & "/app-original.asar")
createDir(input & "/app")
writeFile(input & "/app/index.js", jsIndex)
writeFile(input & "/app/package.json", jsonPackage)
writeFile(input & "/app/kernel.asar", fetch("https://github.com/kernel-mod/electron/releases/download/2023-01-15-07-14-02/kernel.asar"))
writeFile(input & "/app/bdCompat.zip", fetch("https://github.com/ArmCord/bdCompat/archive/refs/heads/main.zip"))
extractAll(input & "/app/bdCompat.zip", input & "/app/packages")
removeFile(input & "/app/bdCompat.zip")
else:
echo "Directory does not exist"
11 changes: 11 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const pkg = require("./package.json");
const Module = require("module");
const path = require("path");

try {
const kernel = require(path.join(__dirname, "kernel.asar"));
if (kernel?.default) kernel.default({ startOriginal: true });
} catch(e) {
console.error("Kernel failed to load: ", e.message);
Module._load(path.join(__dirname, "..", "app-original.asar"), null, true);
}
4 changes: 4 additions & 0 deletions src/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "kernel",
"main": "index.js"
}

0 comments on commit a6cb7d7

Please sign in to comment.