Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
import os
|
2 |
import subprocess
|
3 |
import tempfile
|
4 |
-
import tarfile
|
5 |
from androguard.misc import AnalyzeAPK
|
6 |
from transformers import pipeline
|
7 |
from sentence_transformers import SentenceTransformer, util
|
@@ -11,23 +10,20 @@ import gradio as gr
|
|
11 |
apk_context = {"smali": {}, "java": {}, "info": ""}
|
12 |
|
13 |
def extract_and_set_java():
|
14 |
-
"""
|
15 |
-
|
16 |
-
extraction_dir = "/tmp/jdk-11" # Diretório temporário para extração
|
17 |
|
18 |
-
if not os.path.exists(
|
19 |
-
|
20 |
-
with tarfile.open(jdk_tar_path, "r:gz") as tar:
|
21 |
-
tar.extractall(path=extraction_dir)
|
22 |
-
print(f"JDK extraído para {extraction_dir}")
|
23 |
|
24 |
# Configura a variável de ambiente JAVA_HOME
|
25 |
-
java_home = os.path.
|
26 |
os.environ["JAVA_HOME"] = java_home
|
27 |
os.environ["PATH"] = f"{os.path.join(java_home, 'bin')}:{os.environ['PATH']}"
|
|
|
28 |
|
29 |
def check_java():
|
30 |
-
"""Função para verificar se o Java está
|
31 |
try:
|
32 |
result = subprocess.run(["java", "-version"], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
33 |
print("Java está disponível:", result.stderr.decode()) # Exibe informações sobre a versão do Java
|
@@ -37,11 +33,11 @@ def check_java():
|
|
37 |
raise EnvironmentError(f"Erro inesperado ao verificar a instalação do Java: {str(e)}")
|
38 |
|
39 |
def install_tools():
|
40 |
-
"""
|
41 |
baksmali_path = "/usr/local/bin/baksmali.jar"
|
42 |
jadx_path = "/usr/local/bin/jadx/bin/jadx"
|
43 |
|
44 |
-
# Configura e verifica
|
45 |
extract_and_set_java()
|
46 |
check_java()
|
47 |
|
@@ -85,7 +81,7 @@ def decompile_apk(apk_file):
|
|
85 |
if apk_file is None:
|
86 |
return "Nenhum arquivo enviado. Por favor, envie um arquivo APK."
|
87 |
|
88 |
-
temp_apk_path = apk_file.name
|
89 |
output_dir = tempfile.mkdtemp()
|
90 |
try:
|
91 |
# Decompilar usando o Baksmali
|
|
|
1 |
import os
|
2 |
import subprocess
|
3 |
import tempfile
|
|
|
4 |
from androguard.misc import AnalyzeAPK
|
5 |
from transformers import pipeline
|
6 |
from sentence_transformers import SentenceTransformer, util
|
|
|
10 |
apk_context = {"smali": {}, "java": {}, "info": ""}
|
11 |
|
12 |
def extract_and_set_java():
|
13 |
+
"""Configura as variáveis de ambiente para o JDK especificado."""
|
14 |
+
jdk_path = "jdk-11.0.1" # Nome do diretório do JDK
|
|
|
15 |
|
16 |
+
if not os.path.exists(jdk_path):
|
17 |
+
raise FileNotFoundError(f"O JDK '{jdk_path}' não foi encontrado. Certifique-se de que ele está presente no caminho correto.")
|
|
|
|
|
|
|
18 |
|
19 |
# Configura a variável de ambiente JAVA_HOME
|
20 |
+
java_home = os.path.abspath(jdk_path)
|
21 |
os.environ["JAVA_HOME"] = java_home
|
22 |
os.environ["PATH"] = f"{os.path.join(java_home, 'bin')}:{os.environ['PATH']}"
|
23 |
+
print(f"JAVA_HOME configurado para {java_home}")
|
24 |
|
25 |
def check_java():
|
26 |
+
"""Função para verificar se o Java está instalado e acessível."""
|
27 |
try:
|
28 |
result = subprocess.run(["java", "-version"], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
29 |
print("Java está disponível:", result.stderr.decode()) # Exibe informações sobre a versão do Java
|
|
|
33 |
raise EnvironmentError(f"Erro inesperado ao verificar a instalação do Java: {str(e)}")
|
34 |
|
35 |
def install_tools():
|
36 |
+
"""Instalar ferramentas como Baksmali e JADX."""
|
37 |
baksmali_path = "/usr/local/bin/baksmali.jar"
|
38 |
jadx_path = "/usr/local/bin/jadx/bin/jadx"
|
39 |
|
40 |
+
# Configura e verifica o Java
|
41 |
extract_and_set_java()
|
42 |
check_java()
|
43 |
|
|
|
81 |
if apk_file is None:
|
82 |
return "Nenhum arquivo enviado. Por favor, envie um arquivo APK."
|
83 |
|
84 |
+
temp_apk_path = apk_file.name
|
85 |
output_dir = tempfile.mkdtemp()
|
86 |
try:
|
87 |
# Decompilar usando o Baksmali
|