diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2012-08-06 20:29:20 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2012-08-06 20:29:20 (GMT) |
commit | fc49e98dc2b3e0ae08a5874ecacaef046a0f3ec1 (patch) | |
tree | e121c5eb5dd0629554a498f8e1a1cce3fc0715b4 /plugins/python/androperms/panel.py | |
parent | facec716100f598a8694889274a4589c75c14722 (diff) |
Saved progress toward the Android permissions display.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@258 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'plugins/python/androperms/panel.py')
-rw-r--r-- | plugins/python/androperms/panel.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/plugins/python/androperms/panel.py b/plugins/python/androperms/panel.py new file mode 100644 index 0000000..b852049 --- /dev/null +++ b/plugins/python/androperms/panel.py @@ -0,0 +1,89 @@ + +import gtk +import os + + +class PermsPanel: + """Display all permissions found in the Manifest.""" + + def __init__(self): + + + tree = gtk.TreeView() + + languages = gtk.TreeViewColumn() + languages.set_title("Programming languages") + + cell = gtk.CellRendererText() + languages.pack_start(cell, True) + languages.add_attribute(cell, "text", 0) + + treestore = gtk.TreeStore(str) + + it = treestore.append(None, ["Scripting languages"]) + treestore.append(it, ["Python"]) + treestore.append(it, ["PHP"]) + treestore.append(it, ["Perl"]) + treestore.append(it, ["Ruby"]) + + it = treestore.append(None, ["Compiling languages"]) + treestore.append(it, ["C#"]) + treestore.append(it, ["C++"]) + treestore.append(it, ["C"]) + treestore.append(it, ["Java"]) + + tree.append_column(languages) + tree.set_model(treestore) + + tree.show() + + self._view = tree + + self._perms = { } + + self._load_all_definitions() + + + def get_widget(self): + + return self._view + + + + + + def _load_all_definitions(self): + """Load the database in memory.""" + + with open(os.path.dirname(__file__) + '/androperms.db', 'r') as f: + + for line in f.readlines(): + + perm = line.strip("\n").split("\t") + + for p in perm[1].split(" "): + + if not p.startswith("android.permission."): + continue + + if p not in self._perms: + self._perms[p] = [] + + self._perms[p].append(perm[0]) + + + def filter_permissions(self, used): + """Forget all permissions which are not used.""" + + keep = {} + + for p in self._perms: + if p in used: + keep[p] = self._perms[p] + + self._perms = keep + + # for p in self._perms: + # print p + # for v in self._perms[p]: + # print " - ", v |