]> nmode's Git Repositories - signal-cli/commitdiff
Add more config generated by agent
authorAsamK <asamk@gmx.de>
Fri, 22 Jan 2021 23:00:07 +0000 (00:00 +0100)
committerAsamK <asamk@gmx.de>
Sat, 23 Jan 2021 10:13:01 +0000 (11:13 +0100)
README.md
build.gradle
graalvm-config-dir/jni-config.json [new file with mode: 0644]
graalvm-config-dir/proxy-config.json [new file with mode: 0644]
graalvm-config-dir/reflect-config.json

index 26e9bc9509ad419fd7cc4f264aa1dd3d7e2b1fb3..1b797b7ccdda520961a43c75d8b14b7da8d29ccb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -83,19 +83,18 @@ dependencies. If you have a recent gradle version installed, you can replace `./
 
         ./gradlew distTar
 
-### Building a native binary with GraalVM
+### Building a native binary with GraalVM (EXPERIMENTAL)
 
 It is possible to build a native binary with [GraalVM](https://www.graalvm.org).
+This is still experimental and will not work in all situations.
 
 1. [Install GraalVM and setup the enviroment](https://www.graalvm.org/docs/getting-started/#install-graalvm)
 2. [Install prerequisites](https://www.graalvm.org/reference-manual/native-image/#prerequisites)
-2. Execute Gradle:
+3. Execute Gradle:
 
-        ./gradle nativeImage
+        ./gradlew assembleNativeImage
   
-   The binary is available at
-
-        build/native-image/signal-cli
+   The binary is available at *build/native-image/signal-cli*
 
 ## Troubleshooting
 If you use a version of the Oracle JRE and get an InvalidKeyException you need to enable unlimited strength crypto. See https://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters for instructions.
index f3f76412a07b507711dc5d6081d73ec62b74aaf3..764ad99e3f246e5b886c69c3b6c55d8bdb96b4ad 100644 (file)
@@ -75,8 +75,8 @@ task checkLibVersions {
     }
 }
 
-task buildNativeBinary {
-    dependsOn("build")
+task assembleNativeImage {
+    dependsOn("assemble")
     doLast {
         def graalVMHome = System.getenv("GRAALVM_HOME")
         if (!graalVMHome) {
@@ -92,18 +92,16 @@ task buildNativeBinary {
             commandLine "$graalVMHome/bin/native-image",
                         "-H:Path=$nativeBinaryOutputPath",
                         "-H:Name=$nativeBinaryName",
-                        "-H:JNIConfigurationFiles=",
-                        "-H:DynamicProxyConfigurationFiles=",
-                        "-H:ReflectionConfigurationFiles=",
-                        "-H:ResourceConfigurationFiles=",
+                        "-H:JNIConfigurationFiles=graalvm-config-dir/jni-config.json",
+                        "-H:DynamicProxyConfigurationFiles=graalvm-config-dir/proxy-config.json",
+                        "-H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json",
+                        "-H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json",
                         "--no-fallback",
                         "--allow-incomplete-classpath",
                         "--report-unsupported-elements-at-runtime",
                         "--enable-url-protocols=http,https",
                         "--enable-https",
                         "--enable-all-security-services",
-                        "-H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json",
-                        "-H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json",
                         "-cp",
                         sourceSets.main.runtimeClasspath.asPath,
                         project.mainClassName
diff --git a/graalvm-config-dir/jni-config.json b/graalvm-config-dir/jni-config.json
new file mode 100644 (file)
index 0000000..724387d
--- /dev/null
@@ -0,0 +1,13 @@
+[
+{
+  "name":"java.lang.ClassLoader",
+  "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+},
+{
+  "name":"java.lang.NoSuchMethodError"
+},
+{
+  "name":"java.lang.UnsatisfiedLinkError",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
+}
+]
diff --git a/graalvm-config-dir/proxy-config.json b/graalvm-config-dir/proxy-config.json
new file mode 100644 (file)
index 0000000..883065a
--- /dev/null
@@ -0,0 +1,3 @@
+[
+  ["org.freedesktop.DBus"]
+]
index fdcaa2babd2390ad8b4e17ade9b221926e6a1195..ca62ca598b8063230211af9b7e9994c99738fcb9 100644 (file)
@@ -1,6 +1,8 @@
 [
 {
-  "name":"byte[]"
+  "name":"byte[]",
+  "allDeclaredMethods":true,
+  "allPublicMethods":true
 },
 {
   "name":"char[]"
@@ -9,6 +11,49 @@
   "name":"com.fasterxml.jackson.databind.ext.Java7SupportImpl",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"com.google.protobuf.AbstractProtobufList",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true
+},
+{
+  "name":"com.google.protobuf.Internal$LongList",
+  "allDeclaredMethods":true
+},
+{
+  "name":"com.google.protobuf.Internal$ProtobufList",
+  "allDeclaredMethods":true
+},
+{
+  "name":"com.google.protobuf.LongArrayList",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"com.google.protobuf.PrimitiveNonBoxingCollection",
+  "allDeclaredMethods":true
+},
+{
+  "name":"com.kenai.jffi.Invoker",
+  "methods":[
+    {"name":"invokeI6","parameterTypes":["com.kenai.jffi.CallContext","long","int","int","int","int","int","int"] }, 
+    {"name":"invokeL6","parameterTypes":["com.kenai.jffi.CallContext","long","long","long","long","long","long","long"] }, 
+    {"name":"invokeN6","parameterTypes":["com.kenai.jffi.CallContext","long","long","long","long","long","long","long"] }
+  ]
+},
+{
+  "name":"com.kenai.jffi.Version",
+  "fields":[
+    {"name":"MAJOR"}, 
+    {"name":"MICRO"}, 
+    {"name":"MINOR"}
+  ]
+},
+{
+  "name":"com.kenai.jffi.internal.StubLoader",
+  "methods":[{"name":"isLoaded","parameterTypes":[] }]
+},
 {
   "name":"com.sun.crypto.provider.AESCipher$General",
   "methods":[{"name":"<init>","parameterTypes":[] }]
   "name":"com.sun.crypto.provider.TlsPrfGenerator$V12",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"int",
+  "allDeclaredMethods":true,
+  "allPublicMethods":true
+},
+{
+  "name":"int[]",
+  "allDeclaredMethods":true,
+  "allPublicMethods":true
+},
 {
   "name":"java.io.Serializable",
   "allDeclaredMethods":true
 },
+{
+  "name":"java.lang.Boolean",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"java.lang.Comparable",
   "allDeclaredMethods":true
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"java.lang.Iterable",
+  "allDeclaredMethods":true
+},
+{
+  "name":"java.lang.Long",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"java.lang.Number",
   "allDeclaredFields":true,
   "allDeclaredMethods":true
 },
+{
+  "name":"java.lang.String",
+  "allPublicMethods":true
+},
+{
+  "name":"java.lang.reflect.Method",
+  "methods":[{"name":"isDefault","parameterTypes":[] }]
+},
 {
   "name":"java.nio.Buffer",
+  "allDeclaredMethods":true,
   "fields":[{"name":"address", "allowUnsafeAccess":true}]
 },
+{
+  "name":"java.nio.ByteBuffer",
+  "allDeclaredMethods":true,
+  "allPublicMethods":true
+},
 {
   "name":"java.security.KeyStoreSpi"
 },
 {
   "name":"java.security.interfaces.RSAPublicKey"
 },
+{
+  "name":"java.util.AbstractCollection",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true
+},
+{
+  "name":"java.util.AbstractList",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true
+},
 {
   "name":"java.util.ArrayList",
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"java.util.Collection",
+  "allDeclaredMethods":true
+},
+{
+  "name":"java.util.LinkedHashMap",
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"java.util.List",
+  "allDeclaredMethods":true
+},
 {
   "name":"java.util.Locale",
   "methods":[{"name":"getUnicodeLocaleType","parameterTypes":["java.lang.String"] }]
 },
+{
+  "name":"java.util.RandomAccess",
+  "allDeclaredMethods":true
+},
+{
+  "name":"java.util.UUID",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"jnr.constants.platform.linux.ProtocolFamily"
+},
+{
+  "name":"jnr.constants.platform.linux.Shutdown"
+},
+{
+  "name":"jnr.constants.platform.linux.Sock"
+},
+{
+  "name":"jnr.constants.platform.linux.SocketLevel"
+},
+{
+  "name":"jnr.constants.platform.linux.SocketOption"
+},
+{
+  "name":"jnr.enxio.channels.Native$LibC",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.enxio.channels.Native$LibC$jnr$ffi$1",
+  "methods":[{"name":"<init>","parameterTypes":["jnr.ffi.Runtime","jnr.ffi.provider.jffi.NativeLibrary","java.lang.Object[]"] }]
+},
+{
+  "name":"jnr.ffi.Pointer",
+  "allDeclaredMethods":true,
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.ffi.StructLayout$gid_t",
+  "methods":[{"name":"<init>","parameterTypes":["jnr.ffi.StructLayout"] }]
+},
+{
+  "name":"jnr.ffi.byref.IntByReference",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.ffi.provider.converters.ByReferenceParameterConverter",
+  "methods":[{"name":"nativeType","parameterTypes":[] }]
+},
+{
+  "name":"jnr.ffi.provider.converters.ByReferenceParameterConverter$Out",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.ffi.provider.converters.StringResultConverter",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.ffi.provider.converters.StructByReferenceToNativeConverter",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.ffi.provider.jffi.BufferParameterStrategy",
+  "methods":[{"name":"address","parameterTypes":["java.nio.Buffer"] }]
+},
+{
+  "name":"jnr.ffi.provider.jffi.PointerParameterStrategy",
+  "methods":[{"name":"address","parameterTypes":["jnr.ffi.Pointer"] }]
+},
+{
+  "name":"jnr.ffi.provider.jffi.Provider",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"jnr.ffi.provider.jffi.platform.x86_64.linux.TypeAliases",
+  "fields":[{"name":"ALIASES"}]
+},
+{
+  "name":"jnr.posix.Timeval",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.unixsocket.Native$LibC",
+  "allPublicMethods":true
+},
+{
+  "name":"jnr.unixsocket.Native$LibC$jnr$ffi$0",
+  "methods":[{"name":"<init>","parameterTypes":["jnr.ffi.Runtime","jnr.ffi.provider.jffi.NativeLibrary","java.lang.Object[]"] }]
+},
+{
+  "name":"jnr.unixsocket.SockAddrUnix",
+  "allPublicMethods":true
+},
+{
+  "name":"long",
+  "allDeclaredMethods":true,
+  "allPublicMethods":true
+},
+{
+  "name":"long[]"
+},
+{
+  "name":"org.asamk.Signal",
+  "allDeclaredMethods":true,
+  "allDeclaredClasses":true
+},
+{
+  "name":"org.asamk.Signal$MessageReceived",
+  "allDeclaredConstructors":true,
+  "allPublicConstructors":true
+},
+{
+  "name":"org.asamk.Signal$ReceiptReceived",
+  "allDeclaredConstructors":true,
+  "allPublicConstructors":true
+},
+{
+  "name":"org.asamk.Signal$SyncMessageReceived",
+  "allDeclaredConstructors":true,
+  "allPublicConstructors":true
+},
+{
+  "name":"org.asamk.signal.json.JsonDataMessage",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.asamk.signal.json.JsonMessageEnvelope",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.asamk.signal.json.JsonReaction",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.asamk.signal.json.JsonReceiptMessage",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.asamk.signal.manager.storage.contacts.ContactInfo",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.asamk.signal.manager.storage.groups.GroupInfoV1$JsonSignalServiceAddress",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.asamk.signal.manager.storage.groups.GroupInfoV1$MembersDeserializer",
   "methods":[{"name":"<init>","parameterTypes":[] }]
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
-  "fields":[
-    {"name":"groups", "allowWrite":true}
-  ],
-  "allDeclaredConstructors":true
+  "fields":[{"name":"groups", "allowWrite":true}]
 },
 {
   "name":"org.asamk.signal.manager.storage.groups.JsonGroupStore$GroupsDeserializer",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
-  "fields":[
-    {"name":"profiles", "allowWrite":true}
-  ]
+  "fields":[{"name":"profiles", "allowWrite":true}]
 },
 {
   "name":"org.asamk.signal.manager.storage.profiles.ProfileStore$ProfileStoreDeserializer",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
-  "fields":[
-    {"name":"addresses", "allowWrite":true}
-  ]
+  "fields":[{"name":"addresses", "allowWrite":true}]
 },
 {
   "name":"org.asamk.signal.manager.storage.protocol.RecipientStore$RecipientStoreDeserializer",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
-  "fields":[
-    {"name":"stickers", "allowWrite":true}
-  ]
+  "fields":[{"name":"stickers", "allowWrite":true}]
 },
 {
   "name":"org.asamk.signal.manager.storage.stickers.StickerStore$StickersDeserializer",
   "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
 {
   "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings",
   "methods":[{"name":"<init>","parameterTypes":[] }]
   "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"org.freedesktop.DBus$NameAcquired",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.freedesktop.dbus.interfaces.Introspectable",
+  "allDeclaredMethods":true,
+  "allDeclaredClasses":true
+},
+{
+  "name":"org.freedesktop.dbus.interfaces.Peer",
+  "allDeclaredMethods":true,
+  "allDeclaredClasses":true
+},
+{
+  "name":"org.objectweb.asm.util.TraceMethodVisitor"
+},
 {
   "name":"org.signal.libsignal.metadata.SignalProtos$SenderCertificate",
   "fields":[
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.whispersystems.signalservice.api.push.SignedPreKeyEntity$ByteArrayDeserializer",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
 {
   "name":"org.whispersystems.signalservice.api.push.SignedPreKeyEntity$ByteArraySerializer",
   "methods":[{"name":"<init>","parameterTypes":[] }]
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.whispersystems.signalservice.internal.contacts.entities.DiscoveryRequest",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.whispersystems.signalservice.internal.contacts.entities.DiscoveryResponse",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.whispersystems.signalservice.internal.contacts.entities.KeyBackupRequest",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.whispersystems.signalservice.internal.contacts.entities.MultiRemoteAttestationResponse",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.whispersystems.signalservice.internal.contacts.entities.QueryEnvelope",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.whispersystems.signalservice.internal.contacts.entities.RemoteAttestationRequest",
   "allDeclaredFields":true,
     {"name":"restore_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.AttachmentV2UploadAttributes",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.AuthCredentials",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.MismatchedDevices",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.OutgoingPushMessage",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.PreKeyEntity$ECPublicKeyDeserializer",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.PreKeyEntity$ECPublicKeySerializer",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.PreKeyResponse",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.whispersystems.signalservice.internal.push.PreKeyResponseItem",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.PreKeyState",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.ProvisioningMessage",
+  "allDeclaredFields":true,
+  "allDeclaredMethods":true,
+  "allDeclaredConstructors":true
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.ProvisioningProtos$ProvisionEnvelope",
   "fields":[
     {"name":"width_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$ContactDetails",
+  "fields":[
+    {"name":"archived_", "allowUnsafeAccess":true}, 
+    {"name":"avatar_", "allowUnsafeAccess":true}, 
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"blocked_", "allowUnsafeAccess":true}, 
+    {"name":"color_", "allowUnsafeAccess":true}, 
+    {"name":"expireTimer_", "allowUnsafeAccess":true}, 
+    {"name":"inboxPosition_", "allowUnsafeAccess":true}, 
+    {"name":"name_", "allowUnsafeAccess":true}, 
+    {"name":"number_", "allowUnsafeAccess":true}, 
+    {"name":"profileKey_", "allowUnsafeAccess":true}, 
+    {"name":"uuid_", "allowUnsafeAccess":true}, 
+    {"name":"verified_", "allowUnsafeAccess":true}
+  ]
+},
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$ContactDetails$Avatar",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"contentType_", "allowUnsafeAccess":true}, 
+    {"name":"length_", "allowUnsafeAccess":true}
+  ]
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$Content",
   "fields":[
     {"name":"url_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Quote",
+  "fields":[
+    {"name":"attachments_", "allowUnsafeAccess":true}, 
+    {"name":"authorE164_", "allowUnsafeAccess":true}, 
+    {"name":"authorUuid_", "allowUnsafeAccess":true}, 
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"bodyRanges_", "allowUnsafeAccess":true}, 
+    {"name":"id_", "allowUnsafeAccess":true}, 
+    {"name":"text_", "allowUnsafeAccess":true}
+  ]
+},
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Reaction",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"emoji_", "allowUnsafeAccess":true}, 
+    {"name":"remove_", "allowUnsafeAccess":true}, 
+    {"name":"targetAuthorUuid_", "allowUnsafeAccess":true}, 
+    {"name":"targetSentTimestamp_", "allowUnsafeAccess":true}
+  ]
+},
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Sticker",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"data_", "allowUnsafeAccess":true}, 
+    {"name":"emoji_", "allowUnsafeAccess":true}, 
+    {"name":"packId_", "allowUnsafeAccess":true}, 
+    {"name":"packKey_", "allowUnsafeAccess":true}, 
+    {"name":"stickerId_", "allowUnsafeAccess":true}
+  ]
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$Envelope",
   "fields":[
     {"name":"viewOnceOpen_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Contacts",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"blob_", "allowUnsafeAccess":true}, 
+    {"name":"complete_", "allowUnsafeAccess":true}
+  ]
+},
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$FetchLatest",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"type_", "allowUnsafeAccess":true}
+  ]
+},
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Keys",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"storageService_", "allowUnsafeAccess":true}
+  ]
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Read",
   "fields":[
     {"name":"timestamp_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Request",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"type_", "allowUnsafeAccess":true}
+  ]
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Sent",
   "fields":[
     {"name":"timestamp_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$Verified",
+  "fields":[
+    {"name":"bitField0_", "allowUnsafeAccess":true}, 
+    {"name":"destinationE164_", "allowUnsafeAccess":true}, 
+    {"name":"destinationUuid_", "allowUnsafeAccess":true}, 
+    {"name":"identityKey_", "allowUnsafeAccess":true}, 
+    {"name":"nullMessage_", "allowUnsafeAccess":true}, 
+    {"name":"state_", "allowUnsafeAccess":true}
+  ]
+},
 {
   "name":"org.whispersystems.signalservice.internal.push.VerifyAccountResponse",
   "allDeclaredFields":true,
     {"name":"metadata_", "allowUnsafeAccess":true}
   ]
 },
+{
+  "name":"org.whispersystems.signalservice.internal.util.JsonUtil$IdentityKeyDeserializer",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
 {
   "name":"org.whispersystems.signalservice.internal.util.JsonUtil$IdentityKeySerializer",
   "methods":[{"name":"<init>","parameterTypes":[] }]
   "name":"sun.misc.Unsafe",
   "allDeclaredFields":true,
   "methods":[
+    {"name":"allocateMemory","parameterTypes":["long"] }, 
     {"name":"arrayBaseOffset","parameterTypes":["java.lang.Class"] }, 
     {"name":"arrayIndexScale","parameterTypes":["java.lang.Class"] }, 
     {"name":"copyMemory","parameterTypes":["long","long","long"] }, 
     {"name":"copyMemory","parameterTypes":["java.lang.Object","long","java.lang.Object","long","long"] }, 
+    {"name":"freeMemory","parameterTypes":["long"] }, 
+    {"name":"getAddress","parameterTypes":["long"] }, 
     {"name":"getBoolean","parameterTypes":["java.lang.Object","long"] }, 
     {"name":"getByte","parameterTypes":["long"] }, 
     {"name":"getByte","parameterTypes":["java.lang.Object","long"] }, 
+    {"name":"getDouble","parameterTypes":["long"] }, 
     {"name":"getDouble","parameterTypes":["java.lang.Object","long"] }, 
+    {"name":"getFloat","parameterTypes":["long"] }, 
     {"name":"getFloat","parameterTypes":["java.lang.Object","long"] }, 
     {"name":"getInt","parameterTypes":["long"] }, 
     {"name":"getInt","parameterTypes":["java.lang.Object","long"] }, 
     {"name":"getLong","parameterTypes":["long"] }, 
     {"name":"getLong","parameterTypes":["java.lang.Object","long"] }, 
     {"name":"getObject","parameterTypes":["java.lang.Object","long"] }, 
+    {"name":"getShort","parameterTypes":["long"] }, 
     {"name":"objectFieldOffset","parameterTypes":["java.lang.reflect.Field"] }, 
+    {"name":"putAddress","parameterTypes":["long","long"] }, 
     {"name":"putBoolean","parameterTypes":["java.lang.Object","long","boolean"] }, 
     {"name":"putByte","parameterTypes":["long","byte"] }, 
     {"name":"putByte","parameterTypes":["java.lang.Object","long","byte"] }, 
+    {"name":"putDouble","parameterTypes":["long","double"] }, 
     {"name":"putDouble","parameterTypes":["java.lang.Object","long","double"] }, 
+    {"name":"putFloat","parameterTypes":["long","float"] }, 
     {"name":"putFloat","parameterTypes":["java.lang.Object","long","float"] }, 
     {"name":"putInt","parameterTypes":["long","int"] }, 
     {"name":"putInt","parameterTypes":["java.lang.Object","long","int"] }, 
     {"name":"putLong","parameterTypes":["long","long"] }, 
     {"name":"putLong","parameterTypes":["java.lang.Object","long","long"] }, 
-    {"name":"putObject","parameterTypes":["java.lang.Object","long","java.lang.Object"] }
+    {"name":"putObject","parameterTypes":["java.lang.Object","long","java.lang.Object"] }, 
+    {"name":"putShort","parameterTypes":["long","short"] }
   ]
 },
 {