From 6632c8e8363b365ab4506088d3c62382f93355ab Mon Sep 17 00:00:00 2001 From: Furtif Date: Sun, 5 Mar 2023 21:39:00 +0100 Subject: [PATCH 1/8] clean up add 33 mode --- .gitignore | 211 +-------- .idea/codeStyles/Project.xml | 113 ----- .idea/misc.xml | 19 - FridaLoader/.gitignore | 13 - FridaLoader/.idea/codeStyles/Project.xml | 113 ----- FridaLoader/.idea/gradle.xml | 20 - FridaLoader/.idea/misc.xml | 9 - FridaLoader/.idea/runConfigurations.xml | 12 - FridaLoader/app/.gitignore | 1 - FridaLoader/app/build.gradle | 48 --- FridaLoader/app/debug/output.json | 1 - .../com/dns/fridaloader/MainActivity.java | 404 ------------------ FridaLoader/build.gradle | 67 ++- FridaLoader/debug.keystore | Bin 0 -> 2747 bytes FridaLoader/gradle/wrapper/gradle-wrapper.jar | Bin 54329 -> 0 bytes FridaLoader/gradlew | 172 -------- FridaLoader/{app => }/proguard-rules.pro | 0 FridaLoader/release.keystore | Bin 0 -> 2751 bytes FridaLoader/settings.gradle | 1 - .../fridaloader/ExampleInstrumentedTest.java | 0 .../{app => }/src/main/AndroidManifest.xml | 17 +- .../HttpURLConnectionGetRequest.java | 44 +- .../com/dns/fridaloader/MainActivity.java | 316 ++++++++++++++ .../java/com/dns/fridaloader/MainApp.java | 6 +- .../main/java/com/dns/fridaloader/Util.java | 10 +- .../drawable-v24/ic_launcher_foreground.xml | 0 .../src/main/res/drawable/button_states.xml | 0 .../res/drawable/ic_launcher_background.xml | 0 .../src/main/res/layout/activity_main.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../res/mipmap-hdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../res/mipmap-mdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../res/mipmap-xhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin .../{app => }/src/main/res/values/colors.xml | 0 .../{app => }/src/main/res/values/strings.xml | 0 .../{app => }/src/main/res/values/styles.xml | 0 .../com/dns/fridaloader/ExampleUnitTest.java | 0 build.gradle | 24 ++ gen_keys.bat | 3 + .../gradle.properties => gradle.properties | 2 - gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59821 bytes .../wrapper/gradle-wrapper.properties | 3 +- gradlew | 234 ++++++++++ FridaLoader/gradlew.bat => gradlew.bat | 173 ++++---- local.properties | 9 + settings.gradle | 1 + 54 files changed, 747 insertions(+), 1299 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml delete mode 100644 .idea/misc.xml delete mode 100644 FridaLoader/.gitignore delete mode 100644 FridaLoader/.idea/codeStyles/Project.xml delete mode 100644 FridaLoader/.idea/gradle.xml delete mode 100644 FridaLoader/.idea/misc.xml delete mode 100644 FridaLoader/.idea/runConfigurations.xml delete mode 100644 FridaLoader/app/.gitignore delete mode 100644 FridaLoader/app/build.gradle delete mode 100644 FridaLoader/app/debug/output.json delete mode 100644 FridaLoader/app/src/main/java/com/dns/fridaloader/MainActivity.java create mode 100644 FridaLoader/debug.keystore delete mode 100644 FridaLoader/gradle/wrapper/gradle-wrapper.jar delete mode 100755 FridaLoader/gradlew rename FridaLoader/{app => }/proguard-rules.pro (100%) create mode 100644 FridaLoader/release.keystore delete mode 100644 FridaLoader/settings.gradle rename FridaLoader/{app => }/src/androidTest/java/com/dns/fridaloader/ExampleInstrumentedTest.java (100%) rename FridaLoader/{app => }/src/main/AndroidManifest.xml (70%) rename FridaLoader/{app => }/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java (67%) create mode 100644 FridaLoader/src/main/java/com/dns/fridaloader/MainActivity.java rename FridaLoader/{app => }/src/main/java/com/dns/fridaloader/MainApp.java (83%) rename FridaLoader/{app => }/src/main/java/com/dns/fridaloader/Util.java (88%) rename FridaLoader/{app => }/src/main/res/drawable-v24/ic_launcher_foreground.xml (100%) rename FridaLoader/{app => }/src/main/res/drawable/button_states.xml (100%) rename FridaLoader/{app => }/src/main/res/drawable/ic_launcher_background.xml (100%) rename FridaLoader/{app => }/src/main/res/layout/activity_main.xml (100%) rename FridaLoader/{app => }/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename FridaLoader/{app => }/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename FridaLoader/{app => }/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-hdpi/ic_launcher_round.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-mdpi/ic_launcher_round.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-xhdpi/ic_launcher_round.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-xxhdpi/ic_launcher_round.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%) rename FridaLoader/{app => }/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename FridaLoader/{app => }/src/main/res/values/colors.xml (100%) rename FridaLoader/{app => }/src/main/res/values/strings.xml (100%) rename FridaLoader/{app => }/src/main/res/values/styles.xml (100%) rename FridaLoader/{app => }/src/test/java/com/dns/fridaloader/ExampleUnitTest.java (100%) create mode 100644 build.gradle create mode 100644 gen_keys.bat rename FridaLoader/gradle.properties => gradle.properties (99%) create mode 100644 gradle/wrapper/gradle-wrapper.jar rename {FridaLoader/gradle => gradle}/wrapper/gradle-wrapper.properties (80%) create mode 100644 gradlew rename FridaLoader/gradlew.bat => gradlew.bat (66%) create mode 100644 local.properties create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index da384a1..da88288 100644 --- a/.gitignore +++ b/.gitignore @@ -1,210 +1 @@ -# Built application files -*.apk -*.ap_ -*.aab - -# Files for the ART/Dalvik VM -*.dex - -# Java class files -*.class - -# Generated files -bin/ -gen/ -out/ -release/ - -# Gradle files -.gradle/ -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Proguard folder generated by Eclipse -proguard/ - -# Log Files -*.log - -# Android Studio Navigation editor temp files -.navigation/ - -# Android Studio captures folder -captures/ - -# IntelliJ -*.iml -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/assetWizardSettings.xml -.idea/dictionaries -.idea/libraries -# Android Studio 3 in .gitignore file. -.idea/caches -.idea/modules.xml -# Comment next line if keeping position of elements in Navigation Editor is relevant for you -.idea/navEditor.xml - -# Keystore files -# Uncomment the following lines if you do not want to check your keystore files in. -#*.jks -#*.keystore - -# External native build folder generated in Android Studio 2.2 and later -.externalNativeBuild - -# Google Services (e.g. APIs or Firebase) -# google-services.json - -# Freeline -freeline.py -freeline/ -freeline_project_description.json - -# fastlane -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots -fastlane/test_output -fastlane/readme.md - -# Version control -vcs.xml - -# lint -lint/intermediates/ -lint/generated/ -lint/outputs/ -lint/tmp/ -# lint/reports/ - - -#old -# DS_Store and Thumbsdb crap stay away -.DS_Store -Thumbs.db - -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -.installed.cfg -*.egg - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*,cover -.hypothesis/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -# IPython Notebook -.ipynb_checkpoints - -# pyenv -.python-version - -# celery beat schedule file -celerybeat-schedule - -# dotenv -.env - -# virtualenv -venv/ -ENV/ - -# Spyder project settings -.spyderproject - - -# Files for the ART/Dalvik VM -*.dex - -# Java class files -*.class - -# Generated files -bin/ -gen/ -out/ - -# Gradle files -.gradle/ -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Proguard folder generated by Eclipse -proguard/ - -# Log Files -*.log - -# Android Studio Navigation editor temp files -.navigation/ - -# Android Studio captures folder -captures/ - -# Intellij -*.iml -.idea/workspace.xml +/.gradle/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index ae78c11..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - -
- - - - xmlns:android - - ^$ - - - -
-
- - - - xmlns:.* - - ^$ - - - BY_NAME - -
-
- - - - .*:id - - http://schemas.android.com/apk/res/android - - - -
-
- - - - .*:name - - http://schemas.android.com/apk/res/android - - - -
-
- - - - name - - ^$ - - - -
-
- - - - style - - ^$ - - - -
-
- - - - .* - - ^$ - - - BY_NAME - -
-
- - - - .* - - http://schemas.android.com/apk/res/android - - - ANDROID_ATTRIBUTE_ORDER - -
-
- - - - .* - - .* - - - BY_NAME - -
-
-
-
-
-
\ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d6401c5..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - Android API 24 Platform - - - - - - - - \ No newline at end of file diff --git a/FridaLoader/.gitignore b/FridaLoader/.gitignore deleted file mode 100644 index 2b75303..0000000 --- a/FridaLoader/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -/build -/captures -.externalNativeBuild diff --git a/FridaLoader/.idea/codeStyles/Project.xml b/FridaLoader/.idea/codeStyles/Project.xml deleted file mode 100644 index ae78c11..0000000 --- a/FridaLoader/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - -
- - - - xmlns:android - - ^$ - - - -
-
- - - - xmlns:.* - - ^$ - - - BY_NAME - -
-
- - - - .*:id - - http://schemas.android.com/apk/res/android - - - -
-
- - - - .*:name - - http://schemas.android.com/apk/res/android - - - -
-
- - - - name - - ^$ - - - -
-
- - - - style - - ^$ - - - -
-
- - - - .* - - ^$ - - - BY_NAME - -
-
- - - - .* - - http://schemas.android.com/apk/res/android - - - ANDROID_ATTRIBUTE_ORDER - -
-
- - - - .* - - .* - - - BY_NAME - -
-
-
-
-
-
\ No newline at end of file diff --git a/FridaLoader/.idea/gradle.xml b/FridaLoader/.idea/gradle.xml deleted file mode 100644 index 5cd135a..0000000 --- a/FridaLoader/.idea/gradle.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/FridaLoader/.idea/misc.xml b/FridaLoader/.idea/misc.xml deleted file mode 100644 index 7bfef59..0000000 --- a/FridaLoader/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/FridaLoader/.idea/runConfigurations.xml b/FridaLoader/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/FridaLoader/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/FridaLoader/app/.gitignore b/FridaLoader/app/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/FridaLoader/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/FridaLoader/app/build.gradle b/FridaLoader/app/build.gradle deleted file mode 100644 index a6f431c..0000000 --- a/FridaLoader/app/build.gradle +++ /dev/null @@ -1,48 +0,0 @@ -apply plugin: 'com.android.application' - -android { - compileSdkVersion 29 - defaultConfig { - applicationId "com.dns.fridaloader" - minSdkVersion 16 - targetSdkVersion 29 - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - compileOptions { - sourceCompatibility = '1.8' - targetCompatibility = '1.8' - } -} -repositories { - maven { url 'https://jitpack.io' } -} - -dependencies { - implementation 'com.github.sabujak-sabujak:RoundedButton:v0.1.1' -} -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'com.mindorks.android:prdownloader:+' - implementation 'com.muddzdev:styleabletoast:+' - - - - - implementation 'com.crowdfire.cfalertdialog:cfalertdialog:1.1.0' - - implementation group: 'org.tukaani', name: 'xz', version: '1.8' - // implementation 'com.android.support:appcompat-v7:+' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - testImplementation 'junit:junit:4.12' - // androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4' -} - diff --git a/FridaLoader/app/debug/output.json b/FridaLoader/app/debug/output.json deleted file mode 100644 index dc2b161..0000000 --- a/FridaLoader/app/debug/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug","dirName":""},"path":"app-debug.apk","properties":{}}] \ No newline at end of file diff --git a/FridaLoader/app/src/main/java/com/dns/fridaloader/MainActivity.java b/FridaLoader/app/src/main/java/com/dns/fridaloader/MainActivity.java deleted file mode 100644 index 88fdd7c..0000000 --- a/FridaLoader/app/src/main/java/com/dns/fridaloader/MainActivity.java +++ /dev/null @@ -1,404 +0,0 @@ -package com.dns.fridaloader; - -import android.graphics.Color; -import android.os.SystemClock; -import androidx.appcompat.app.AppCompatActivity; -import life.sabujak.roundedbutton.RoundedButton; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.widget.Button; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; - -import com.crowdfire.cfalertdialog.CFAlertDialog; -import com.downloader.Error; -import com.downloader.OnCancelListener; -import com.downloader.OnDownloadListener; -import com.downloader.OnPauseListener; -import com.downloader.OnProgressListener; -import com.downloader.OnStartOrResumeListener; -import com.downloader.PRDownloader; -import com.downloader.Progress; -import com.downloader.Status; -import com.muddzdev.styleabletoast.StyleableToast; - -import org.tukaani.xz.XZInputStream; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; - -public class MainActivity extends AppCompatActivity { - String receivedData = ""; - int downloadIdOne; - private static String dirPath; - String request_endpoint = "https://api.github.com/repos/frida/frida/releases/latest"; - String URL1 =""; - // String URL1 = "https://github.com/frida/frida/releases/download/12.6.6/frida-server-12.6.6-android-x86.xz"; - String frida_url_prefix = "https://github.com/frida/frida/releases/download/"; - - Button performDownloadCancel, performDownload ; - RoundedButton reCheckStatusButton; - ProgressBar downloadProgressBar; - TextView textViewActionProgress, fridaStatusTextView; - - String command_ls, command_cp, command_chmod, command_launch_frida, - command_ps1, command_ps2, command_kill_frida, command_frida_search; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - // executeCommand("su -c /system/bin/cp /data/local/tmp/blah.txt /data/local/tmp/blah2.txt", true); - // executeCommand("su 0 /system/bin/cp /data/local/tmp/blah.txt /data/local/tmp/blah2.txt", false); - // executeCommand("su 0 /system/bin/cp /data/local/tmp/blah.txt /data/local/tmp/blah2.txt", false); - - if(rootedUsingMagisk()) - { - command_ls = "su -c /system/bin/ls"; - command_cp = "su -c /system/bin/cp /storage/emulated/0/Android/data/com.dns.fridaloader/files/frida-server-latest-decompressed /data/local/tmp/frida-server-latest"; - command_chmod = "su -c /system/bin/chmod +x /data/local/tmp/frida-server-latest"; - command_launch_frida = "su -c /data/local/tmp/frida-server-latest &"; - command_ps1 = "su -c /system/bin/ps -A"; - command_ps2 = "su -c /system/bin/ps"; - command_kill_frida = "su -c /system/bin/killall frida-server-latest"; - command_frida_search = "su -c /system/bin/ls /data/local/tmp/frida-server-latest"; - } else{ - command_ls = "su 0 /system/bin/ls"; - command_cp = "su 0 /system/bin/cp /storage/emulated/0/Android/data/com.dns.fridaloader/files/frida-server-latest-decompressed /data/local/tmp/frida-server-latest"; - command_chmod = "su 0 /system/bin/chmod +x /data/local/tmp/frida-server-latest"; - command_launch_frida = "su 0 /data/local/tmp/frida-server-latest &"; - command_ps1 = "su 0 /system/bin/ps -A"; - command_ps2 = "su 0 /system/bin/ps"; - command_kill_frida = "su 0 /system/bin/killall frida-server-latest"; - command_frida_search = "su 0 /system/bin/ls /data/local/tmp/frida-server-latest"; - } - //handle super user permissions - //executeCommand("su -c /system/bin/ls", true); - executeCommand(command_ls, true); - dirPath = Util.getRootDirPath(getApplicationContext()); - performDownloadCancel = (Button) findViewById(R.id.button_cancel_frida); - downloadProgressBar = (ProgressBar) findViewById(R.id.progressBarOne); - textViewActionProgress = (TextView)findViewById(R.id.textViewActionProgress); - fridaStatusTextView = (TextView)findViewById(R.id.fridaStatusTextView); - performDownload = (Button) findViewById(R.id.button_download_frida); - - reCheckStatusButton = (RoundedButton) findViewById(R.id.reCheckFridaStatus); - performDownload.setOnClickListener( new View.OnClickListener() { - - @Override - public void onClick(View v) { - performDownloadAndStartFrida(); - } - }); - - reCheckStatusButton.setOnClickListener( new View.OnClickListener() { - - @Override - public void onClick(View v) { - doFridaStuff(); - } - }); - - SystemClock.sleep(2000); - doFridaStuff(); - - } - - private void doFridaStuff() { - - // setupFridaURL(); - - Boolean fridaStatus = checkFridaStatusCode(); - if(fridaStatus){ - //frida already running - fridaAlreadyRunning(); - }else{ - //frida not currently running - freshFridaLaunchOptions(); - } - } - - - public void setupFridaURL() { - HttpURLConnectionGetRequest requestTypeOne = new HttpURLConnectionGetRequest(); - try { - String archType = execSomeCommandAndGetResponse("getprop ro.product.cpu.abi"); - receivedData = requestTypeOne.execute(request_endpoint, archType).get().toString(); - System.out.println("receivedData = "+receivedData); - if(!receivedData.contains("ERROR")){ - System.out.println("Frida URL found = "+frida_url_prefix.concat(receivedData)); - URL1 = frida_url_prefix.concat(receivedData); - }else{ - System.out.println("Something Went Wrong while finding latest branch so fallback to older version"); - URL1 = "https://github.com/frida/frida/releases/download/12.6.6/frida-server-12.6.6-android-x86.xz"; - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - - private void performDownloadAndStartFrida() { - - setupFridaURL(); - - if (Status.RUNNING == PRDownloader.getStatus(downloadIdOne)) { - PRDownloader.pause(downloadIdOne); - return; - } - - performDownload.setEnabled(false); - downloadProgressBar.setIndeterminate(true); - downloadProgressBar.getIndeterminateDrawable().setColorFilter( - Color.BLUE, android.graphics.PorterDuff.Mode.SRC_IN); - - if (Status.PAUSED == PRDownloader.getStatus(downloadIdOne)) { - PRDownloader.resume(downloadIdOne); - return; - } - - downloadIdOne = PRDownloader.download(URL1, dirPath, "frida-server-latest-xz.xz") - .build() - .setOnStartOrResumeListener(new OnStartOrResumeListener() { - @Override - public void onStartOrResume() { - reCheckStatusButton.setEnabled(false); - downloadProgressBar.setIndeterminate(false); - performDownload.setEnabled(true); - performDownload.setText("PAUSE PROCESS"); - performDownloadCancel.setEnabled(true); - } - }) - .setOnPauseListener(new OnPauseListener() { - @Override - public void onPause() { - performDownload.setText("RESUME PROCESS"); - } - }) - .setOnCancelListener(new OnCancelListener() { - @Override - public void onCancel() { - reCheckStatusButton.setEnabled(true); - performDownload.setText("START PROCESS"); - performDownloadCancel.setEnabled(false); - downloadProgressBar.setProgress(0); - textViewActionProgress.setText(""); - downloadIdOne = 0; - downloadProgressBar.setIndeterminate(false); - } - }) - .setOnProgressListener(new OnProgressListener() { - @Override - public void onProgress(Progress progress) { - long progressPercent = progress.currentBytes * 100 / progress.totalBytes; - downloadProgressBar.setProgress((int) progressPercent); - textViewActionProgress.setText(Util.getProgressDisplayLine(progress.currentBytes, progress.totalBytes)); - downloadProgressBar.setIndeterminate(false); - } - }) - .start(new OnDownloadListener() { - @Override - public void onDownloadComplete() { - performDownloadCancel.setEnabled(false); - performDownload.setText("DOWNLOAD & RUN AGAIN"); - System.out.println("Now uncompressing"); - try { - FileInputStream fin = new FileInputStream("/storage/emulated/0/Android/data/com.dns.fridaloader/files/" + "frida-server-latest-xz.xz"); - BufferedInputStream in = new BufferedInputStream(fin); - FileOutputStream out = new FileOutputStream("/storage/emulated/0/Android/data/com.dns.fridaloader/files/" + "frida-server-latest-decompressed"); - XZInputStream xzIn = new XZInputStream(in); - final byte[] buffer = new byte[8192]; - int n = 0; - while (-1 != (n = xzIn.read(buffer))) { - out.write(buffer, 0, n); - } - xzIn.close(); - fin.close(); - out.close(); - } - catch(Exception e) { - Log.e("Decompress", "unzip", e); - } - //executeCommand("su -c /system/bin/cp\\ /storage/emulated/0/Android/data/com.dns.fridaloader/files/frida-server-latest-decompressed\\ /data/local/tmp/frida-server-latest", false); - executeCommand(command_cp, false); - SystemClock.sleep(2000); - //executeCommand("su -c /system/bin/chmod\\ \\+x\\ /data/local/tmp/frida-server-latest", true); - executeCommand(command_chmod, true); - SystemClock.sleep(2000); - //executeCommand("su -c /data/local/tmp/frida-server-latest &", true); - executeCommand(command_launch_frida, true); - SystemClock.sleep(2000); - fridaStatusTextView.setText("Running"); - fridaStatusTextView.setTextColor(Color.parseColor("#ACF7C1")); - doFridaStuff(); - reCheckStatusButton.setEnabled(true); - } - - @Override - public void onError(Error error) { - performDownload.setText("Start"); - StyleableToast.makeText(MainActivity.this, "Something Went Wrong" + " " + "1", Toast.LENGTH_LONG, R.style.red).show(); - textViewActionProgress.setText(""); - downloadProgressBar.setProgress(0); - downloadIdOne = 0; - performDownloadCancel.setEnabled(false); - downloadProgressBar.setIndeterminate(false); - performDownload.setEnabled(true); - reCheckStatusButton.setEnabled(true); - } - }); - - } - - private boolean checkFridaStatusCode() { - //String status = executeCommand("su -c /system/bin/ps\\ -A", false); - String status = executeCommand(command_ps1, false); - if (status.contains("frida-server-latest")) { - return true; - }else{ - //status = executeCommand("su -c /system/bin/ps", false); - status = executeCommand(command_ps2, false); - if (status.contains("frida-server-latest")) { - return true; - }else{ - return false; - } - } - } - - private String execSomeCommandAndGetResponse(String command) { - //example command = "su -c /system/bin/ps -A" - String response = executeCommand(command, false); - return response; - } - private boolean rootedUsingMagisk() { - //example command = "su -c /system/bin/ps -A" - String response = executeCommand("/system/bin/which magisk", false); - if (response.contains("magisk")) { - return true; - }else{ - return false; - } - - } - - private void fridaAlreadyRunning() { - System.out.println("FRIDA IS RUNNING"); - fridaStatusTextView.setText("Running"); - fridaStatusTextView.setTextColor(Color.parseColor("#ACF7C1")); - - CFAlertDialog.Builder builder = new CFAlertDialog.Builder(this) - .setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) - .setTitle("Frida Status") - .setMessage("Frida Server (frida-server-latest) is already running. How do you want to proceed?") - .addButton("Download & Run Latest Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { - // Toast.makeText(MainActivity.this, "Upgrade tapped", Toast.LENGTH_SHORT).show(); - if(checkFridaStatusCode()) { - // sometimes we have to run kill twice for it to work - //executeCommand("su -c /system/bin/killall\\ frida-server-latest", false); - executeCommand(command_kill_frida, false); - } - // executeCommand("su -c /system/bin/killall\\ frida-server-latest", false); - if(checkFridaStatusCode()) { - // sometimes we have to run kill twice for it to work - //executeCommand("su -c /system/bin/killall\\ frida-server-latest", false); - executeCommand(command_kill_frida, false); - } - dialog.dismiss(); - fridaStatusTextView.setText("Terminated"); - performDownloadAndStartFrida(); - SystemClock.sleep(2000); - doFridaStuff(); - }) - .addButton("KILL Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { - if(checkFridaStatusCode()) { - // sometimes we have to run kill twice for it to work - //executeCommand("su -c /system/bin/killall\\ frida-server-latest", false); - executeCommand(command_kill_frida, false); - } - dialog.dismiss(); - fridaStatusTextView.setText("Terminated"); - SystemClock.sleep(2000); - - doFridaStuff(); - }).addButton("Continue", -1, -1, CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { - dialog.dismiss(); - }); - builder.show(); - } - - private void freshFridaLaunchOptions() { - fridaStatusTextView.setText("Not Running"); - fridaStatusTextView.setTextColor(Color.parseColor("#A50104")); - - CFAlertDialog.Builder builder = new CFAlertDialog.Builder(this) - .setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) - .setTitle("Frida Status") - .setMessage("Frida Server (frida-server-latest) is current not running. How do you want to proceed?") - .addButton("Install & Run Latest Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { - performDownloadAndStartFrida(); - dialog.dismiss(); - }) - .addButton("Force Start Existing Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { - - //String status = executeCommand("su -c /system/bin/ls\\ /data/local/tmp/frida-server-latest", false); - String status = executeCommand(command_frida_search, false); - if (!status.contains("frida-server-latest")) { - System.out.println("No such file or directory"); - dialog.dismiss(); - fridaStatusTextView.setText("Server Not Found"); - fridaStatusTextView.setTextColor(Color.parseColor("#A50104")); - - StyleableToast.makeText(MainActivity.this, "Server Not Found", Toast.LENGTH_LONG, R.style.red).show(); - }else{ - StyleableToast.makeText(MainActivity.this, "Server Found. Starting it now.", Toast.LENGTH_LONG, R.style.green).show(); - // executeCommand("su -c /data/local/tmp/frida-server-latest &", true); - executeCommand(command_launch_frida, true); - dialog.dismiss(); - SystemClock.sleep(2000); - fridaStatusTextView.setText("Running"); - fridaStatusTextView.setTextColor(Color.parseColor("#ACF7C1")); - doFridaStuff(); - } - }) - .addButton("Continue", -1, -1, CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { - dialog.dismiss(); - }); - builder.show(); - } - - private String executeCommand(String command, boolean standardOutExclude) { - int readData; - char[] buffer; - buffer = new char[4096]; - StringBuilder outputData; - BufferedReader reader; - try { - Process process = Runtime.getRuntime().exec(command); - if (standardOutExclude) { - // process.waitFor(); - return ""; - } - reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - outputData = new StringBuilder(); - while ((readData = reader.read(buffer)) > 0) - { - outputData.append(buffer, 0, readData); - } - reader.close(); - process.waitFor(); - return outputData.toString(); - } catch (Exception e) - { - throw new RuntimeException(e); - } - } -} diff --git a/FridaLoader/build.gradle b/FridaLoader/build.gradle index b55d89a..f297413 100644 --- a/FridaLoader/build.gradle +++ b/FridaLoader/build.gradle @@ -1,27 +1,52 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. +apply plugin: 'com.android.application' -buildscript { - repositories { - google() - jcenter() - +android { + namespace 'com.dns.fridaloader' + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + release { + storeFile file('release.keystore') + storePassword 'android' + keyAlias 'androidreleasekey' + keyPassword 'android' + } } - dependencies { - classpath 'com.android.tools.build:gradle:3.6.2' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + compileSdkVersion 33 + defaultConfig { + applicationId "com.dns.fridaloader" + minSdk 19 + targetSdk 33 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } -} - -allprojects { - repositories { - google() - jcenter() - + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility = '1.8' + targetCompatibility = '1.8' } } - -task clean(type: Delete) { - delete rootProject.buildDir +repositories { + maven { url 'https://jitpack.io' } +} +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.mindorks.android:prdownloader:0.6.0' + implementation 'com.muddzdev:styleabletoast:2.3.0' + implementation 'com.crowdfire.cfalertdialog:cfalertdialog:1.1.0' + implementation group: 'org.tukaani', name: 'xz', version: '1.9' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'com.github.sabujak-sabujak:RoundedButton:v0.1.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' } diff --git a/FridaLoader/debug.keystore b/FridaLoader/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..81545e7cdcca8f3ed001ca244f55826f190ef1e3 GIT binary patch literal 2747 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 literal 0 HcmV?d00001 diff --git a/FridaLoader/gradle/wrapper/gradle-wrapper.jar b/FridaLoader/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index f6b961fd5a86aa5fbfe90f707c3138408be7c718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54329 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

<5G2M1WZP5 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 F{|7XC?P&l2 diff --git a/FridaLoader/gradlew b/FridaLoader/gradlew deleted file mode 100755 index cccdd3d..0000000 --- a/FridaLoader/gradlew +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env sh - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - -exec "$JAVACMD" "$@" diff --git a/FridaLoader/app/proguard-rules.pro b/FridaLoader/proguard-rules.pro similarity index 100% rename from FridaLoader/app/proguard-rules.pro rename to FridaLoader/proguard-rules.pro diff --git a/FridaLoader/release.keystore b/FridaLoader/release.keystore new file mode 100644 index 0000000000000000000000000000000000000000..4b580f6d36433a98fbcd77a16b7a3cbc03026258 GIT binary patch literal 2751 zcma)+X*d*&7RP7CSjN7LZDbiK*~W~u>?B!}j3rB`8CxPEBVtTU(PTHaFi6NNTiLTO zuU*K}l+akRMNw%mujk(Tyzg^A-TUF3^PJ!R{LjZflEB^!0x}^9?7=J$d7>%tCl`CAut;pLmi~&-wtLjq`Bvh+z~b5G(N zZf_EDpImy`$Br^S;2je^La21So(^T5x~7}sVXI*rrPH1MW5cOFt3q(;S)G5?3S|@G z)$5sVRn-$3lF`3l<8-Er=i@*h`hF)-b~N24*}^mKj{@JCUMC|{(tMQHVot^71bgQR zfTp2unGo}eLTR<6^nCDX7G)V$0Mk8*h|gcVh4;KQxa2pQf#dG^y2_fPhxTk0kK;;- zt)k$&zqCz_`Vq7%j;J1m)5KHP`EDDtL4%)a7dn;a;Qi?D9H~Ep%&mn#^vz@ZeYn>w zKAi|z5ZcX+;esxlSbOGW>u}DlFHAikF`xW$K(L`@(Rv2QH@t}k9xe8oSIku|m_f9; z%-7-`Nbp5u)&N6p?8Bh9q9v1ed0%dyUKf(NdzEB^=Z?KZ6&$2m)Aee!UXXtegiE!A zP>tkr;s|PSa9D|{b(9kXh_-o_#Se~T>h8(m` zrr>!uWMwuhD+}A?2`dx7%*4BOlWgNu%>hBJllJ>*x%GJ+qGWiXIOcwk#Isw>^x|j3jNSb@G2A^JP-)MoE zvNNcaNt{`p-kRA`)zOMbq-9j^Vujt-cRc2}XK1!h^cM!__UYV#-*w^WTd-T+a&L7f zu8qBhmfZeQ*qqce#K1}y-zdPsgj|U=iMPE(Ij$FYue$N7-2daOJniu78%k>9Fk*3} z8likeH1BJSHs*uZD}< z@;BUBf+Q)?$#ulIi%DyDJFj9+fI;}hotmMG;F#tf-v zbJW9{)_50*FN;MSI^iJ$5ytCpOQHJv>vW9-vWd^1Ejh-^*j(YQ5NzQ!J>& zU3VU*%Q5R&9AShN4KJY1p*P<@ZK(Xb9`g+gJlOaaiwKXDltj1o!2nw5$qV`^gV~lc zQjxU%3Iueimf|5Xc0G_3%fGfR`!~z%-aUk$ z%dvfBXHqnWar%G4dl8q7JHJluDx5m^ti%POhbMpmehN+39(|?piKlaqX?%zi`Pi;z zA}MpxEn6^tc6^z)1hU*)=22MPu~Zx|jM8t_*%)-`xlFR{x)s2h#pn&(6O^8e6Y?;q z_-bSrv)i~iIUC_bq*}nHq^B9<8aKASJ}J>3I3Y}o{@{32G8w&&xip?&d^kj|^79yx zxa|0+gUw8${5v51;+mv~ME;ov)8QTP zZ&c+GUo!zOftV0;_k!3&t4?%_k7ycH^n97Y_AyfXLS}q$ zQ|j|`Z(}MneQ&!dXucqCApG$1!7JtsvM*$1nvvSH8h*4$CYA=-DR3;Ddh*wqAE}l>gcbP<-?X5Y{>1_J~hahO^d{f%`6S>;XUzehY8Fr8OgW;Uh za+e^cvNNBvF4M5h^FO4>4-y2)f-6?VzZfn0B0cY|KJheVC~3NBWs=ov1XbsibIu)T z_88c3UG0}3IY#q%K28xIRlf2RR(bHgHaRJ`RPLwEtTc%xn!lRSopFz0P##Grl$LPl z5Wj=7uq{I^IGf>9hgK$1%p`};Q^hIeOb-`fQPIH_{NIHatM*ic9y#Q@5(Nxu8eC8Z zap7;Jx6(~TH&Wva723o+6^ai#ADyjk=~O%DW6pK`oov$hwFo;AVqfQ)p1y6_uj&nt zeWxdIQ*k8d5I^ir#2f?`&q+MA$21pd*;OXjm%?qG3>6{CYnY6XS{FpoZ!=@R|G0D3cTFIWqvjRs?DsDPQoC#pipPa!)&@i^leRUqe@SjI)U$^@LN&F_5DoMXuZfn7As8EkRdTbNQN9 z{JU5DbtBt4+>xbw6lh!Pi_}BHkq{PU1#Tt~j2Qri@-a-ZT( - - + + - - - + android:theme="@style/AppTheme"> + - - - \ No newline at end of file + diff --git a/FridaLoader/app/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java b/FridaLoader/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java similarity index 67% rename from FridaLoader/app/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java rename to FridaLoader/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java index c5f0c17..c765013 100644 --- a/FridaLoader/app/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java +++ b/FridaLoader/src/main/java/com/dns/fridaloader/HttpURLConnectionGetRequest.java @@ -7,7 +7,6 @@ import org.json.JSONObject; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; @@ -18,24 +17,20 @@ class HttpURLConnectionGetRequest extends AsyncTask { String finalURL = ""; String deviceArchitectureType = "x86"; + @Override protected String doInBackground(String... parameters) { try { - URL siteURL = new URL(parameters[0]); - switch(parameters[1].trim()) { - case "x86": - deviceArchitectureType = parameters[1].trim(); + switch (parameters[1].trim()) { + case "x86_64": + deviceArchitectureType = "x86_64" ; break; case "arm64-v8a": deviceArchitectureType = "arm64"; break; - case "x86_64": - deviceArchitectureType = "arm"; - break; case "armeabi-v7a": - deviceArchitectureType = "arm"; - break; case "armeabi": + case "armeabi-v7a": deviceArchitectureType = "arm"; break; default: @@ -45,51 +40,38 @@ protected String doInBackground(String... parameters) { HttpURLConnection httpConn = (HttpURLConnection) siteURL.openConnection(); httpConn.setRequestMethod("GET"); httpConn.connect(); - InputStream inputStream = httpConn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line = bufferedReader.readLine(); - // System.out.println("content="+line); - JSONObject jsonObj = new JSONObject(line); JSONArray jArray = jsonObj.getJSONArray("assets"); - // System.out.println("jArray length="+jArray.length()); - - for (int i=0; i < jArray.length(); i++) - { + for (int i = 0; i < jArray.length(); i++) { try { JSONObject oneObject = jArray.getJSONObject(i); - String oneObjectsItem = oneObject.getString("browser_download_url"); - // if(oneObjectsItem.contains("server") && oneObjectsItem.contains("android-x86.xz")){ - if(oneObjectsItem.contains("server") && oneObjectsItem.contains("android-"+deviceArchitectureType+".xz")){ - // System.out.println("Download Links = "+oneObjectsItem); + String oneObjectsItem = oneObject.getString("browser_download_url"); + if (oneObjectsItem.contains("server") && oneObjectsItem.contains("android-" + deviceArchitectureType + ".xz")) { final Matcher matcher = Pattern.compile("download/").matcher(oneObjectsItem); - if(matcher.find()){ - System.out.println("XXXXMatching is: "+oneObjectsItem.substring(matcher.end()).trim()); + if (matcher.find()) { + System.out.println("XXXXMatching is: " + oneObjectsItem.substring(matcher.end()).trim()); finalURL = oneObjectsItem.substring(matcher.end()).trim(); } } } catch (JSONException e) { - // Oops + e.printStackTrace(); + return "ERROR JSONObject for procedure."; } } - - - } catch (Exception e) { e.printStackTrace(); return "ERROR"; } - // return "SUCCESS"; return finalURL; } @Override - protected void onPostExecute(String result){ + protected void onPostExecute(String result) { super.onPostExecute(result); System.out.println("Request Status: " + result); } - - } diff --git a/FridaLoader/src/main/java/com/dns/fridaloader/MainActivity.java b/FridaLoader/src/main/java/com/dns/fridaloader/MainActivity.java new file mode 100644 index 0000000..22995db --- /dev/null +++ b/FridaLoader/src/main/java/com/dns/fridaloader/MainActivity.java @@ -0,0 +1,316 @@ +package com.dns.fridaloader; + +import android.annotation.SuppressLint; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Environment; +import android.os.SystemClock; +import android.util.Log; +import android.widget.Button; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.crowdfire.cfalertdialog.CFAlertDialog; +import com.downloader.Error; +import com.downloader.OnDownloadListener; +import com.downloader.PRDownloader; +import com.downloader.Status; +import com.muddzdev.styleabletoast.StyleableToast; + +import org.tukaani.xz.XZInputStream; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStreamReader; + +import life.sabujak.roundedbutton.RoundedButton; + +public class MainActivity extends AppCompatActivity { + String receivedData = ""; + int downloadIdOne; + private static String dirPath; + String request_endpoint = "https://api.github.com/repos/frida/frida/releases/latest"; + String URL1 = ""; + String frida_url_prefix = "https://github.com/frida/frida/releases/download/"; + Button performDownloadCancel, performDownload; + RoundedButton reCheckStatusButton; + ProgressBar downloadProgressBar; + TextView textViewActionProgress, fridaStatusTextView; + String command_ls, command_cp, command_chmod, command_launch_frida, command_ps1, command_ps2, command_kill_frida, command_frida_search; + String appDir = Environment.getExternalStorageDirectory().getPath() + "/Android/data/com.dns.fridaloader/files/"; + String temp_data = Environment.getDataDirectory().getPath() + "/local/tmp/"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + if (rootedUsingMagisk()) { + command_ls = "su -c /system/bin/ls"; + command_cp = "su -c /system/bin/cp -rf " + appDir + "frida-server-latest-decompressed " + temp_data + "frida-server-latest"; + command_chmod = "su -c /system/bin/chmod +x " + temp_data + "frida-server-latest"; + command_launch_frida = "su -c " + temp_data + "frida-server-latest &"; + command_ps1 = "su -c /system/bin/ps -A"; + command_ps2 = "su -c /system/bin/ps"; + command_kill_frida = "su -c /system/bin/killall frida-server-latest"; + command_frida_search = "su -c /system/bin/ls " + temp_data + "frida-server-latest"; + } else { + command_ls = "su 0 /system/bin/ls"; + command_cp = "su 0 /system/bin/cp -rf " + appDir + "frida-server-latest-decompressed " + temp_data + "frida-server-latest"; + command_chmod = "su 0 /system/bin/chmod +x " + temp_data + "frida-server-latest"; + command_launch_frida = "su 0 " + temp_data + "frida-server-latest &"; + command_ps1 = "su 0 /system/bin/ps -A"; + command_ps2 = "su 0 /system/bin/ps"; + command_kill_frida = "su 0 /system/bin/killall frida-server-latest"; + command_frida_search = "su 0 /system/bin/ls " + temp_data + "frida-server-latest"; + } + executeCommand(command_ls, true); + dirPath = Util.getRootDirPath(getApplicationContext()); + performDownloadCancel = (Button) findViewById(R.id.button_cancel_frida); + downloadProgressBar = (ProgressBar) findViewById(R.id.progressBarOne); + textViewActionProgress = (TextView) findViewById(R.id.textViewActionProgress); + fridaStatusTextView = (TextView) findViewById(R.id.fridaStatusTextView); + performDownload = (Button) findViewById(R.id.button_download_frida); + reCheckStatusButton = (RoundedButton) findViewById(R.id.reCheckFridaStatus); + performDownload.setOnClickListener(v -> performDownloadAndStartFrida()); + reCheckStatusButton.setOnClickListener(v -> doFridaStuff()); + SystemClock.sleep(2000); + doFridaStuff(); + } + + private void doFridaStuff() { + boolean fridaStatus = checkFridaStatusCode(); + if (fridaStatus) { + //frida already running + fridaAlreadyRunning(); + } else { + //frida not currently running + freshFridaLaunchOptions(); + } + } + + public void setupFridaURL() { + HttpURLConnectionGetRequest requestTypeOne = new HttpURLConnectionGetRequest(); + try { + String archType = execSomeCommandAndGetResponse(); + receivedData = requestTypeOne.execute(request_endpoint, archType).get(); + System.out.println("receivedData = " + receivedData); + if (!receivedData.contains("ERROR")) { + System.out.println("Frida URL found = " + frida_url_prefix.concat(receivedData)); + URL1 = frida_url_prefix.concat(receivedData); + } else { + throw new Exception("ERROR Something Went Wrong while finding latest branch so fallback try later."); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @SuppressLint("SetTextI18n") + private void performDownloadAndStartFrida() { + setupFridaURL(); + if (Status.RUNNING == PRDownloader.getStatus(downloadIdOne)) { + PRDownloader.pause(downloadIdOne); + return; + } + performDownload.setEnabled(false); + downloadProgressBar.setIndeterminate(true); + downloadProgressBar.getIndeterminateDrawable().setColorFilter(Color.BLUE, android.graphics.PorterDuff.Mode.SRC_IN); + if (Status.PAUSED == PRDownloader.getStatus(downloadIdOne)) { + PRDownloader.resume(downloadIdOne); + return; + } + downloadIdOne = PRDownloader.download(URL1, dirPath, "frida-server-latest-xz.xz") + .build() + .setOnStartOrResumeListener(() -> { + reCheckStatusButton.setEnabled(false); + downloadProgressBar.setIndeterminate(false); + performDownload.setEnabled(true); + performDownload.setText("PAUSE PROCESS"); + performDownloadCancel.setEnabled(true); + }) + .setOnPauseListener(() -> performDownload.setText("RESUME PROCESS")) + .setOnCancelListener(() -> { + reCheckStatusButton.setEnabled(true); + performDownload.setText("START PROCESS"); + performDownloadCancel.setEnabled(false); + downloadProgressBar.setProgress(0); + textViewActionProgress.setText(""); + downloadIdOne = 0; + downloadProgressBar.setIndeterminate(false); + }) + .setOnProgressListener(progress -> { + long progressPercent = progress.currentBytes * 100 / progress.totalBytes; + downloadProgressBar.setProgress((int) progressPercent); + textViewActionProgress.setText(Util.getProgressDisplayLine(progress.currentBytes, progress.totalBytes)); + downloadProgressBar.setIndeterminate(false); + }) + .start(new OnDownloadListener() { + @SuppressLint("SetTextI18n") + @Override + public void onDownloadComplete() { + performDownloadCancel.setEnabled(false); + performDownload.setText("DOWNLOAD & RUN AGAIN"); + System.out.println("Now uncompressing"); + try { + FileInputStream fin = new FileInputStream(appDir + "frida-server-latest-xz.xz"); + BufferedInputStream in = new BufferedInputStream(fin); + FileOutputStream out = new FileOutputStream(appDir + "frida-server-latest-decompressed"); + XZInputStream xzIn = new XZInputStream(in); + final byte[] buffer = new byte[8192]; + int n; + while (-1 != (n = xzIn.read(buffer))) { + out.write(buffer, 0, n); + } + xzIn.close(); + fin.close(); + out.close(); + } catch (Exception e) { + Log.e("Decompress", "unzip", e); + } + executeCommand(command_cp, false); + SystemClock.sleep(2000); + executeCommand(command_chmod, true); + SystemClock.sleep(2000); + executeCommand(command_launch_frida, true); + SystemClock.sleep(2000); + fridaStatusTextView.setText("Running"); + fridaStatusTextView.setTextColor(Color.parseColor("#ACF7C1")); + doFridaStuff(); + reCheckStatusButton.setEnabled(true); + } + + @SuppressLint("SetTextI18n") + @Override + public void onError(Error error) { + performDownload.setText("Start"); + StyleableToast.makeText(MainActivity.this, "Something Went Wrong" + " " + "1", Toast.LENGTH_LONG, R.style.red).show(); + textViewActionProgress.setText(""); + downloadProgressBar.setProgress(0); + downloadIdOne = 0; + performDownloadCancel.setEnabled(false); + downloadProgressBar.setIndeterminate(false); + performDownload.setEnabled(true); + reCheckStatusButton.setEnabled(true); + } + }); + } + + private boolean checkFridaStatusCode() { + String status = executeCommand(command_ps1, false); + if (status.contains("frida-server-latest")) { + return true; + } else { + status = executeCommand(command_ps2, false); + return status.contains("frida-server-latest"); + } + } + + private String execSomeCommandAndGetResponse() { + return executeCommand("getprop ro.product.cpu.abi", false); + } + + private boolean rootedUsingMagisk() { + String response = executeCommand("/system/bin/which magisk", false); + return response.contains("magisk"); + } + + @SuppressLint("SetTextI18n") + private void fridaAlreadyRunning() { + System.out.println("FRIDA IS RUNNING"); + fridaStatusTextView.setText("Running"); + fridaStatusTextView.setTextColor(Color.parseColor("#ACF7C1")); + CFAlertDialog.Builder builder = new CFAlertDialog.Builder(this) + .setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) + .setTitle("Frida Status") + .setMessage("Frida Server (frida-server-latest) is already running. How do you want to proceed?") + .addButton("Download & Run Latest Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { + if (checkFridaStatusCode()) { + // sometimes we have to run kill twice for it to work + executeCommand(command_kill_frida, false); + } + if (checkFridaStatusCode()) { + // sometimes we have to run kill twice for it to work + executeCommand(command_kill_frida, false); + } + dialog.dismiss(); + fridaStatusTextView.setText("Terminated"); + performDownloadAndStartFrida(); + SystemClock.sleep(2000); + doFridaStuff(); + }) + .addButton("KILL Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.NEGATIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { + if (checkFridaStatusCode()) { + // sometimes we have to run kill twice for it to work + executeCommand(command_kill_frida, false); + } + dialog.dismiss(); + fridaStatusTextView.setText("Terminated"); + SystemClock.sleep(2000); + doFridaStuff(); + }).addButton("Continue", -1, -1, CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> dialog.dismiss()); + builder.show(); + } + + @SuppressLint("SetTextI18n") + private void freshFridaLaunchOptions() { + fridaStatusTextView.setText("Not Running"); + fridaStatusTextView.setTextColor(Color.parseColor("#A50104")); + CFAlertDialog.Builder builder = new CFAlertDialog.Builder(this) + .setDialogStyle(CFAlertDialog.CFAlertStyle.ALERT) + .setTitle("Frida Status") + .setMessage("Frida Server (frida-server-latest) is current not running. How do you want to proceed?") + .addButton("Install & Run Latest Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.POSITIVE, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { + performDownloadAndStartFrida(); + dialog.dismiss(); + }) + .addButton("Force Start Existing Frida Server", -1, -1, CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> { + String status = executeCommand(command_frida_search, false); + if (!status.contains("frida-server-latest")) { + System.out.println("No such file or directory"); + dialog.dismiss(); + fridaStatusTextView.setText("Server Not Found"); + fridaStatusTextView.setTextColor(Color.parseColor("#A50104")); + StyleableToast.makeText(MainActivity.this, "Server Not Found", Toast.LENGTH_LONG, R.style.red).show(); + } else { + StyleableToast.makeText(MainActivity.this, "Server Found. Starting it now.", Toast.LENGTH_LONG, R.style.green).show(); + executeCommand(command_launch_frida, true); + dialog.dismiss(); + SystemClock.sleep(2000); + fridaStatusTextView.setText("Running"); + fridaStatusTextView.setTextColor(Color.parseColor("#ACF7C1")); + doFridaStuff(); + } + }) + .addButton("Continue", -1, -1, CFAlertDialog.CFAlertActionStyle.DEFAULT, CFAlertDialog.CFAlertActionAlignment.JUSTIFIED, (dialog, which) -> dialog.dismiss()); + builder.show(); + } + + private String executeCommand(String command, boolean standardOutExclude) { + int readData; + char[] buffer; + buffer = new char[4096]; + StringBuilder outputData; + BufferedReader reader; + try { + Process process = Runtime.getRuntime().exec(command); + if (standardOutExclude) { + return ""; + } + reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + outputData = new StringBuilder(); + while ((readData = reader.read(buffer)) > 0) { + outputData.append(buffer, 0, readData); + } + reader.close(); + process.waitFor(); + return outputData.toString(); + } catch (Exception e) { + throw new RuntimeException("ERROR command -> " + e); + } + } +} diff --git a/FridaLoader/app/src/main/java/com/dns/fridaloader/MainApp.java b/FridaLoader/src/main/java/com/dns/fridaloader/MainApp.java similarity index 83% rename from FridaLoader/app/src/main/java/com/dns/fridaloader/MainApp.java rename to FridaLoader/src/main/java/com/dns/fridaloader/MainApp.java index 8adc2cc..77124d5 100644 --- a/FridaLoader/app/src/main/java/com/dns/fridaloader/MainApp.java +++ b/FridaLoader/src/main/java/com/dns/fridaloader/MainApp.java @@ -6,14 +6,10 @@ import com.downloader.PRDownloaderConfig; public class MainApp extends Application { - @Override public void onCreate() { super.onCreate(); - PRDownloaderConfig config = PRDownloaderConfig.newBuilder() - .setDatabaseEnabled(true) - .build(); + PRDownloaderConfig config = PRDownloaderConfig.newBuilder().setDatabaseEnabled(true).build(); PRDownloader.initialize(this, config); } - } diff --git a/FridaLoader/app/src/main/java/com/dns/fridaloader/Util.java b/FridaLoader/src/main/java/com/dns/fridaloader/Util.java similarity index 88% rename from FridaLoader/app/src/main/java/com/dns/fridaloader/Util.java rename to FridaLoader/src/main/java/com/dns/fridaloader/Util.java index dc8d498..8321afc 100644 --- a/FridaLoader/app/src/main/java/com/dns/fridaloader/Util.java +++ b/FridaLoader/src/main/java/com/dns/fridaloader/Util.java @@ -1,23 +1,20 @@ package com.dns.fridaloader; - import android.content.Context; import android.os.Environment; + import androidx.core.content.ContextCompat; import java.io.File; import java.util.Locale; public final class Util { - private Util() { - } public static String getRootDirPath(Context context) { if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { - File file = ContextCompat.getExternalFilesDirs(context.getApplicationContext(), - null)[0]; + File file = ContextCompat.getExternalFilesDirs(context.getApplicationContext(),null)[0]; return file.getAbsolutePath(); } else { return context.getApplicationContext().getFilesDir().getAbsolutePath(); @@ -28,8 +25,7 @@ public static String getProgressDisplayLine(long currentBytes, long totalBytes) return getBytesToMBString(currentBytes) + "/" + getBytesToMBString(totalBytes); } - private static String getBytesToMBString(long bytes){ + private static String getBytesToMBString(long bytes) { return String.format(Locale.ENGLISH, "%.2fMb", bytes / (1024.00 * 1024.00)); } - } diff --git a/FridaLoader/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/FridaLoader/src/main/res/drawable-v24/ic_launcher_foreground.xml similarity index 100% rename from FridaLoader/app/src/main/res/drawable-v24/ic_launcher_foreground.xml rename to FridaLoader/src/main/res/drawable-v24/ic_launcher_foreground.xml diff --git a/FridaLoader/app/src/main/res/drawable/button_states.xml b/FridaLoader/src/main/res/drawable/button_states.xml similarity index 100% rename from FridaLoader/app/src/main/res/drawable/button_states.xml rename to FridaLoader/src/main/res/drawable/button_states.xml diff --git a/FridaLoader/app/src/main/res/drawable/ic_launcher_background.xml b/FridaLoader/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from FridaLoader/app/src/main/res/drawable/ic_launcher_background.xml rename to FridaLoader/src/main/res/drawable/ic_launcher_background.xml diff --git a/FridaLoader/app/src/main/res/layout/activity_main.xml b/FridaLoader/src/main/res/layout/activity_main.xml similarity index 100% rename from FridaLoader/app/src/main/res/layout/activity_main.xml rename to FridaLoader/src/main/res/layout/activity_main.xml diff --git a/FridaLoader/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/FridaLoader/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/FridaLoader/app/src/main/res/mipmap-hdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to FridaLoader/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/FridaLoader/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to FridaLoader/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/FridaLoader/app/src/main/res/mipmap-mdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to FridaLoader/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/FridaLoader/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to FridaLoader/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/FridaLoader/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/FridaLoader/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/FridaLoader/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/FridaLoader/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/FridaLoader/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/FridaLoader/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from FridaLoader/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/FridaLoader/app/src/main/res/values/colors.xml b/FridaLoader/src/main/res/values/colors.xml similarity index 100% rename from FridaLoader/app/src/main/res/values/colors.xml rename to FridaLoader/src/main/res/values/colors.xml diff --git a/FridaLoader/app/src/main/res/values/strings.xml b/FridaLoader/src/main/res/values/strings.xml similarity index 100% rename from FridaLoader/app/src/main/res/values/strings.xml rename to FridaLoader/src/main/res/values/strings.xml diff --git a/FridaLoader/app/src/main/res/values/styles.xml b/FridaLoader/src/main/res/values/styles.xml similarity index 100% rename from FridaLoader/app/src/main/res/values/styles.xml rename to FridaLoader/src/main/res/values/styles.xml diff --git a/FridaLoader/app/src/test/java/com/dns/fridaloader/ExampleUnitTest.java b/FridaLoader/src/test/java/com/dns/fridaloader/ExampleUnitTest.java similarity index 100% rename from FridaLoader/app/src/test/java/com/dns/fridaloader/ExampleUnitTest.java rename to FridaLoader/src/test/java/com/dns/fridaloader/ExampleUnitTest.java diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..9bd85a4 --- /dev/null +++ b/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + google() + gradlePluginPortal() + mavenCentral() + } + dependencies { + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + classpath 'com.android.tools.build:gradle:7.4.2' + } +} +allprojects { + repositories { + google() + gradlePluginPortal() + mavenCentral() + } +} +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gen_keys.bat b/gen_keys.bat new file mode 100644 index 0000000..1481ff7 --- /dev/null +++ b/gen_keys.bat @@ -0,0 +1,3 @@ +@echo off +keytool -genkey -v -keystore FridaLoader/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 +keytool -genkey -v -keystore FridaLoader/release.keystore -storepass android -alias androidreleasekey -keypass android -keyalg RSA -keysize 2048 -validity 10000 \ No newline at end of file diff --git a/FridaLoader/gradle.properties b/gradle.properties similarity index 99% rename from FridaLoader/gradle.properties rename to gradle.properties index d546dea..8de5058 100644 --- a/FridaLoader/gradle.properties +++ b/gradle.properties @@ -13,5 +13,3 @@ org.gradle.jvmargs=-Xmx1536m # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true - - diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..41d9927a4d4fb3f96a785543079b8df6723c946b GIT binary patch literal 59821 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 literal 0 HcmV?d00001 diff --git a/FridaLoader/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 80% rename from FridaLoader/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties index 44f6d27..8049c68 100644 --- a/FridaLoader/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Wed Jun 12 23:26:23 CDT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..1b6c787 --- /dev/null +++ b/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/FridaLoader/gradlew.bat b/gradlew.bat similarity index 66% rename from FridaLoader/gradlew.bat rename to gradlew.bat index e95643d..107acd3 100644 --- a/FridaLoader/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,89 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..6ce5a00 --- /dev/null +++ b/local.properties @@ -0,0 +1,9 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Thu Jan 19 17:25:40 CET 2023 +sdk.dir=C\:\\Users\\msntc\\AppData\\Local\\Android\\Sdk +ndk.dir=C\:\\Users\\msntc\\AppData\\Local\\Android\\Sdk\\ndk\\21.4.7075529 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..9c32357 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':FridaLoader' From c16bf55e4f57070cf81751ee256c8df5a21d57b3 Mon Sep 17 00:00:00 2001 From: Furtif Date: Sun, 5 Mar 2023 21:40:15 +0100 Subject: [PATCH 2/8] update ignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index da88288..6585693 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ +/.idea/ /.gradle/ +/FridaLoader/build/ +/FridaLoader/debug/ +/FridaLoader/release/ From ef5f1eb23c16fc8310195a5313273a6a7c7b09fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?--=3DFurtiF=E2=84=A2=3D--?= Date: Sun, 5 Mar 2023 21:48:44 +0100 Subject: [PATCH 3/8] Delete local.properties --- local.properties | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 local.properties diff --git a/local.properties b/local.properties deleted file mode 100644 index 6ce5a00..0000000 --- a/local.properties +++ /dev/null @@ -1,9 +0,0 @@ -## This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Thu Jan 19 17:25:40 CET 2023 -sdk.dir=C\:\\Users\\msntc\\AppData\\Local\\Android\\Sdk -ndk.dir=C\:\\Users\\msntc\\AppData\\Local\\Android\\Sdk\\ndk\\21.4.7075529 From 0add7dd7ea6d537456d06612fa1c2cefbfa08a5e Mon Sep 17 00:00:00 2001 From: Furtif Date: Sun, 5 Mar 2023 21:49:47 +0100 Subject: [PATCH 4/8] update ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6585693..0277f91 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /FridaLoader/build/ /FridaLoader/debug/ /FridaLoader/release/ +/local.properties From c6d7fbcbb70d9b567e8daa2418c086880069da48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?--=3DFurtiF=E2=84=A2=3D--?= Date: Sun, 5 Mar 2023 21:53:22 +0100 Subject: [PATCH 5/8] Create android.yml --- .github/workflows/android.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/android.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 0000000..e519f16 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,26 @@ +name: Android CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew build From 19672290cf7154905bed0850f13ea538c4b758c7 Mon Sep 17 00:00:00 2001 From: Furtif Date: Sun, 5 Mar 2023 21:58:44 +0100 Subject: [PATCH 6/8] add files --- .github/FUNDING.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..62e7e1d --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms + +custom: ["https://github.com/sponsors/Furtif", "https://www.paypal.com/donate/?hosted_button_id=WXA874KBC7RNN"] +github: [Furtif] From a4d0013fcf6e10c7987dd01d8f296f13353a7d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?--=3DFurtiF=E2=84=A2=3D--?= Date: Sun, 5 Mar 2023 22:01:20 +0100 Subject: [PATCH 7/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f267b9c..5e4a662 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FridaLoader +# FridaLoader [![Android CI](https://github.com/Furtif/FridaLoader/actions/workflows/android.yml/badge.svg)](https://github.com/Furtif/FridaLoader/actions/workflows/android.yml) A quick and dirty Android app to download and launch the latest version of Frida server on Genymotion Emulator and Rooted Android Physical Devices. Auto-downloads the Frida server based off the architecture of the device/emulator. From dd57ef481e1d424243da5b575be3581ab24b9cbc Mon Sep 17 00:00:00 2001 From: Furtif Date: Mon, 6 Mar 2023 02:18:54 +0100 Subject: [PATCH 8/8] update icons ... --- .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 ----- .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 ----- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2963 -> 2286 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4905 -> 4657 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2060 -> 1303 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2783 -> 2656 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4490 -> 2804 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6895 -> 6377 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6387 -> 4382 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10413 -> 10541 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9128 -> 6351 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 15132 -> 15472 bytes 12 files changed, 10 deletions(-) delete mode 100644 FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index eca70cf..0000000 --- a/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cf..0000000 --- a/FridaLoader/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/FridaLoader/src/main/res/mipmap-hdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-hdpi/ic_launcher.png index 898f3ed59ac9f3248734a00e5902736c9367d455..0c82ef48774cd7f77710d4224fab599fae845bac 100644 GIT binary patch delta 2275 zcmV<92psp57w!>|BYz0BNklpyr&g8xO?z{K*?)~oX`|iy>_kV~cnrNblCYorXi6)w8 zqTN{ou<6>hYZ>tj)(3vS2FyBNf;dM8zh47ptnvsij5ow5LFTL+!L=wMJ_*WQnSwS) zi{N?`5T67oC;S@aZ|*@b5a@C}Wc zK~0(>C?9IP&!f`UCL0JZNpWDk$F%#3w=RZ9W)w9Dwv&V>smeaxRRi zpTc3NLP^TsQU7%g0FUu%n{`?ki?g?Mp||s%T|AU~z zS3*KlDMSK;Z1_{qJoyp|S8s!y9CrAUI_v;iriN$aF!V1GF(Bx(<*px816hlY#O<&4Y+Ekg!$wJ zRDN_6ReyVqz;fy<_{iyo%K2KHsQUCc6f|Y{1oQ^u-eYJ`IQs%LAyE;eS#t(;PK*WwhqPX-+}y*nSu@}M$LfkSARh9tEp%v#~c1^{dpN= z-+e;xOn=Z^cDZZ&NIG;1(ZMIk=W;{8@jWPh@_($Lp&{gqUBFETKdn{)La;rE7IMn9 zC(gsP^B|<7`aX&nWWy7oTk;wV9~>lkunLk9Q=$C%oGx0*PwgxD(+-rUegboL-ry3{ zTw;LsnPfr3BO!182DFf$F#YW?l)reM9Q9a1nOlMUhtHsxrcrJBe{W1#KlvehQ5j6> zr+;C)sDyF%5lA0<0r@MpqF~+IaOe%8HV+;_?GzT|KL0yT-0?dR5f4m6&X{?S-j^V} z*9XXdlmzQn3S1*!$J*hs+2L+(LDeNWoYfXImzt10aS_^>sDOxSI@Q*q;1hvx_ zWBMi3@xtU3m`{I=?9L@xG2&^+3H;9Wh<~Bup&C0M+QenZesngnX{u-vmqJD(hF?}r zT1o%vUt!6-0M(qesMvKFZB7@8X)4KnFbz`DPX#Z(!A<4xk2+`sHED{W{Ml?y)EVDP zeziwW!AW1=Q(cGV+!8eBm%{k*F@IX+ zrgNiIHF*gt|M5BMj-N%vyB|aO*j!{${gNSLQM~qTjtqZ`3-#xus6LRvA31|Z5R16k z)MDgVPhLbvumgT~D+(5Ef^P99cxvjn##l(i710+}&`98u!hy(SO1e>7%swK7_p#P#WIf z4>$RMP-6mKFHCF{Me;dxt#re7_`1mf`JHaG6qdt9%XJ`3JMp1RSOEPise&{~4~Q;7 zj)GFCCM`zgo}=W4x)ozLkWJGdk+%*ZEcWzXQF@{hO%wD1?2|`(IbeK&kPTR5D{J)5l)KQ`NZ7S1hL8^ zys%reP~gZXCWJy#zfsN{c8Ay@$V~!{PfQ3*<2Z7KtJfePb_ilhJF7F{280ga~)L+CFL2Shn5EBNLdp3{~chy+9JQDx;C?K{7 zYN8RM`0)$@F??{5{m3M!pI!m&oORGVw}$(zCe5W9w*bn~^Ej~IY6?VEQ4Sr?96yI9bs<{o?SgiMA+`weH9Mi3w?RNiG$6Tm9F#wuiGRGLm8jg8-klJQ zErJ;A+4+!mBN(Fz8I4?))Nk)9Ct{Bv7O$~rTRPa^!T>96lM_1TlCi@@Cu1 zcY-7~^~{+U&~ZIxi%o(UIFeSs$tAP+orpHn6BomIJ&_-~1TnD4+a^&XZ}wWqzkll) zM;7!d$)~6%EkXXQHGe32X*2X2wxjH=k6_xKhO#$4M9G@BprzGK_F&`$o&L4=W1pZ9 z+8Uc+&r+dm>n><#yo{{jiCvQTStKHrkH3hb_`3SZ#c=|GF8J%t5bV~6bI8$ zo?0uaKRXG@140EaA2ox0p!gt&57s$9tv0SE2fQvff}M%D+kZvPvD1)$@8%wV2s z+3N%ZRqp@S-AfSLInfaz>?9h$<1Fx1jhT<4rJG@(_^VLXB39?Hx+>R>0)3*w?(P&OT!|IA{g4j_zXL%)T=cK4PdJ4vUU*O7t z6R>3d4-FR-Tr}>~o4D;GkHrReWi5B;N|mtiW@krCg^l7n4@rfZFVCQ8`Rmt@&~&5H zkJS!6g&S(tS>{KE-0TDk2c#tMlz)%R;(UoVaVfOZehbYLzv()1 zhK`4kgkgBS?C4FSRD+6l_Cmo9MXZE?ayg3%YbTx=5Lx?F?C z9NmqbSX@5X7iQX}QL07tp-dE!LslmxBYX6V$eFwt`i-fyluNin6Z~iUh}a}3h9DBu x3!+C5#DAz0O*GL&6HPSHL=#Ok(L@^v`#&h26`}RFAr1fl002ovPDHLkV1jqYR(Jpa delta 2958 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 literal 4905 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 diff --git a/FridaLoader/src/main/res/mipmap-mdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-mdpi/ic_launcher_round.png index dae5e082342fcdeee5db8a6e0b27028e2d2808f5..5d221d1662816ba26ac6b1205ab031f07b591e77 100644 GIT binary patch delta 2647 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 FV1g9KBt!rJ delta 2775 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 diff --git a/FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher.png index e5ed46597ea8447d91ab1786a34e30f1c26b18bd..3bf58ad183ae13acfae9f6c023f46f23a89fb7d1 100644 GIT binary patch delta 2797 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 literal 4490 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 diff --git a/FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 14ed0af35023e4f1901cf03487b6c524257b8483..d89a0bae82e503f2eb2def196b17cd8577922b2d 100644 GIT binary patch literal 6377 zcmV5nY~ZWJMS;~ zOX?CLa$&TQIKK{P*SV^VRc?iZqB;P8;?7Um^v)Rg%@VHp2N_dqx*V zFGhdH0114?F`R3!-lvJa4*F|^*z`~vGWh$2j2jt`Gv+haF+3R2jC4jJqm)rDfzLRW zCa=M@xCi&543u@DQU{FQs1ep`#jN4{y*uMc#&X6%#&HInK7HDX>gsBTp}$X-6)ww0 z9o?0>MMuydJ10dp)Ji;mzJ&2N#?OpwJ>fbss~D$rz;{3u?YMfa!6>pW)QP$;v8UfT zBWlC=b03B)Bi@8`J;A5-1U3*T1EQ5Hj_Zs89iU4ed-}FoA?asz-}^GYViak_OM*^H zlA40>x}X^Zb&C3=A)pg<>#Nh(5T9C&D8zSSEMyexh}YajOOS34sN3qQq#>XqbnRr; z7N-~V7)D#&_oo=iI^qq!*-4;v2+a`C`DtA{kiI(iXdpRLm7lvZHtC4h+>F|AX9EPf zLUjn*&{eic%(QJ=?IfZRFF#M9ntWYrl;~Nl4EoW4`NagYwmOB7&PTG+3!t&C*Pl%v z-&lwQLCcs{2*V0K=_7s1oa{*dg(5@3FPW>7b&u;ss(u!4I*KL4$jFf^o~Ki#)<_?^3hXHn<#&- z0BsYop`xN9Bt1R7v!06<6RpC$ygc;$An6~^8JANR&{i0stgI}U-O*)wPMTe`3_$w) zJ-VK6P_(&_n_!`nCr=uVw|TfrRBhQ{aRdhT|I4bkg4OCOF45oUX=b z%*x7g)pOM3qD6Zq|3Ut&DREY^oz&kv$g|xLI`qYA!#ThXS+$;1kJoliDX$uxvAn#T zEEdZndajyGv;b3DTH2K>OFP>^w>T?@JT4weo*izbgcTbN=j{=u9&f61{1-!kii(QT zgM)*6>N#t)P|e~R{F@8cvk|?&N*8ohg<1;1lU^31z_a}jikR~WRU9uhT+@=MmhpgH z(N^Y4Je47NYn*77|opg$Wr0PPNx(#|)R8UZmyldC4EA$*TNaW2f-1|S4uE)BLZ&G=)p(L+>azdjh zHzJlwOG>QAPo6kIL4SMI)(F7mBPn#sTNLnkjhphiaXf`he}`SwVv3&o8O1LAj#B^h zqKeWoLtPDp#tR#us19uHJfOcbXad96mv`|YsRRc6vj{;Kn`I7&=)5(K- zwnnbUCBw*X%oK`Q^c`hK#?p!M3JRV+&u9ck(DN=zTKB7=-iAQOf!IjkQBdUL<8vc8 z^pcBr^%Cj7TsX&Fs`h@>0ID*L1$uV)?1du08c0*%GjtL~zWFKbyZK?mIfu~xR?0pQ zWzeC%&~wAkM!|A$SnpV%-M|sOH~0K}wfCzAXlf%QZrVkmlV?-JKi;RHi7$~ykGqV- zH5NRQf*yZ`LSJ~7vV#vAbf_;BZp7RmKR>^KW5EsJ^1y)uj?WD=-(OKtAvRaQyuO0w zHh_xCiV8~Ewuih2HL#bPAaTuBoAwlE=Thn}4~kv9f}&nuMA2_8q2%@3siNe#K_4@y z{D3xOVlgo>pMXn;V*$yv3@tPd@}jpHHE@nc#kZbey2+I?drW{g~jA|-}44C8-fEf=TrQb>nZ%@kI4Jh$3zCD zUITa!d6X*4$_=`xFyTjVmYJCu=j!UJEnC;UPNez%l9H0gWbX$I+ls0JwE@{i;_A)h zH}*N3+}!{^=Y7)z@*MRf`9AeJ6{HbD2%rl^iW~KkC+!Qj}#IT z@(ehwGZxU9*;^ZSKR?OdZ@QtbDqsf843l^md-lE8&?qy6zV>fJ87ht!AESg_?lnsh zCS^1R9?(-A4gKyDNr9?I3A?Pw`Ts{z3zkxGa;kwJiBnjpOGrrA!kmgHvL(Ofq74!D zTiy8Pqh`U^Q3JqT1W$U!(8#(F|J??gI`R(1Q_PZ;6!hr7$m7~^?{+Dt%{lqBM^w!#zZAqbwgNG<|)`#MFtfb(^xXvTthZ{k0hYJtSb_i-tzm3p{f*9BV=Zav;x( zs_F51-OGyDy@f|m{Eod;!kqwZDNL}C=M^IoA!n)?|#bZA?yIJBV#i2dw)o5o@m8!%x8g|UBEi8!mc@(xP=<##KYAU9^&I!fW$ zcS(8{1w8i_9hfnnyn5EmK`V{;5c8QCN z>(4h7>2EfJssNB5n@FCWMpzr^H|81PBXNDyJD;Cv{N*Dl_`Vm&v-9mnV(J5)#rh6= zoT51xVm2JWX{_If$rSw9%M|;`a`K&QvQDJH=hjK&j}d#>aN5^vEF~_l*C@4jfCaZAJ6{g@uLh!u{aJYC8cKP!%}BK~rl)^qfzHL9}yG^Zp}_2Ty#7CpBf( z`vV@DN&Bb2L;jD=GLmeDtH#jbrR%8N&gRRB%1SYb3m7}K=6W`25SN|d8)CRtL-eOB ztmS*(Fy1ufbOb6tIv@~>S#fA+=t6L8hy!#cKfQn>_G){xUwZ~9=jpol4G)S&gud)* zP|ll&dEmn@8g{J;(laQBU6k4j%@D{V2OBJE-FjfzAZg83Iy`?VC9o?gO5*&y%Kr60 zab~vFSeEU3Yc0PvsQl=GC29oXsHmt7%&~aPUGi-;fHpMyKFQ_#@4xTLDX7I!0~|}s6jSwp2mZk` z-y(xjbs;|~#YngUpV3bl?sG<{{HO*%AWlzDPn|t`_BG(zCJtx@*uH&xU%ob5-c+p? zq(>=FR05~HP4QpYYy?Zd< zP@>(W7Niu~Xr!&%ZXjHRJI^1=kJm4@oDHb_C|qfivEyuj5%vsl{;plSZmw=Y16Vfy zX&~GTM|SKp-0N&m`BAvC8sN(>zq}n>n;Ky2)~y4o9CSgd0u8}Y?_dMjX28C1Q`OmA zQ29}~vbvxpOO_0?Yk-w2S6X)fy9Ss$cWzIf2ON<%)tQDi7MKShjWrN%0{<~n#4|u@8O{QgAB8KCh8{U`B$ek{ z{lK-C{#hZanTWL+FknDuo(b1$BGyWy&+4c}TVI~z>(hOxd15|z#2rd&76A$(7 z-MbsORwrU&ADD4zadEL*eU~B{gCh<`>T0tT;lc+nBrfJa zv9=`*fE3fS>u4j<4#Mr?q2$(m47vBYhxYa!E4DOuUpkcBO|I48&T(f?$6@5b^}6@H zr)E#!zUL`y>RhouY}xP|<;29-%RnkWdY-h!xZvR6P0aBn;97S2Ga@$$+Ve2^KrTmP zDca%X=*A%8^+g7foC0jrh*v(QtOJpCwpryz#}k&LPnYt@<9QYy*llmRAtMi7BDJcnUX#-#>+vk=?jg59T@Mt*v=}LqCDnEJy;BRzvbR=`z1034~V7>4( z`G5FNr_|Kc6%BnVqA@7otj6=|W_S|184$a4osI4)KN^_F>I%-(JUl$G8`ep3Y%YKP z`6o_Z?C$P9O&14D1F=e8Qz17ZhP>+9q;Ue^(Z~$lJ83FEk|Xh8RzX1ltyr<*6>z(D z?b?e}-mM}h2koXznQ~Kkd3l;Fq*^VwISl|{hbr*?7YvPdHsGww=ob8wXWStp4U0HR8b$`H7Aej?28R zq{TWt`|PuK@KDN8M}ewfYk_6k9`YG6*+8NP2kd~c&r$5cZz(G@Qez{`ucu>7msTOLF+UCM)5(s{B1&@ zDSD5i&}ZMGn16pmk#8*K7-0WV`V8-2o8FIww~ZS&ehcm-hxP0In()v;Ea=P`(ZKZd z^f+0Gm=~xGbauojFOD=7@De#*sg)hG3U#sDPVCjI7baev9m@S{5f>gtuwai>t5(fA zeq8)h3o#PZ20AkeEotOYOBT}@M1S;^R*$yvPD_?7c@vy5`Imx2h0}V=1wDKA#5P)A zPD{7J6=8=*ZKN|J%~_D$dQLQzz|j z8-kdGRlgWt4(HL3?p3ppb}T!W64z`Yf4oHQ$RjcmUVZMR{KM7_8o@<)czDX7L4!tu ztFdFp)<5&9McRxWJsSVe;F`sY7f;k|s~?LO0>hqt+wR+zm`ST~4BxZEqAC2P56Pp;9fo_X!0yL@_aZowT%CF9p^2pJ;K75t@ZWyF{`%`@g@uLU7sXkLCN)CJ_I>1e&E2B0 z?w5}wFDBQU(?;(B6UeR8a3dl0M8Lx{OVMisBR?xEi`J}JvlQG&j*L5AO&~7p*V=XH&;if2+~Dr+z6md$A?;#Cn&h`bW0!9b zFMI5N;a$q~KOi0-(VxeY1z1cw^2;9-$>iW^hPpa^zF6gSb939@u3fv~;6QRA-m|u0su@K* zK_LUqwTvNNUS4imV1}Yd0o4YyR-i3fz=hBM{rBJDcJP?_wYs3&V&rRr3NIWua3KD} z5dI6@&8*nw?CfkUJ34hP7(uoH5m(G|H*emIfQz3T=p);X<(d{JUlU;j4n7!y7zu;c zty}jwPu5OiH4(GJYBoH=ta$r^w*qOEANY`as4 zFhZwJojUer;moP!#-lR6zSs;5oetuYt+Vu2v+O}=mZ`WOS z9d@;DMB6T7L0e^;ol2k((y$JF`}Vz>|6a!!yl~;dIR_3Lh(qv#AJt__h9@n~7N84s zf^O*b(3N|AysNA0TWAB?BHPqKw$bUx*9#^h7hQYpwOzY(>C%@!-_*Ht=iAq>U;p)? zLx-}lSph?^h+zCUz>j?h)=+^UIJ1^yF5xdVKv z%$DGq1~3UX_wV2T?ga}L%-OPK%TIxUfnj*6fG2fggB!gSYdj!P8!2XjbGQas7k;4% zK0P-#w>mK~F*hhEC=6wz4%CG@Q8#peF4E6~c<9(_e0@ViGempj(~O>+TWh0YAc$ey zcK`kNPvrT;>{Y8)eX(=r&R@J(LPJ9jvae2xi;K%hPEO8AO-;=Q@R<#kfpfUV+uPgg zx8Hu-#IEIw_uqg2HI#)iCF%IJlK!X@b<3O{OUUOu@v3MsLcEgzpNpV}XHxk)US`J6 zzJsj6Sarp!Bisd_A2V#&u=~c18#j^VQ2?KDjL+SPYvi?9E`U!*87QkC%0?a1zhlb~ zb+>vS-&jH8(evPQK}ZMgot^MPGjeaZ2RTAu7`QBq6c7sFp;ry~j&r!CFYdv;vW#vh z6J^UfP#5a_e@(nS(HjJ7E$tW`Fw4f12Hm@Nze2{4ZhGJt&fywdi+kj~DB~}}8zCS~ rGYTMn*W$byQuWY|Yu9P_Iko&3pEaFt^*AC^00000NkvXXu0mjf8+2mT literal 6895 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 diff --git a/FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher.png index b0907cac3bfd8fbfdc46e1108247f0a1055387ec..6f993f968cb4ec643d5b4afdeb8006dedc0528ea 100644 GIT binary patch literal 4382 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 diff --git a/FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index d8ae03154975f397f8ed1b84f2d4bf9783ecfa26..5700aed9c4fb69978570ae26c63f1d29e747e637 100644 GIT binary patch literal 10541 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 literal 10413 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 XdJ+W}DiIkV00000NkvXXu0mjfKBlg6 diff --git a/FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 2c18de9e66108411737e910f5c1972476f03ddbf..b14da5eaa577e2f7e4f48e033567d2b1c25d89e3 100644 GIT binary patch literal 6351 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 I20H400LcNok^lez diff --git a/FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/FridaLoader/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index beed3cdd2c32af5114a7dc70b9ef5b698eb8797e..dd58348b2c4c5efd9d216ec6a21fc33005663bd7 100644 GIT binary patch literal 15472 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