Skip to content

Commit 8bc2ab4

Browse files
manny-jimenezManny Jimenez
andauthored
Audit of classes in firebase app distribution to minimize user access (#3196)
* Audit of classes in firebase app distribution to minimize user access * Making file provider public * Fixing check changed * lint changes * Changing activities to be public again * Fixing errors * Making classes public again * Changing more public methods to package private * Adding public constructors * Changing classes back to public * File Provider must be public * Lint fix * Making registrar back to public * Responding to feedback part1 * responding to feedback about release internal * Responding to feedback Co-authored-by: Manny Jimenez <[email protected]>
1 parent dd1c336 commit 8bc2ab4

File tree

7 files changed

+34
-44
lines changed

7 files changed

+34
-44
lines changed

firebase-app-distribution/src/main/java/com/google/firebase/app/distribution/AppDistributionReleaseInternal.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,77 +27,77 @@
2727
* href="https://github.com/google/auto/tree/master/value">https://github.com/google/auto/tree/master/value</a>
2828
*/
2929
@AutoValue
30-
public abstract class AppDistributionReleaseInternal {
30+
abstract class AppDistributionReleaseInternal {
3131

3232
@NonNull
33-
public static Builder builder() {
33+
static Builder builder() {
3434
return new AutoValue_AppDistributionReleaseInternal.Builder();
3535
}
3636

3737
/** The short bundle version of this build (example 1.0.0) */
3838
@NonNull
39-
public abstract String getDisplayVersion();
39+
abstract String getDisplayVersion();
4040

4141
/** The bundle version of this build (example: 123) */
4242
@NonNull
43-
public abstract String getBuildVersion();
43+
abstract String getBuildVersion();
4444

4545
/** The release notes for this build */
4646
@Nullable
47-
public abstract String getReleaseNotes();
47+
abstract String getReleaseNotes();
4848

4949
/** The binary type for this build */
5050
@NonNull
51-
public abstract BinaryType getBinaryType();
51+
abstract BinaryType getBinaryType();
5252

5353
/** Hash of binary of an Android app */
5454
@Nullable
55-
public abstract String getCodeHash();
55+
abstract String getCodeHash();
5656

5757
/** Efficient hash of an Android apk. Used to identify a release */
5858
@Nullable
59-
public abstract String getApkHash();
59+
abstract String getApkHash();
6060

6161
/**
6262
* IAS artifact id. This value is inserted into the manifest of APK's installed via Used to map a
6363
* release to an APK installed via an app bundle
6464
*/
6565
@Nullable
66-
public abstract String getIasArtifactId();
66+
abstract String getIasArtifactId();
6767

6868
/** Short-lived download URL */
6969
@Nullable
70-
public abstract String getDownloadUrl();
70+
abstract String getDownloadUrl();
7171

7272
/** Builder for {@link AppDistributionReleaseInternal}. */
7373
@AutoValue.Builder
74-
public abstract static class Builder {
74+
abstract static class Builder {
7575

7676
@NonNull
77-
public abstract Builder setDisplayVersion(@NonNull String value);
77+
abstract Builder setDisplayVersion(@NonNull String value);
7878

7979
@NonNull
80-
public abstract Builder setBuildVersion(@NonNull String value);
80+
abstract Builder setBuildVersion(@NonNull String value);
8181

8282
@NonNull
83-
public abstract Builder setReleaseNotes(@Nullable String value);
83+
abstract Builder setReleaseNotes(@Nullable String value);
8484

8585
@NonNull
86-
public abstract Builder setBinaryType(@NonNull BinaryType value);
86+
abstract Builder setBinaryType(@NonNull BinaryType value);
8787

8888
@NonNull
89-
public abstract Builder setCodeHash(@NonNull String value);
89+
abstract Builder setCodeHash(@NonNull String value);
9090

9191
@NonNull
92-
public abstract Builder setApkHash(@NonNull String value);
92+
abstract Builder setApkHash(@NonNull String value);
9393

9494
@NonNull
95-
public abstract Builder setIasArtifactId(@NonNull String value);
95+
abstract Builder setIasArtifactId(@NonNull String value);
9696

9797
@NonNull
98-
public abstract Builder setDownloadUrl(@NonNull String value);
98+
abstract Builder setDownloadUrl(@NonNull String value);
9999

100100
@NonNull
101-
public abstract AppDistributionReleaseInternal build();
101+
abstract AppDistributionReleaseInternal build();
102102
}
103103
}

firebase-app-distribution/src/main/java/com/google/firebase/app/distribution/InstallActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
import java.io.File;
2626

2727
/**
28-
* Activity opened during installation in {@link UpdateApkClient} after APK download is finished.
28+
* Activity opened during installation in {@link FirebaseAppDistribution} after APK download is
29+
* finished.
2930
*/
3031
public class InstallActivity extends AppCompatActivity {
3132
private static final String TAG = "InstallActivity: ";

firebase-app-distribution/src/main/java/com/google/firebase/app/distribution/LogWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import androidx.annotation.NonNull;
1919

2020
/** Wrapper that handles Android logcat logging. */
21-
public class LogWrapper {
21+
class LogWrapper {
2222

2323
private static final String LOG_TAG = "FirebaseAppDistribution";
2424
private static LogWrapper instance;

firebase-app-distribution/src/main/java/com/google/firebase/app/distribution/ReleaseIdentificationUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
import java.util.zip.ZipEntry;
3030
import java.util.zip.ZipFile;
3131

32-
public final class ReleaseIdentificationUtils {
32+
final class ReleaseIdentificationUtils {
3333
private static final String TAG = "ReleaseIdentification";
3434
private static final int BYTES_IN_LONG = 8;
3535

3636
@Nullable
37-
public static String extractInternalAppSharingArtifactId(@NonNull Context appContext) {
37+
static String extractInternalAppSharingArtifactId(@NonNull Context appContext) {
3838
try {
3939
PackageInfo packageInfo =
4040
appContext
@@ -51,7 +51,7 @@ public static String extractInternalAppSharingArtifactId(@NonNull Context appCon
5151
}
5252

5353
@Nullable
54-
public static String calculateApkHash(@NonNull File file) {
54+
static String calculateApkHash(@NonNull File file) {
5555
LogWrapper.getInstance().v(TAG + "Calculating release id for " + file.getPath());
5656
LogWrapper.getInstance().v(TAG + "File size: " + file.length());
5757

firebase-app-distribution/src/main/java/com/google/firebase/app/distribution/UpdateAabClient.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
import java.util.concurrent.Executors;
3030
import javax.net.ssl.HttpsURLConnection;
3131

32-
/** Client class that handles updateApp functionality for AABs in {@link UpdateAppClient}. */
32+
/**
33+
* Client class that handles updateApp functionality for AABs in {@link FirebaseAppDistribution}.
34+
*/
3335
class UpdateAabClient {
3436
private static final String TAG = "UpdateAabClient:";
3537

@@ -68,7 +70,7 @@ void onActivityStarted(Activity activity) {
6870
this.tryCancelAabUpdateTask();
6971
}
7072

71-
public UpdateTaskImpl updateAab(@NonNull AppDistributionReleaseInternal newRelease) {
73+
UpdateTaskImpl updateAab(@NonNull AppDistributionReleaseInternal newRelease) {
7274
synchronized (updateAabLock) {
7375
if (cachedUpdateTask != null && !cachedUpdateTask.isComplete()) {
7476
return cachedUpdateTask;

firebase-app-distribution/src/main/java/com/google/firebase/app/distribution/UpdateApkClient.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@
3535
import java.util.jar.JarFile;
3636
import javax.net.ssl.HttpsURLConnection;
3737

38-
/** Client class that handles updateApp functionality for APKs in {@link UpdateAppClient}. */
38+
/**
39+
* Client class that handles updateApp functionality for APKs in {@link FirebaseAppDistribution}.
40+
*/
3941
class UpdateApkClient {
4042
private static final int UPDATE_INTERVAL_MS = 250;
4143
private static final String TAG = "UpdateApkClient:";
@@ -68,7 +70,7 @@ public UpdateApkClient(
6870
this.installApkClient = installApkClient;
6971
}
7072

71-
public UpdateTaskImpl updateApk(
73+
UpdateTaskImpl updateApk(
7274
@NonNull AppDistributionReleaseInternal newRelease, boolean showDownloadNotificationManager) {
7375
synchronized (updateTaskLock) {
7476
if (cachedUpdateTask != null && !cachedUpdateTask.isComplete()) {

firebase-app-distribution/src/test/java/com/google/firebase/app/distribution/UpdateAabClientTest.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@
2222

2323
import android.app.Activity;
2424
import android.net.Uri;
25-
import androidx.test.core.app.ApplicationProvider;
2625
import com.google.firebase.FirebaseApp;
27-
import com.google.firebase.FirebaseOptions;
2826
import java.io.ByteArrayInputStream;
2927
import java.io.IOException;
3028
import java.util.ArrayList;
@@ -45,10 +43,6 @@
4543

4644
@RunWith(RobolectricTestRunner.class)
4745
public class UpdateAabClientTest {
48-
49-
private static final String TEST_API_KEY = "AIzaSyabcdefghijklmnopqrstuvwxyz1234567";
50-
private static final String TEST_APP_ID_1 = "1:123456789:android:abcdef";
51-
private static final String TEST_PROJECT_ID = "777777777777";
5246
private static final String TEST_URL = "https://test-url";
5347
private static final String REDIRECT_TO_PLAY = "https://redirect-to-play-url";
5448
private static final Executor testExecutor = Executors.newSingleThreadExecutor();
@@ -76,15 +70,6 @@ public void setup() {
7670

7771
FirebaseApp.clearInstancesForTest();
7872

79-
FirebaseApp firebaseApp =
80-
FirebaseApp.initializeApp(
81-
ApplicationProvider.getApplicationContext(),
82-
new FirebaseOptions.Builder()
83-
.setApplicationId(TEST_APP_ID_1)
84-
.setProjectId(TEST_PROJECT_ID)
85-
.setApiKey(TEST_API_KEY)
86-
.build());
87-
8873
activity =
8974
Robolectric.buildActivity(FirebaseAppDistributionTest.TestActivity.class).create().get();
9075
shadowActivity = shadowOf(activity);

0 commit comments

Comments
 (0)