Where can I find the source code of the android code verifier? I want to work with invokedynamics but get some VerifyErrors (java.lang.VerifyError: Verifier rejected class ...) from the android verifier. My code works using the normal JVM flawlessly, no verification problems, but the android verifier rejects it and I want to analyze why it does that. I can't seem to find the verifier source code online, but it has to be somewhere if it runs on my device.
Where is the android verifier source code?
115 views Asked by Aura Lee At
1
There are 1 answers
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in BYTECODE
- Understanding Invokedynamic Instruction in Java Bytecode and Its Impact on the Operand Stack
- decoding of a byte sequence into a Unicode string
- Java Socket sending command to AV receiver over IP
- Inspect Java bytecode using Bytecode Frameworks (Android)
- When Option pattern matching optimizes up to if statements in Scala?
- Is Node Bytecode decompilable because the interpreter is open source?
- Lists construction in Python Bytecode
- Is it possible to check for a given python file whether it's pyc file is valid and up to date?
- Identical Java SerializedLambda returns different result for implMethodKind
- Is platform-independency of java really because of the combination of interpretation and compilation?
- What are all that zeros in python bytecode and how to compute them
- Debugging a Java application without sources
- Confusing behavior of ObjectWeb ASM and dcmpl/ifgt bytecode instructions
- How can I make org.objectweb.asm.util.CheckClassAdapter throw an exception instead of printing errors to stderr?
- data analysis of java bytecode
Related Questions in VERIFICATION
- Error 553 5.7.2 [TSS09] When Sending Emails to Yahoo and Outlook
- Firebase/Google Cloud projects verification has no answer
- LinkedIn Posting API verification
- keep has_each for a list in Specman
- UVM agents - single/multiple?
- Meta for developers - Verification code too short
- UVM RAL: NULL pointer is dereference
- Check if a path exist in React Native
- Verification failed for Tuya IOS sdk in Flutter after Integration
- Add account verification and password recovery using tokens with react and postgres
- there is this problem in my next-oauthcongiguration it give me this error
- how to use python to split a logical statement and verify it one by one?
- How to generate a .dat file for verilator_coverage?
- delay-google-cloud-console-app-verification for 2 weeks without feedback
- Dafny linked queue implementation
Related Questions in INVOKEDYNAMIC
- Understanding Invokedynamic Instruction in Java Bytecode and Its Impact on the Operand Stack
- Upgrading groovy from 2.4 to 3.0 , why Intellij complains about could not resolve groovy-all-3.0.15-indy.jar?
- Where does the extra parameter in a compiled lambda function come from?
- How to bootstrap interface method reference with ObjectWeb2 ASM
- BootstrapMethodError(IllegalArgumentException: bad parameter count: 256) on lambda with 254 outside local variable references
- Lambda expressions and anonymous classes don't work when loaded as hidden classes
- Why is invokedynamic faster than invokestatic
- How should one use LambdaMetafactory to generate an invoke dynamic callsite
- Benefit of specifying -jvm-target / jvmTarget version other than 1.8
- From `=> T` to `() => T` and back again
- Call Java varargs method from invokedynamic
- How to mimic `tableswitch` using `MethodHandle`?
- Where is the android verifier source code?
- How to instrument invokedynamic and scalac 2.12 output code with JDI
- How can the methods `makeConcat​` and `makeConcatWithConstants` in `StringConcatFactory` used by directly calling the API?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
First off, the JVM and Android use completely different bytecode formats (classfiles and Dex respectively). Although they are similar, they each have different opcodes and encoding methods, and different capabilities and edge cases. There are tools to translate one to the other, but given the differences, you can't always translate everything exactly.
I haven't studied Android bytecode in detail since around 2016, but at the time, there was no support for invokedynamic at all*. Additionally, Android has had numerous verifiers - first there was Dalvik, but then that was too slow, so they moved to ART. They're supposed to be behave similary, but of course, each is an independent code base with its own assortment of bugs. (Incidently, on the JVM side there are also two verifiers, the old inference based verifier and the new stack map verifier, and they also have bugs of their own, though generally not as many due to not evolving as rapidly as Android was).
Anyway, it looks like the ART verifier source code is here.
*Edit: It looks like Android has since added the
invoke-customopcode, itsinvokedynamicequivalent. As with all things Dex, there are subtle differences between the two.