1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
import os
from karton.android import Android
from karton.core import Task
from karton.core.test import KartonTestCase, TestResource
class AndroidMagicTestCase(KartonTestCase):
karton_class = Android
def test_android(self):
testcase = os.path.join(os.path.dirname(__file__), "testsdata", "example.apk")
with self.subTest(testcase):
with open(testcase, "rb") as f:
content = f.read()
sample = TestResource(testcase, content)
expected = Task(
{
"type": "sample",
"stage": "analyzed",
"origin": "karton.android",
},
payload={
"sample": sample,
"attributes": {
"certificate": ["61ED377E85D386A8DFEE6B864BD85B0BFAA5AF81"],
"main_activity": [
"com.example.android.contactmanager..ContactManager"
],
"package": ["com.example.android.contactmanager"],
"activities": [
"com.example.android.contactmanager..ContactManager",
"com.example.android.contactmanager.ContactAdder",
],
"permissions": [
"android.permission.GET_ACCOUNTS",
"android.permission.READ_CONTACTS",
"android.permission.WRITE_CONTACTS",
],
"certificate_not_after": ["Jul 17 01:33:46 2035 UTC"],
"certificate_serial": [10623618503190643167],
"certificate_subject": [
"Email Address: android@android.com,"
" Common Name: Android,"
" Organizational Unit: Android,"
" Organization: Android,"
" Locality: Mountain View,"
" State/Province: California,"
" Country: US"
],
"certificate_not_before": ["Feb 29 01:33:46 2008 UTC"],
"certificate_issuer": [
"Email Address: android@android.com,"
" Common Name: Android,"
" Organizational Unit: Android,"
" Organization: Android,"
" Locality: Mountain View,"
" State/Province: California,"
" Country: US"
],
"app_name": ["Contact Manager"],
},
},
)
task = Task(
{
"type": "sample",
"extension": "apk",
},
payload={"sample": sample},
)
results = self.run_task(task)
self.assertTasksEqual(results, [expected])
|