| /* |
| * Copyright (C) 2012 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 com.android.builder.signing; |
| |
| import com.android.annotations.NonNull; |
| import com.android.annotations.Nullable; |
| import com.android.builder.model.SigningConfig; |
| import com.android.prefs.AndroidLocation.AndroidLocationException; |
| import com.google.common.base.Objects; |
| |
| import java.io.File; |
| import java.security.KeyStore; |
| |
| /** |
| * SigningConfig encapsulates the information necessary to access certificates in a keystore file |
| * that can be used to sign APKs. |
| */ |
| public class DefaultSigningConfig implements SigningConfig { |
| |
| public static final String DEFAULT_PASSWORD = "android"; |
| public static final String DEFAULT_ALIAS = "AndroidDebugKey"; |
| |
| @NonNull |
| protected final String mName; |
| private File mStoreFile = null; |
| private String mStorePassword = null; |
| private String mKeyAlias = null; |
| private String mKeyPassword = null; |
| private String mStoreType = KeyStore.getDefaultType(); |
| |
| /** |
| * Creates a SigningConfig. |
| */ |
| public DefaultSigningConfig(@NonNull String name) { |
| mName = name; |
| } |
| |
| /** |
| * Initializes the SigningConfig with the debug keystore/key alias data. |
| * |
| * @throws AndroidLocationException if the debug keystore location cannot be found |
| */ |
| public void initDebug() throws AndroidLocationException { |
| mStoreFile = new File(KeystoreHelper.defaultDebugKeystoreLocation()); |
| mStorePassword = DEFAULT_PASSWORD; |
| mKeyAlias = DEFAULT_ALIAS; |
| mKeyPassword = DEFAULT_PASSWORD; |
| } |
| |
| @Override |
| @NonNull |
| public String getName() { |
| return mName; |
| } |
| |
| @Override |
| @Nullable |
| public File getStoreFile() { |
| return mStoreFile; |
| } |
| |
| @NonNull |
| public DefaultSigningConfig setStoreFile(File storeFile) { |
| mStoreFile = storeFile; |
| return this; |
| } |
| |
| @Override |
| @Nullable |
| public String getStorePassword() { |
| return mStorePassword; |
| } |
| |
| @NonNull |
| public DefaultSigningConfig setStorePassword(String storePassword) { |
| mStorePassword = storePassword; |
| return this; |
| } |
| |
| @Override |
| @Nullable |
| public String getKeyAlias() { |
| return mKeyAlias; |
| } |
| |
| @NonNull |
| public DefaultSigningConfig setKeyAlias(String keyAlias) { |
| mKeyAlias = keyAlias; |
| return this; |
| } |
| |
| @Override |
| @Nullable |
| public String getKeyPassword() { |
| return mKeyPassword; |
| } |
| |
| @NonNull |
| public DefaultSigningConfig setKeyPassword(String keyPassword) { |
| mKeyPassword = keyPassword; |
| return this; |
| } |
| |
| @Override |
| @Nullable |
| public String getStoreType() { |
| return mStoreType; |
| } |
| |
| @NonNull |
| public DefaultSigningConfig setStoreType(String storeType) { |
| mStoreType = storeType; |
| return this; |
| } |
| |
| @Override |
| public boolean isSigningReady() { |
| return mStoreFile != null && |
| mStorePassword != null && |
| mKeyAlias != null && |
| mKeyPassword != null; |
| } |
| |
| @Override |
| public boolean equals(Object o) { |
| if (this == o) return true; |
| if (o == null || getClass() != o.getClass()) return false; |
| if (!super.equals(o)) return false; |
| |
| DefaultSigningConfig that = (DefaultSigningConfig) o; |
| |
| if (mKeyAlias != null ? |
| !mKeyAlias.equals(that.mKeyAlias) : |
| that.mKeyAlias != null) |
| return false; |
| if (mKeyPassword != null ? |
| !mKeyPassword.equals(that.mKeyPassword) : |
| that.mKeyPassword != null) |
| return false; |
| if (mStoreFile != null ? |
| !mStoreFile.equals(that.mStoreFile) : |
| that.mStoreFile != null) |
| return false; |
| if (mStorePassword != null ? |
| !mStorePassword.equals(that.mStorePassword) : |
| that.mStorePassword != null) |
| return false; |
| if (mStoreType != null ? |
| !mStoreType.equals(that.mStoreType) : |
| that.mStoreType != null) |
| return false; |
| |
| return true; |
| } |
| |
| @Override |
| public int hashCode() { |
| int result = super.hashCode(); |
| result = 31 * result + (mStoreFile != null ? |
| mStoreFile.hashCode() : 0); |
| result = 31 * result + (mStorePassword != null ? |
| mStorePassword.hashCode() : 0); |
| result = 31 * result + (mKeyAlias != null ? mKeyAlias.hashCode() : 0); |
| result = 31 * result + (mKeyPassword != null ? mKeyPassword.hashCode() : 0); |
| result = 31 * result + (mStoreType != null ? mStoreType.hashCode() : 0); |
| return result; |
| } |
| |
| @Override |
| public String toString() { |
| return Objects.toStringHelper(this) |
| .add("storeFile", mStoreFile.getAbsolutePath()) |
| .add("storePassword", mStorePassword) |
| .add("keyAlias", mKeyAlias) |
| .add("keyPassword", mKeyPassword) |
| .add("storeType", mStoreType) |
| .toString(); |
| } |
| } |