2828 stop_httptools ,
2929)
3030from mobsf .MobSF .utils import (
31+ cmd_injection_check ,
3132 is_md5 ,
3233 python_list ,
3334)
5051@permission_required (Permissions .SCAN )
5152@require_http_methods (['POST' ])
5253def start_activity (request , api = False ):
53- """Lunch a specific activity."""
54+ """Launch a specific activity."""
5455 try :
5556 env = Environment ()
5657 activity = request .POST ['activity' ]
@@ -77,6 +78,31 @@ def start_activity(request, api=False):
7778 data = {'status' : 'failed' , 'message' : str (exp )}
7879 return send_response (data , api )
7980
81+ # AJAX
82+
83+
84+ @login_required
85+ @permission_required (Permissions .SCAN )
86+ @require_http_methods (['POST' ])
87+ def start_deeplink (request , api = False ):
88+ """Launch a specific deeplink."""
89+ try :
90+ env = Environment ()
91+ url = request .POST ['url' ]
92+ md5_hash = request .POST ['hash' ]
93+
94+ valid_md5 = is_md5 (md5_hash )
95+ if cmd_injection_check (url ) or not valid_md5 :
96+ return invalid_params (api )
97+ env .adb_command (
98+ ['am' , 'start' , '-a' ,
99+ 'android.intent.action.VIEW' ,
100+ '-d' , url ], True )
101+ data = {'status' : 'ok' }
102+ except Exception as exp :
103+ logger .exception ('Start Activity' )
104+ data = {'status' : 'failed' , 'message' : str (exp )}
105+ return send_response (data , api )
80106
81107# AJAX
82108
0 commit comments