summaryrefslogtreecommitdiff
path: root/plugins/python/androperms/panel.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/python/androperms/panel.py')
-rw-r--r--plugins/python/androperms/panel.py89
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