WAI
Status Update
Comments
wu...@google.com <wu...@google.com> #2
Some related mappings.
io.fabric.sdk.android.services.common.ExecutorUtils -> d.a.a.a.a.b.x:
...
958:958:java.lang.Object kotlin.jvm.internal.TypeIntrinsics.beforeCheckcastToFunctionOfArity(java.lang.Object,int):341 -> a
959:959:java.lang.Object kotlin.jvm.internal.TypeIntrinsics.beforeCheckcastToFunctionOfArity(java.lang.Object,int):342:342 -> a
...
20:20:void kotlin.jvm.internal.TypeIntrinsics.throwCce(java.lang.String):26:26 -> b
20:20:void kotlin.jvm.internal.TypeIntrinsics.throwCce(java.lang.Object,java.lang.String):22 -> b
which means, this line:https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/TypeIntrinsics.java#L342 is inlined to io.fabric's report generating routine.
io.fabric.sdk.android.services.common.ExecutorUtils -> d.a.a.a.a.b.x:
...
958:958:java.lang.Object kotlin.jvm.internal.TypeIntrinsics.beforeCheckcastToFunctionOfArity(java.lang.Object,int):341 -> a
959:959:java.lang.Object kotlin.jvm.internal.TypeIntrinsics.beforeCheckcastToFunctionOfArity(java.lang.Object,int):342:342 -> a
...
20:20:void kotlin.jvm.internal.TypeIntrinsics.throwCce(java.lang.String):26:26 -> b
20:20:void kotlin.jvm.internal.TypeIntrinsics.throwCce(java.lang.Object,java.lang.String):22 -> b
which means, this line:
[Deleted User] <[Deleted User]> #3
For the record.
Same result with R8 1.5.33
I tested to fully remove Crashlytics + fabric and same crash occurs but of course with different inlining:
Caused by: java.lang.ClassCastException: ta cannot be cast to kotlin.jvm.functions.Function1
at e.f.b.k.b(Intrinsics.java:5)
at e.f.b.k.a(Intrinsics.java:1034)
at c.f.a.c.b.a.b.f.a(EventBus.kt:12)
at k.a.a.a.l.l.onResume(BaseMenuActivity.kt:44)
at xxxxxxxStartActivity.onResume(StartActivity.kt:1)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1413)
at android.app.Activity.performResume(Activity.java:7292)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3803)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3843)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:198)
at android.app.ActivityThread.main(ActivityThread.java:6729)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
kotlin.jvm.internal.Intrinsics -> e.f.b.k:
But this one have a million lines after mapping to -> a and -> b
New APK and mapping sent to Jinseong.
Same result with R8 1.5.33
I tested to fully remove Crashlytics + fabric and same crash occurs but of course with different inlining:
Caused by: java.lang.ClassCastException: ta cannot be cast to kotlin.jvm.functions.Function1
at e.f.b.k.b(Intrinsics.java:5)
at e.f.b.k.a(Intrinsics.java:1034)
at c.f.a.c.b.a.b.f.a(EventBus.kt:12)
at k.a.a.a.l.l.onResume(BaseMenuActivity.kt:44)
at xxxxxxxStartActivity.onResume(StartActivity.kt:1)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1413)
at android.app.Activity.performResume(Activity.java:7292)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3803)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3843)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:198)
at android.app.ActivityThread.main(ActivityThread.java:6729)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
kotlin.jvm.internal.Intrinsics -> e.f.b.k:
But this one have a million lines after mapping to -> a and -> b
New APK and mapping sent to Jinseong.
Description
It would be nice if gcloud SDK supported transparent encryption of the oauth2 credentials by prompting for a password, much like SSH does.
Alternatively or additionally, maybe the credentials can be obtained with a command, such as using Vault via a container.
How this might work:
Executing any command would prompt for the decryption passphrase of the credentials or run the command to get the credentials.
If applicable, reasons why alternative solutions are not sufficient:
Other solutions could be sufficient, like an encrypted volume, or using a separate local encrypted VM, but for most users built-in encryption might be easiest.
Additional info:
One concern is that with developers using their local machines for development, compromised packages/plugins (node, php, wordpress, etc.) could exfiltrate the gcloud SDK credentials since it's a known location and not encrypted by default.