blob: 9bd594bab1509c441e203ab63824a97ffc066287 [file] [log] [blame]
Jiyong Parka7266ac2021-05-17 21:57:24 +09001/*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Andrew Scull66616612021-06-17 16:41:03 +000016#include <aidl/android/system/keystore2/IKeystoreService.h>
17#include <android/binder_auto_utils.h>
18#include <android/binder_manager.h>
Jiyong Parka7266ac2021-05-17 21:57:24 +090019#include <stdio.h>
Jiyong Park23934392021-06-16 01:59:10 +090020#include <sys/system_properties.h>
Jiyong Parka7266ac2021-05-17 21:57:24 +090021
Andrew Scull66616612021-06-17 16:41:03 +000022using aidl::android::hardware::security::keymint::SecurityLevel;
23
24using aidl::android::system::keystore2::IKeystoreSecurityLevel;
25using aidl::android::system::keystore2::IKeystoreService;
26
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090027extern void testlib_sub();
28
Andrew Scull66616612021-06-17 16:41:03 +000029namespace {
30
31bool test_keystore() {
32 ndk::SpAIBinder binder(
33 AServiceManager_getService("android.system.keystore2.IKeystoreService/default"));
34 auto service = IKeystoreService::fromBinder(binder);
35 if (service == nullptr) {
36 return false;
37 }
38 std::shared_ptr<IKeystoreSecurityLevel> securityLevel;
39 auto status = service->getSecurityLevel(SecurityLevel::TRUSTED_ENVIRONMENT, &securityLevel);
40 if (!status.isOk()) {
41 return false;
42 }
43 return true;
44}
45
46} // Anonymous namespace
47
Jiyong Park40699612021-05-24 16:55:06 +090048extern "C" int android_native_main(int argc, char* argv[]) {
49 printf("Hello Microdroid ");
50 for (int i = 0; i < argc; i++) {
51 printf("%s", argv[i]);
52 bool last = i == (argc - 1);
53 if (!last) {
54 printf(" ");
55 }
56 }
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090057 testlib_sub();
Jiyong Park40699612021-05-24 16:55:06 +090058 printf("\n");
Jiyong Park23934392021-06-16 01:59:10 +090059
60 __system_property_set("debug.microdroid.app.run", "true");
Andrew Scull66616612021-06-17 16:41:03 +000061 __system_property_set("debug.microdroid.test_keystore", test_keystore() ? "PASS" : "FAIL");
Jiyong Park40699612021-05-24 16:55:06 +090062 return 0;
Jiyong Parka7266ac2021-05-17 21:57:24 +090063}