AndroidFridaManager 1.8.2__py3-none-any.whl → 1.8.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,22 +91,54 @@ class FridaManager():
91
91
  else:
92
92
  command = "adb shell su 0 "+ cmd
93
93
 
94
- subprocess.Popen(command, shell=True)
94
+ try:
95
+ process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
96
+ # Give it a moment to start and potentially fail
97
+ import time
98
+ time.sleep(1)
99
+
100
+ # Check if process failed immediately
101
+ if process.poll() is not None:
102
+ stdout, stderr = process.communicate()
103
+ if "Address already in use" in stderr.decode():
104
+ print("[*] frida-server is already running on the device")
105
+ return
106
+ else:
107
+ self.logger.error(f"Failed to start frida-server: {stderr.decode()}")
108
+ raise RuntimeError(f"Failed to start frida-server: {stderr.decode()}")
109
+ else:
110
+ # Process is still running (background), which is expected for frida-server
111
+ if self.verbose:
112
+ self.logger.info("[*] frida-server started successfully in background")
113
+ except Exception as e:
114
+ self.logger.error(f"Error starting frida-server: {e}")
115
+ raise
95
116
 
96
117
 
97
118
  def is_frida_server_running(self):
98
119
  """
99
120
  Checks if on the connected device a frida server is running.
100
- The test is done by the Android system command pidof and is looking for the string frida-server.
121
+ The test is done by trying multiple methods to detect the frida-server process.
101
122
 
102
123
  :return: True if a frida-server is running otherwise False.
103
124
  :rtype: bool
104
125
  """
105
- result = self.run_adb_command_as_root("/system/bin/pidof frida-server")
106
- if len(result.stdout) > 1:
126
+ # Try pidof first (most reliable if available)
127
+ result = self.run_adb_command_as_root("pidof frida-server")
128
+ if result.stdout.strip():
107
129
  return True
108
- else:
109
- return False
130
+
131
+ # Fallback to ps grep if pidof doesn't work
132
+ result = self.run_adb_command_as_root("ps | grep frida-server | grep -v grep")
133
+ if result.stdout.strip():
134
+ return True
135
+
136
+ # Try alternative ps command format
137
+ result = self.run_adb_command_as_root("ps -A | grep frida-server | grep -v grep")
138
+ if result.stdout.strip():
139
+ return True
140
+
141
+ return False
110
142
 
111
143
 
112
144
  def stop_frida_server(self):
@@ -2,4 +2,4 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  __author__ = "Daniel Baier"
5
- __version__ = "1.8.2"
5
+ __version__ = "1.8.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AndroidFridaManager
3
- Version: 1.8.2
3
+ Version: 1.8.4
4
4
  Summary: A python API in order to install and run the frida-server on an Android device.
5
5
  Home-page: https://github.com/fkie-cad/AndroidFridaManager
6
6
  Author: Daniel Baier
@@ -33,7 +33,7 @@ Dynamic: requires-dist
33
33
  Dynamic: requires-python
34
34
  Dynamic: summary
35
35
 
36
- [![PyPI version](https://badge.fury.io/py/AndroidFridaManager.svg)](https://badge.fury.io/py/AndroidFridaManager)
36
+ ![version](https://img.shields.io/badge/version-1.8.4-blue) [![PyPI version](https://badge.fury.io/py/AndroidFridaManager.svg)](https://badge.fury.io/py/AndroidFridaManager) [![Publish status](https://github.com/fkie-cad/friTap/actions/workflows/publish.yml/badge.svg?branch=main)](https://github.com/fkie-cad/AndroidFridaManager/actions/workflows/publish-to-pypi.yml)
37
37
 
38
38
  # AndroidFridaManager
39
39
 
@@ -0,0 +1,11 @@
1
+ AndroidFridaManager/FridaManager.py,sha256=0ol-mExwOcHOYONxACGEX7LvJ6f68DHjOjjSUKSYwwY,15343
2
+ AndroidFridaManager/__init__.py,sha256=T6AKtrGSLQ9M5bJoWDQcsRTJbSEbksdgrx3AAAdozRI,171
3
+ AndroidFridaManager/about.py,sha256=uhjNDFPDWG6c_3FUTLH_ag5B8M28q0Gy0A4PRQvwlVU,98
4
+ AndroidFridaManager/job.py,sha256=QTSNjdV7XqawSTV19HQt53aiwoT3UaQeQw2K4AWPxY8,3265
5
+ AndroidFridaManager/job_manager.py,sha256=icdNlfqorEM3XVw4h_83IcoupEFDlkzb29VhEZ6dxrQ,12294
6
+ androidfridamanager-1.8.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
7
+ androidfridamanager-1.8.4.dist-info/METADATA,sha256=bg4tU3Jv-PFVo3AxTg4J6Ox7-3H-dpoHazfNJl1u7hU,5141
8
+ androidfridamanager-1.8.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
+ androidfridamanager-1.8.4.dist-info/entry_points.txt,sha256=GmNngu2fDNCxUcquFRegBa7GWknPKG1jsM4lvWeyKnY,64
10
+ androidfridamanager-1.8.4.dist-info/top_level.txt,sha256=oH2lVMSRlghmt-_tVrOEUqvY462P9hd5Ktgp5-1qF3o,20
11
+ androidfridamanager-1.8.4.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- AndroidFridaManager/FridaManager.py,sha256=tuDTZQ9maNBkobw2-qJtWPM3bhUQZH7eKPXG5XAKPks,13837
2
- AndroidFridaManager/__init__.py,sha256=T6AKtrGSLQ9M5bJoWDQcsRTJbSEbksdgrx3AAAdozRI,171
3
- AndroidFridaManager/about.py,sha256=z1dlTh519qWYEK_J_iuyx6_2eEzRI_pdKsVpVgi_DLA,98
4
- AndroidFridaManager/job.py,sha256=QTSNjdV7XqawSTV19HQt53aiwoT3UaQeQw2K4AWPxY8,3265
5
- AndroidFridaManager/job_manager.py,sha256=icdNlfqorEM3XVw4h_83IcoupEFDlkzb29VhEZ6dxrQ,12294
6
- androidfridamanager-1.8.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
7
- androidfridamanager-1.8.2.dist-info/METADATA,sha256=serVQrmt0u7xH5F8wYqBQ1NOMMRqT4g_cvn5vnxT8mc,4886
8
- androidfridamanager-1.8.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- androidfridamanager-1.8.2.dist-info/entry_points.txt,sha256=GmNngu2fDNCxUcquFRegBa7GWknPKG1jsM4lvWeyKnY,64
10
- androidfridamanager-1.8.2.dist-info/top_level.txt,sha256=oH2lVMSRlghmt-_tVrOEUqvY462P9hd5Ktgp5-1qF3o,20
11
- androidfridamanager-1.8.2.dist-info/RECORD,,