def download(message): global downloader global getlist global logger package_list = message['list'] for package_name in message['list']: asset = Assets() info = getlist.result[package_name] if not asset.exist(package_name): asset.add(package_name, info['title'], int(info['popular'].replace(",", "")), info['category']) asset.close() else: ass = asset.get(package_name) if ass['popular'] < int(info['popular'].replace(",", "")): asset.update_asset(package_name, ['title', 'popular', 'category'], [ info['title'], int(info['popular'].replace(",", "")), info['category'], package_name ]) try: logger.start() socketio.start_background_task(target=downloader.download_packages, package_list=package_list, logger=logger.logger) for a in logger.loggenerator(): data = json.loads(a) if data['step'] == "complete": time.sleep(1) logger.stop() socketio.emit("download_step", data, namespace="/apk_download") except Exception as e: print(e) logger.stop()
def is_AWSSDK(self, pkgid): asset = Assets() apkfinal_path = os.path.join("./apk/") + pkgid + '.apk' if re.search(b'(?i)aws-android-sdk', open(apkfinal_path,"rb").read()): if asset.exist(pkgid) == False: asset.add(pkgid, "", 0, "") asset.exist_sdk(pkgid, True) return True
class getInstalledApps: def __init__(self): self.client = AdbClient(host="127.0.0.1", port=5037) self.adb_device = self.client.devices()[0] self.applist = [] self.apppath = [] self.asset = Assets() def get_Applist(self): self.ltemp = self.adb_device.shell("pm list packages ") # if search_keword is none, print all lists out. temp = self.ltemp.split("\n") del temp[len(temp)-1] self.applist = [x.split(":")[1] for x in temp] #print (self.applist) return self.applist def get_Path(self, pkgid): path_temp = self.adb_device.shell("pm path " + pkgid) path = path_temp.split(":")[1].strip() return path def get_app(self, pkgid): path = self.get_Path(pkgid) tmp_path = os.path.join("./tmp/") + pkgid + '.apk' data = self.adb_device.pull(path, tmp_path) if self.asset.exist(pkgid) == False: self.asset.add(pkgid, "", 0, "") def get_SDKApps(self, pkgid): apkpath = str(self.get_Path(pkgid)) apkfinal_path = str("tmp/" + pkgid + ".apk") self.adb_device.pull(apkpath.strip("\n"), apkfinal_path) cprint('[+] Checking AWS_SDK', 'blue') s = os.popen('/usr/bin/grep -i "aws-android-sdk" {0}'.format(apkfinal_path)).read() if 'matches' in s: cprint ("[!] This Application use AWS_SDK", 'blue') pass else: cprint ("[!] NO AWS_SDK FOUND", 'blue') os.remove(apkfinal_path) def is_AWSSDK(self, pkgid): apkfinal_path = os.path.join("./tmp/") + pkgid + '.apk' if re.search(b'(?i)aws-android-sdk', open(apkfinal_path,"rb").read()): self.asset.exist_sdk(pkgid, True) return True else: self.asset.exist_sdk(pkgid, False) return False
def download(message): package_list = message['list'] for package_name in message['list']: asset = Assets() info = getlist.result[package_name] if not asset.exist(package_name): asset.add(package_name, info['title'], int(info['popular'].replace(",","")), info['category']) asset.close() else: ass = asset.get(package_name) if ass['popular'] < int(info['popular'].replace(",","")): asset.update_asset(package_name, ['title', 'popular', 'category'], [info['title'], int(info['popular'].replace(",","")), info['category'], package_name]) socketio.start_background_task(target=downloader.download_packages, package_list=package_list)