nsv2042 commited on
Commit
996c621
1 Parent(s): b83158c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -14
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
- """Extrai o JDK compactado e configura as variáveis de ambiente para o Java."""
15
- jdk_tar_path = "jdk-11.0.1.tar.gz" # Nome do arquivo compactado do JDK
16
- extraction_dir = "/tmp/jdk-11" # Diretório temporário para extração
17
 
18
- if not os.path.exists(extraction_dir):
19
- os.makedirs(extraction_dir)
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.join(extraction_dir, "jdk-11.0.1")
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á configurado e acessível."""
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
- """Instala ferramentas como Baksmali e JADX."""
41
  baksmali_path = "/usr/local/bin/baksmali.jar"
42
  jadx_path = "/usr/local/bin/jadx/bin/jadx"
43
 
44
- # Configura e verifica a presença do Java
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 # Usar o caminho do arquivo diretamente
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