├── README.md └── .github └── workflows └── build.yml /README.md: -------------------------------------------------------------------------------- 1 | # Frida-Android-Build 2 | 3 | Used to build frida used on android, and used the frida anti-detection patch [Frida-Patchs](https://github.com/JsHookApp/Frida-Patchs) -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | FRIDA_VERSION: 7 | description: 'FRIDA_VERSION' 8 | 9 | jobs: 10 | android_build: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - name: Create release 15 | uses: actions/create-release@master 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 18 | with: 19 | tag_name: "${{ github.event.inputs.FRIDA_VERSION }}" 20 | release_name: "${{ github.event.inputs.FRIDA_VERSION }}" 21 | draft: false 22 | prerelease: false 23 | 24 | - name: Get release UploadUrl 25 | id: getReleaseUploadUrl 26 | uses: actions/github-script@v3.1.0 27 | with: 28 | github-token: ${{ secrets.GITHUB_TOKEN }} 29 | script: | 30 | try { 31 | const releaseVersion = '${{ github.event.inputs.FRIDA_VERSION }}' 32 | const releaseResponse = await github.repos.getReleaseByTag({ 33 | owner: '${{ secrets.GIT_OWNER }}', 34 | repo: '${{ secrets.GIT_REPO }}', 35 | tag: releaseVersion 36 | }) 37 | const { 38 | data: { upload_url: uploadUrl } 39 | } = releaseResponse; 40 | core.setOutput('upload_url', uploadUrl); 41 | } catch (e) { 42 | core.setFailed(e.message); 43 | } 44 | 45 | - uses: actions/checkout@v3 46 | 47 | - uses: actions/setup-node@v3 48 | with: 49 | node-version: 16 50 | 51 | - uses: actions/setup-java@v1 52 | with: 53 | java-version: 1.8 54 | 55 | - uses: nttld/setup-ndk@v1.0.6 56 | id: setup-ndk 57 | with: 58 | ndk-version: r25b 59 | 60 | - uses: actions/setup-python@v2 61 | with: 62 | python-version: 3.9 63 | 64 | - name: install dependencies 65 | run: | 66 | 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 xz-utils ruby ruby-dev python3-requests python3-setuptools python3-dev python3-pip libc6-dev libc6-dev-i386 zip -y 67 | sudo gem install fpm -v 1.11.0 --no-document 68 | python3 -m pip install lief 69 | 70 | - name: repository clone 71 | run: | 72 | git config --global user.email "you@example.com" 73 | git config --global user.name "Your Name" 74 | git clone https://github.com/JsHookApp/Frida-Patchs Patchs 75 | git clone -b ${{ github.event.inputs.FRIDA_VERSION }} --recurse-submodules https://github.com/frida/frida frida 76 | cd frida/frida-core 77 | git am ../../Patchs/frida-core/*.patch 78 | 79 | - name: build frida for Android 80 | run: | 81 | export ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }} 82 | cd ./frida 83 | make core-android-arm 84 | make core-android-arm64 85 | make core-android-x86 86 | make core-android-x86_64 87 | 88 | - name: devkit frida for Android 89 | run: | 90 | cd ./frida 91 | python3 ./releng/devkit.py frida-gum android-arm devkit/frida-gum-arm 92 | python3 ./releng/devkit.py frida-gum android-arm64 devkit/frida-gum-arm64 93 | python3 ./releng/devkit.py frida-gum android-x86 devkit/frida-gum-x86 94 | python3 ./releng/devkit.py frida-gum android-x86_64 devkit/frida-gum-x86_64 95 | python3 ./releng/devkit.py frida-gumjs android-arm devkit/frida-gumjs-arm 96 | python3 ./releng/devkit.py frida-gumjs android-arm64 devkit/frida-gumjs-arm64 97 | python3 ./releng/devkit.py frida-gumjs android-x86 devkit/frida-gumjs-x86 98 | python3 ./releng/devkit.py frida-gumjs android-x86_64 devkit/frida-gumjs-x86_64 99 | ls ./devkit 100 | ls ./devkit/frida-gum-arm 101 | ls ./devkit/frida-gum-arm64 102 | ls ./devkit/frida-gum-x86 103 | ls ./devkit/frida-gum-x86_64 104 | ls ./devkit/frida-gumjs-arm 105 | ls ./devkit/frida-gumjs-arm64 106 | ls ./devkit/frida-gumjs-x86 107 | ls ./devkit/frida-gumjs-x86_64 108 | 109 | - name: zip 110 | run: | 111 | cd ${{ github.workspace }}/frida/build/frida-android-arm/bin && zip frida-server.zip * 112 | cd ${{ github.workspace }}/frida/build/frida-android-arm64/bin && zip frida-server.zip * 113 | cd ${{ github.workspace }}/frida/build/frida-android-x86/bin && zip frida-server.zip * 114 | cd ${{ github.workspace }}/frida/build/frida-android-x86_64/bin && zip frida-server.zip * 115 | 116 | cd ${{ github.workspace }}/frida/build/frida-android-arm/lib/frida/32 && zip frida-gadget.zip * 117 | cd ${{ github.workspace }}/frida/build/frida-android-arm64/lib/frida/64 && zip frida-gadget.zip * 118 | cd ${{ github.workspace }}/frida/build/frida-android-x86/lib/frida/32 && zip frida-gadget.zip * 119 | cd ${{ github.workspace }}/frida/build/frida-android-x86_64/lib/frida/64 && zip frida-gadget.zip * 120 | 121 | cd ${{ github.workspace }}/frida/devkit/frida-gum-arm && zip frida-devkit.zip * 122 | cd ${{ github.workspace }}/frida/devkit/frida-gum-arm64 && zip frida-devkit.zip * 123 | cd ${{ github.workspace }}/frida/devkit/frida-gum-x86 && zip frida-devkit.zip * 124 | cd ${{ github.workspace }}/frida/devkit/frida-gum-x86_64 && zip frida-devkit.zip * 125 | cd ${{ github.workspace }}/frida/devkit/frida-gumjs-arm && zip frida-devkit.zip * 126 | cd ${{ github.workspace }}/frida/devkit/frida-gumjs-arm64 && zip frida-devkit.zip * 127 | cd ${{ github.workspace }}/frida/devkit/frida-gumjs-x86 && zip frida-devkit.zip * 128 | cd ${{ github.workspace }}/frida/devkit/frida-gumjs-x86_64 && zip frida-devkit.zip * 129 | 130 | - name: Upload android arm frida-server 131 | uses: actions/upload-release-asset@v1.0.2 132 | env: 133 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 134 | with: 135 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 136 | asset_name: 'frida-server-${{ github.event.inputs.FRIDA_VERSION }}-android-arm.zip' 137 | asset_path: '${{ github.workspace }}/frida/build/frida-android-arm/bin/frida-server.zip' 138 | asset_content_type: application/octet-stream 139 | 140 | - name: Upload android arm64 frida-server 141 | uses: actions/upload-release-asset@v1.0.2 142 | env: 143 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 144 | with: 145 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 146 | asset_name: 'frida-server-${{ github.event.inputs.FRIDA_VERSION }}-android-arm64.zip' 147 | asset_path: '${{ github.workspace }}/frida/build/frida-android-arm64/bin/frida-server.zip' 148 | asset_content_type: application/octet-stream 149 | 150 | - name: Upload android x86 frida-server 151 | uses: actions/upload-release-asset@v1.0.2 152 | env: 153 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 154 | with: 155 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 156 | asset_name: 'frida-server-${{ github.event.inputs.FRIDA_VERSION }}-android-x86.zip' 157 | asset_path: '${{ github.workspace }}/frida/build/frida-android-x86/bin/frida-server.zip' 158 | asset_content_type: application/octet-stream 159 | 160 | - name: Upload android x86_64 frida-server 161 | uses: actions/upload-release-asset@v1.0.2 162 | env: 163 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 164 | with: 165 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 166 | asset_name: 'frida-server-${{ github.event.inputs.FRIDA_VERSION }}-android-x86_64.zip' 167 | asset_path: '${{ github.workspace }}/frida/build/frida-android-x86_64/bin/frida-server.zip' 168 | asset_content_type: application/octet-stream 169 | 170 | - name: Upload android arm frida-gadget 171 | uses: actions/upload-release-asset@v1.0.2 172 | env: 173 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 174 | with: 175 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 176 | asset_name: 'frida-gadget-${{ github.event.inputs.FRIDA_VERSION }}-android-arm.zip' 177 | asset_path: '${{ github.workspace }}/frida/build/frida-android-arm/lib/frida/32/frida-gadget.zip' 178 | asset_content_type: application/octet-stream 179 | 180 | - name: Upload android arm64 frida-gadget 181 | uses: actions/upload-release-asset@v1.0.2 182 | env: 183 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 184 | with: 185 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 186 | asset_name: 'frida-gadget-${{ github.event.inputs.FRIDA_VERSION }}-android-arm64.zip' 187 | asset_path: '${{ github.workspace }}/frida/build/frida-android-arm64/lib/frida/64/frida-gadget.zip' 188 | asset_content_type: application/octet-stream 189 | 190 | - name: Upload android x86 frida-gadget 191 | uses: actions/upload-release-asset@v1.0.2 192 | env: 193 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 194 | with: 195 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 196 | asset_name: 'frida-gadget-${{ github.event.inputs.FRIDA_VERSION }}-android-x86.zip' 197 | asset_path: '${{ github.workspace }}/frida/build/frida-android-x86/lib/frida/32/frida-gadget.zip' 198 | asset_content_type: application/octet-stream 199 | 200 | - name: Upload android x86_64 frida-gadget 201 | uses: actions/upload-release-asset@v1.0.2 202 | env: 203 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 204 | with: 205 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 206 | asset_name: 'frida-gadget-${{ github.event.inputs.FRIDA_VERSION }}-android-x86_64.zip' 207 | asset_path: '${{ github.workspace }}/frida/build/frida-android-x86_64/lib/frida/64/frida-gadget.zip' 208 | asset_content_type: application/octet-stream 209 | 210 | - name: Upload android arm frida-gumjs-devkit 211 | uses: actions/upload-release-asset@v1.0.2 212 | env: 213 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 214 | with: 215 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 216 | asset_name: 'frida-gumjs-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-arm.zip' 217 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gumjs-arm/frida-devkit.zip' 218 | asset_content_type: application/octet-stream 219 | 220 | - name: Upload android arm64 frida-gumjs-devkit 221 | uses: actions/upload-release-asset@v1.0.2 222 | env: 223 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 224 | with: 225 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 226 | asset_name: 'frida-gumjs-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-arm64.zip' 227 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gumjs-arm64/frida-devkit.zip' 228 | asset_content_type: application/octet-stream 229 | 230 | - name: Upload android x86 frida-gumjs-devkit 231 | uses: actions/upload-release-asset@v1.0.2 232 | env: 233 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 234 | with: 235 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 236 | asset_name: 'frida-gumjs-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-x86.zip' 237 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gumjs-x86/frida-devkit.zip' 238 | asset_content_type: application/octet-stream 239 | 240 | - name: Upload android x86_64 frida-gumjs-devkit 241 | uses: actions/upload-release-asset@v1.0.2 242 | env: 243 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 244 | with: 245 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 246 | asset_name: 'frida-gumjs-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-x86_64.zip' 247 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gumjs-x86_64/frida-devkit.zip' 248 | asset_content_type: application/octet-stream 249 | 250 | - name: Upload android arm frida-gum-devkit 251 | uses: actions/upload-release-asset@v1.0.2 252 | env: 253 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 254 | with: 255 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 256 | asset_name: 'frida-gum-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-arm.zip' 257 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gum-arm/frida-devkit.zip' 258 | asset_content_type: application/octet-stream 259 | 260 | - name: Upload android arm64 frida-gum-devkit 261 | uses: actions/upload-release-asset@v1.0.2 262 | env: 263 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 264 | with: 265 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 266 | asset_name: 'frida-gum-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-arm64.zip' 267 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gum-arm64/frida-devkit.zip' 268 | asset_content_type: application/octet-stream 269 | 270 | - name: Upload android x86 frida-gum-devkit 271 | uses: actions/upload-release-asset@v1.0.2 272 | env: 273 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 274 | with: 275 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 276 | asset_name: 'frida-gum-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-x86.zip' 277 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gum-x86/frida-devkit.zip' 278 | asset_content_type: application/octet-stream 279 | 280 | - name: Upload android x86_64 frida-gum-devkit 281 | uses: actions/upload-release-asset@v1.0.2 282 | env: 283 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 284 | with: 285 | upload_url: '${{ steps.getReleaseUploadUrl.outputs.upload_url }}' 286 | asset_name: 'frida-gum-devkit-${{ github.event.inputs.FRIDA_VERSION }}-android-x86_64.zip' 287 | asset_path: '${{ github.workspace }}/frida/devkit/frida-gum-x86_64/frida-devkit.zip' 288 | asset_content_type: application/octet-stream 289 | --------------------------------------------------------------------------------