Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 404eb2bc authored by Logan Chien's avatar Logan Chien
Browse files

Fix PDK build

This commit moves "IConfirmationPromptCallback.aidl" and
"IKeystoreService.aidl" to "system/security/keystore/binder" so that
"libkeystore_aidl" can be built in PDK builds.

Test: Run `cts-tradefed run cts -m CtsKeystoreTestCases` on Pixel 2017
and the test results are idential with and without this CL.

Test: Build PDK with special manifest described in
http://b/69539820#comment18 and http://b/69539820#comment19.

Test: Build a target (described in http://b/72961456) with
`platform.zip` built from master FSK source tree.

Bug: 69539820
Bug: 72961456
Change-Id: I7350f0ca943b15a6f3e40023a6cc299bdf8aed0e
parent 145ecabd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -249,8 +249,7 @@ java_library {
        "core/java/android/os/storage/IStorageEventListener.aidl",
        "core/java/android/os/storage/IStorageShutdownObserver.aidl",
        "core/java/android/os/storage/IObbActionListener.aidl",
        "core/java/android/security/IConfirmationPromptCallback.aidl",
        "core/java/android/security/IKeystoreService.aidl",
        ":keystore_aidl",
        "core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl",
        "core/java/android/service/autofill/IAutoFillService.aidl",
        "core/java/android/service/autofill/IAutofillFieldClassificationService.aidl",
@@ -643,6 +642,7 @@ java_library {
            "system/netd/server/binder",
            "system/vold/binder",
            "system/bt/binder",
            "system/security/keystore/binder",
        ],
    },

+0 −30
Original line number Diff line number Diff line
@@ -7,33 +7,3 @@ filegroup {
    name: "IDropBoxManagerService.aidl",
    srcs: ["com/android/internal/os/IDropBoxManagerService.aidl"],
}

// only used by key_store_service
cc_library_shared {
    name: "libkeystore_aidl",
    srcs: ["android/security/IKeystoreService.aidl",
           "android/security/IConfirmationPromptCallback.aidl"],
    aidl: {
        export_aidl_headers: true,
        include_dirs: [
            "frameworks/base/core/java/",
            "system/security/keystore/",
        ],
    },
    shared_libs: [
        "libbinder",
        "libcutils",
        "libhardware",
        "libhidlbase",
        "libhidltransport",
        "libhwbinder",
        "liblog",
        "libkeystore_parcelables",
        "libselinux",
        "libutils",
    ],
    export_shared_lib_headers: [
        "libbinder",
        "libkeystore_parcelables",
    ],
}
+0 −27
Original line number Diff line number Diff line
/**
 * Copyright (c) 2017, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.security;

/**
 * This must be kept manually in sync with system/security/keystore until AIDL
 * can generate both Java and C++ bindings.
 *
 * @hide
 */
interface IConfirmationPromptCallback {
    oneway void onConfirmationPromptCompleted(in int result, in byte[] dataThatWasConfirmed);
}
+0 −87
Original line number Diff line number Diff line
/**
 * Copyright (c) 2015, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.security;

import android.security.keymaster.ExportResult;
import android.security.keymaster.KeyCharacteristics;
import android.security.keymaster.KeymasterArguments;
import android.security.keymaster.KeymasterCertificateChain;
import android.security.keymaster.KeymasterBlob;
import android.security.keymaster.OperationResult;
import android.security.KeystoreArguments;

/**
 * This must be kept manually in sync with system/security/keystore until AIDL
 * can generate both Java and C++ bindings.
 *
 * @hide
 */
interface IKeystoreService {
    int getState(int userId);
    byte[] get(String name, int uid);
    int insert(String name, in byte[] item, int uid, int flags);
    int del(String name, int uid);
    int exist(String name, int uid);
    String[] list(String namePrefix, int uid);
    int reset();
    int onUserPasswordChanged(int userId, String newPassword);
    int lock(int userId);
    int unlock(int userId, String userPassword);
    int isEmpty(int userId);
    int generate(String name, int uid, int keyType, int keySize, int flags,
        in KeystoreArguments args);
    int import_key(String name, in byte[] data, int uid, int flags);
    byte[] sign(String name, in byte[] data);
    int verify(String name, in byte[] data, in byte[] signature);
    byte[] get_pubkey(String name);
    String grant(String name, int granteeUid);
    int ungrant(String name, int granteeUid);
    long getmtime(String name, int uid);
    int is_hardware_backed(String string);
    int clear_uid(long uid);

    // Keymaster 0.4 methods
    int addRngEntropy(in byte[] data, int flags);
    int generateKey(String alias, in KeymasterArguments arguments, in byte[] entropy, int uid,
        int flags, out KeyCharacteristics characteristics);
    int getKeyCharacteristics(String alias, in KeymasterBlob clientId, in KeymasterBlob appId,
        int uid, out KeyCharacteristics characteristics);
    int importKey(String alias, in KeymasterArguments arguments, int format,
        in byte[] keyData, int uid, int flags, out KeyCharacteristics characteristics);
    ExportResult exportKey(String alias, int format, in KeymasterBlob clientId,
        in KeymasterBlob appId, int uid);
    OperationResult begin(IBinder appToken, String alias, int purpose, boolean pruneable,
        in KeymasterArguments params, in byte[] entropy, int uid);
    OperationResult update(IBinder token, in KeymasterArguments params, in byte[] input);
    OperationResult finish(IBinder token, in KeymasterArguments params, in byte[] signature,
        in byte[] entropy);
    int abort(IBinder handle);
    boolean isOperationAuthorized(IBinder token);
    int addAuthToken(in byte[] authToken);
    int onUserAdded(int userId, int parentId);
    int onUserRemoved(int userId);
    int attestKey(String alias, in KeymasterArguments params, out KeymasterCertificateChain chain);
    int attestDeviceIds(in KeymasterArguments params, out KeymasterCertificateChain chain);
    int onDeviceOffBody();
    int importWrappedKey(in String wrappedKeyAlias, in byte[] wrappedKey,
        in String wrappingKeyAlias, in byte[] maskingKey, in KeymasterArguments arguments,
        in long rootSid, in long fingerprintSid,
        out KeyCharacteristics characteristics);
    int presentConfirmationPrompt(IBinder listener, String promptText, in byte[] extraData,
        in String locale, in int uiOptionsAsFlags);
    int cancelConfirmationPrompt(IBinder listener);
}
+0 −20
Original line number Diff line number Diff line
/**
 * Copyright (c) 2015, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.security;

/* @hide */
parcelable KeystoreArguments cpp_header "keystore/KeystoreArguments.h";
Loading