strongR-frida #2331
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: strongR-frida | |
on: | |
schedule: | |
- cron: "0 9/12 * * *" | |
workflow_dispatch: | |
jobs: | |
check_version: | |
runs-on: ubuntu-22.04 | |
outputs: | |
FRIDA_VERSION: ${{ steps.pullFridaLatestRelease.outputs.FRIDA_VERSION }} | |
ALREADY_RELEASE: ${{ steps.checkReleaseVersion.outputs.ALREADY_RELEASE }} | |
steps: | |
- name: Pull Frida Latest Release | |
id: pullFridaLatestRelease | |
uses: actions/[email protected] | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
const releaseResponse = await github.repos.getLatestRelease({ | |
owner: 'frida', | |
repo: 'frida', | |
}) | |
const { | |
data: { tag_name: ver } | |
} = releaseResponse; | |
core.setOutput('FRIDA_VERSION', ver); | |
- name: Check release version | |
id: checkReleaseVersion | |
uses: actions/[email protected] | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
try { | |
const releaseVersion = '${{ steps.pullFridaLatestRelease.outputs.FRIDA_VERSION }}' | |
const releaseResponse = await github.repos.getReleaseByTag({ | |
owner: '${{ secrets.GIT_OWNER }}', | |
repo: '${{ secrets.GIT_REPO }}', | |
tag: releaseVersion | |
}); | |
const { | |
data: { tag_name: ver } | |
} = releaseResponse; | |
if (ver == '${{ steps.pullFridaLatestRelease.outputs.FRIDA_VERSION }}'){ | |
core.setOutput('ALREADY_RELEASE', '1'); | |
} | |
else{ | |
core.setOutput('ALREADY_RELEASE', '0'); | |
} | |
} catch (e) { | |
if(e.message == 'Not Found'){ | |
core.setOutput('ALREADY_RELEASE', '0'); | |
} | |
else{ | |
core.setFailed(e.message); | |
} | |
} | |
create_release: | |
needs: check_version | |
runs-on: ubuntu-22.04 | |
if: needs.check_version.outputs.ALREADY_RELEASE == '0' | |
steps: | |
- uses: actions/create-release@master | |
id: createRelease | |
name: Create Runner Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: "${{ needs.check_version.outputs.FRIDA_VERSION }}" | |
release_name: "${{ needs.check_version.outputs.FRIDA_VERSION }}" | |
prerelease: false | |
android_build: | |
runs-on: ubuntu-22.04 | |
needs: [check_version, create_release] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: fusion-engineering/setup-git-credentials@v2 | |
with: | |
credentials: ${{secrets.GIT_CREDENTIALS}} | |
- name: set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: "temurin" | |
java-version: "17" | |
- name: Setup Android NDK | |
id: setup-ndk | |
uses: nttld/[email protected] | |
with: | |
ndk-version: r25b | |
- name: Set up Python 3.9 | |
uses: actions/[email protected] | |
with: | |
python-version: '3.9' | |
- name: install dependencies | |
run: | | |
sudo apt-get update && DEBIAN_FRONTEND=noninteractive sudo apt-get install build-essential tree ninja-build gcc-multilib g++-multilib lib32stdc++-9-dev flex bison ruby ruby-dev python3-requests python3-setuptools python3-dev python3-pip libc6-dev libc6-dev-i386 -y | |
sudo gem install fpm -v 1.11.0 --no-document | |
python3 -m pip install lief graphlib | |
- name: build frida for Android | |
shell: bash | |
run: | | |
git config --global user.name "${{ secrets.GIT_NAME }}" | |
git config --global user.email "${{ secrets.GIT_EMAIL }}" | |
git clone ${{ secrets.PATCH_REPO }} | |
export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} | |
git clone --recurse-submodules https://github.com/frida/frida | |
cd frida | |
for path in ../Patchs/strongR-frida/* | |
do | |
name=$(basename $path) | |
real=$(realpath $path) | |
echo "Apply patches in $real to frida/subprojects/$name" | |
cd subprojects/$name | |
git am ../../../Patchs/strongR-frida/$name/*.patch | |
cd ../.. | |
echo $i | |
done | |
cd .. | |
ARCHES="android-arm android-arm64 android-x86 android-x86_64" | |
for ARCH in $ARCHES | |
do | |
mkdir build-$ARCH | |
cd build-$ARCH | |
../frida/configure --host=$ARCH | |
make | |
cd .. | |
done | |
- name: Check release version | |
id: checkReleaseVersion | |
uses: actions/[email protected] | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
try { | |
const releaseVersion = '${{ needs.check_version.outputs.FRIDA_VERSION }}' | |
const releaseResponse = await github.repos.getReleaseByTag({ | |
owner: '${{ secrets.GIT_OWNER }}', | |
repo: '${{ secrets.GIT_REPO }}', | |
tag: releaseVersion | |
}) | |
const { | |
data: { id: releaseId, html_url: htmlUrl, upload_url: uploadUrl } | |
} = releaseResponse; | |
core.setOutput('id', releaseId); | |
core.setOutput('html_url', htmlUrl); | |
core.setOutput('upload_url', uploadUrl); | |
core.setOutput('version', releaseVersion); | |
} catch (e) { | |
core.setFailed(e.message); | |
} | |
- name: package build result for Android | |
shell: bash | |
run: | | |
gzip build-android-arm/subprojects/frida-core/server/frida-server | |
gzip build-android-arm64/subprojects/frida-core/server/frida-server | |
gzip build-android-x86/subprojects/frida-core/server/frida-server | |
gzip build-android-x86_64/subprojects/frida-core/server/frida-server | |
gzip build-android-arm/subprojects/frida-core/inject/frida-inject | |
gzip build-android-arm64/subprojects/frida-core/inject/frida-inject | |
gzip build-android-x86/subprojects/frida-core/inject/frida-inject | |
gzip build-android-x86_64/subprojects/frida-core/inject/frida-inject | |
gzip build-android-arm/subprojects/frida-core/lib/gadget/frida-gadget.so | |
gzip build-android-arm64/subprojects/frida-core/lib/gadget/frida-gadget.so | |
gzip build-android-x86/subprojects/frida-core/lib/gadget/frida-gadget.so | |
gzip build-android-x86_64/subprojects/frida-core/lib/gadget/frida-gadget.so | |
- name: Upload android arm frida-server for strongR-frida | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-core/server/frida-server.gz' | |
asset_name: 'hluda-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android arm64 frida-server for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-core/server/frida-server.gz' | |
asset_name: 'hluda-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android x86 frida-server for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-core/server/frida-server.gz' | |
asset_name: 'hluda-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android x86_64 frida-server for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-core/server/frida-server.gz' | |
asset_name: 'hluda-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android arm frida-inject for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-core/inject/frida-inject.gz' | |
asset_name: 'hluda-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android arm64 frida-inject for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-core/inject/frida-inject.gz' | |
asset_name: 'hluda-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android x86 frida-inject for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-core/inject/frida-inject.gz' | |
asset_name: 'hluda-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android x86_64 frida-inject for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-core/inject/frida-inject.gz' | |
asset_name: 'hluda-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm-x86_64.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android arm frida-gadget for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-core/lib/gadget/frida-gadget.so.gz' | |
asset_name: 'hluda-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.so.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android arm64 frida-gadget for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-core/lib/gadget/frida-gadget.so.gz' | |
asset_name: 'hluda-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.so.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android x86 frida-gadget for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-core/lib/gadget/frida-gadget.so.gz' | |
asset_name: 'hluda-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.so.gz' | |
asset_content_type: application/octet-stream | |
- name: Upload android x86_64 frida-gadget for hluda | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' | |
asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-core/lib/gadget/frida-gadget.so.gz' | |
asset_name: 'hluda-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.so.gz' | |
asset_content_type: application/octet-stream |