예제 #1
0
def test_app_title_and_flags():
    d = pd.DataFrame({
        'appId': ['core.framework', 'com.android.system',
                  'LEM.TrackMe', 'com.spy2mobile.light']
    })
    ret = app_title_and_flag(d, ['core.framework', 'com.android.system'])
    assert len(ret) == len(ret.appId)
    # assert ret.flags == 
    ret.to_csv(index=None) == """appId,title,flags
예제 #2
0
    def find_spyapps(self, serialno):
        """Finds the apps in the phone and add flags to them based on @blacklist.py
        Return the sorted dataframe
        """
        installed_apps = self.get_apps(serialno)

        if len(installed_apps) <= 0:
            return pd.DataFrame(
                [],
                columns=['title', 'flags', 'score', 'class_', 'html_flags'])
        r = blacklist.app_title_and_flag(
            pd.DataFrame({'appId': installed_apps}),
            offstore_apps=self.get_offstore_apps(serialno),
            system_apps=self.get_system_apps(serialno))
        r['title'] = r.title.fillna('')
        if self.device_type == 'android':
            td = pd.read_sql(
                'select appid as appId, title from apps where appid in (?{})'.
                format(', ?' * (len(installed_apps) - 1)),
                self.app_info_conn,
                params=(installed_apps)).set_index('appId')
            td.index.rename('appId', inplace=True)
        elif self.device_type == 'ios':
            td = self.get_app_titles(serialno)

        r.set_index('appId', inplace=True)
        print("td=", td)
        r.loc[td.index, 'title'] = td.get('title', '')
        r.reset_index(inplace=True)

        r['class_'] = r.flags.apply(blacklist.assign_class)
        r['score'] = r.flags.apply(blacklist.score)
        r['title'] = r.title.str.encode('ascii', errors='ignore')\
          .str.decode('ascii')
        r['title'] = r.title.fillna('')
        r['html_flags'] = r.flags.apply(blacklist.flag_str)
        r.sort_values(by=['score', 'appId'],
                      ascending=[False, True],
                      inplace=True,
                      na_position='last')
        r.set_index('appId', inplace=True)

        return r[['title', 'flags', 'score', 'class_', 'html_flags']]
예제 #3
0
 def find_spyapps(self, serialno):
     """Finds the apps in the phone and add flags to them based on @blacklist.py
     Return the sorted dataframe
     """
     installed_apps = self.get_apps(serialno)
     # r = pd.read_sql('select appid, title from apps where appid in (?{})'.format(
     #     ', ?'*(len(installed_apps)-1)
     #     ), self.app_info_conn, params=(installed_apps,))
     # r.rename({'appid': 'appId'}, axis='columns', copy=False, inplace=True)
     r = blacklist.app_title_and_flag(
         pd.DataFrame({'appId': installed_apps}),
         offstore_apps=self.get_offstore_apps(serialno),
         system_apps=self.get_system_apps(serialno)
     )
     r['class_'] = r.flags.apply(blacklist.assign_class)
     r['score'] = r.flags.apply(blacklist.score)
     r['title'] = r.title.str.encode('ascii', errors='ignore').str.decode('ascii')
     r['html_flags'] = r.flags.apply(blacklist.flag_str)
     r.sort_values(by=['score', 'appId'], ascending=[False, True], inplace=True, na_position='last')
     r.set_index('appId', inplace=True)
     return r[['title', 'flags', 'score', 'class_', 'html_flags']]