Info List of JNI methods

Description

Java Native Interface (JNI) allows Java code to interact with native applications and libraries written in Rust, C, C++ and assembly

Improper use of the Java Native Interface renders the application vulnerable to security flaws present in other programming languages, like memory corruption.

Recommendation

Native code must adhere to Secure Coding best practices to protect against vulnerabilities in unmanaged code like memory corruption.

Technical details

File lib/armeabi-v7a/libfb.so:

MethodSignatureAddress
dispose()V0x1300c

File lib/armeabi-v7a/libimagepipeline.so:

MethodSignatureAddress
nativeTranscodeJpeg(Ljava/io/InputStream;Ljava/io/OutputStream;III)V0x3b00c
nativePinBitmap(Landroid/graphics/Bitmap;)V0x3b020
nativeReleaseByteBuffer(Landroid/graphics/Bitmap;)V0x3b044
nativeCopyBitmap(Landroid/graphics/Bitmap;ILandroid/graphics/Bitmap;II)V0x3b02c
nativeGetByteBuffer(Landroid/graphics/Bitmap;JJ)Ljava/nio/ByteBuffer;0x3b038
nativeIterativeBoxBlur(Landroid/graphics/Bitmap;II)V0x3b050
nativeAllocate(I)J0x3b05c
nativeFree(J)V0x3b068
nativeCopyToByteArray(J[BII)V0x3b074
nativeCopyFromByteArray(J[BII)V0x3b080
nativeMemcpy(JJI)V0x3b08c
nativeReadByte(J)B0x3b098

File lib/armeabi-v7a/librsjni.so:

MethodSignatureAddress
nLoadSO(ZILjava/lang/String;)Z0xd00c
nLoadIOSO()Z0xd018
nDeviceCreate()J0xd024
nIncDeviceCreate()J0xd3e4
nDeviceDestroy(J)V0xd030
nContextInitToClient(J)V0xd06c
nContextDeinitToClient(J)V0xd078
rsnContextFinish(J)V0xd090
rsnContextDestroy(J)V0xd0a8
nIncDeviceDestroy(J)V0xd3f0
rsnIncContextFinish(J)V0xd408
rsnIncContextDestroy(J)V0xd414
nDeviceSetConfig(JII)V0xd03c
nContextGetUserMessage(J[I)I0xd048
nContextPeekMessage(J[I)I0xd060
nContextGetErrorMessage(J)Ljava/lang/String;0xd054
rsnContextCreate(JIIILjava/lang/String;)J0xd084
rsnContextSetPriority(JI)V0xd09c
rsnContextDump(JI)V0xd0b4
rsnContextSendMessage(JI[I)V0xd0c0
rsnClosureCreate(JJJ[J[J[I[J[J)J0xd0cc
rsnInvokeClosureCreate(JJ[B[J[J[I)J0xd0d8
rsnClosureSetArg(JJIJI)V0xd0e4
rsnClosureSetGlobal(JJJJI)V0xd0f0
rsnObjDestroy(JJ)V0xd0fc
rsnAllocationIoSend(JJ)V0xd198
rsnAllocationGenerateMipmaps(JJ)V0xd228
rsnScriptGroupExecute(JJ)V0xd36c
rsnScriptGroup2Execute(JJ)V0xd378
rsnIncObjDestroy(JJ)V0xd420
rsnElementCreate(JJIZI)J0xd108
rsnIncElementCreate(JJIZI)J0xd42c
rsnElementCreate2(J[J[Ljava/lang/String;[I)J0xd114
rsnElementGetSubElements(JJ[J[Ljava/lang/String;[I)V0xd120
rsnTypeCreate(JJIIIZZI)J0xd12c
rsnIncTypeCreate(JJIIIZZI)J0xd438
rsnAllocationCreateTyped(JJIIJ)J0xd138
rsnAllocationCreateFromBitmap(JJILandroid/graphics/Bitmap;I)J0xd144
rsnAllocationCreateBitmapBackedAllocation(JJILandroid/graphics/Bitmap;I)J0xd150
rsnAllocationCubeCreateFromBitmap(JJILandroid/graphics/Bitmap;I)J0xd15c
rsnAllocationCopyFromBitmap(JJLandroid/graphics/Bitmap;)V0xd168
rsnAllocationCopyToBitmap(JJLandroid/graphics/Bitmap;)V0xd174
rsnAllocationSyncAll(JJI)V0xd180
rsnAllocationResize1D(JJI)V0xd21c
rsnAllocationSetSurface(JJLandroid/view/Surface;)V0xd18c
rsnAllocationData1D(JJIIILjava/lang/Object;IIIZ)V0xd1a4
rsnAllocationRead1D(JJIIILjava/lang/Object;IIIZ)V0xd1f8
rsnAllocationElementData1D(JJIII[BI)V0xd1b0
rsnAllocationData2D(JJIIIIIILjava/lang/Object;IIIZ)V0xd1bc
rsnAllocationRead2D(JJIIIIIILjava/lang/Object;IIIZ)V0xd204
rsnAllocationData2D(JJIIIIIIJIIII)V0xd1c8
rsnAllocationData3D(JJIIIIIIILjava/lang/Object;IIIZ)V0xd1d4
rsnAllocationData3D(JJIIIIIIIJIIII)V0xd1e0
rsnAllocationRead(JJLjava/lang/Object;IIZ)V0xd1ec
rsnAllocationGetType(JJ)J0xd210
rsnAllocationGetStride(JJ)J0xd45c
rsnScriptBindAllocation(JJJIZ)V0xd234
rsnScriptSetTimeZone(JJ[BZ)V0xd240
rsnScriptInvoke(JJIZ)V0xd24c
te(JJI[BZ)V0x4a18
rsnScriptInvokeV(JJI[BZ)V0xd258
rsnScriptSetVarV(JJI[BZ)V0xd2dc
rsnScriptForEach(JJJIJJZ)V0xd264
rsnScriptForEach(JJJIJJ[BZ)V0xd270
rsnScriptForEach(JJI[JJ[B[I)V0xd27c
rsnScriptForEachClipped(JJJIJJIIIIIIZ)V0xd288
rsnScriptForEachClipped(JJJIJJ[BIIIIIIZ)V0xd294
rsnScriptReduce(JJI[JJ[I)V0xd2a0
rsnScriptSetVarI(JJIIZ)V0xd2ac
rsnScriptSetVarJ(JJIJZ)V0xd2b8
rsnScriptSetVarObj(JJIJZ)V0xd2f4
rsnScriptSetVarF(JJIFZ)V0xd2c4
rsnScriptSetVarD(JJIDZ)V0xd2d0
rsnScriptSetVarVE(JJI[BJ[IZ)V0xd2e8
rsnScriptCCreate(JLjava/lang/String;Ljava/lang/String;[BI)J0xd300
rsnScriptIntrinsicCreate(JIJZ)J0xd30c
rsnScriptKernelIDCreate(JJIIZ)J0xd318
rsnScriptInvokeIDCreate(JJI)J0xd324
rsnScriptFieldIDCreate(JJIZ)J0xd330
rsnScriptGroupCreate(J[J[J[J[J[J)J0xd33c
rsnScriptGroup2Create(JLjava/lang/String;Ljava/lang/String;[J)J0xd348
rsnScriptGroupSetInput(JJJJ)V0xd354
rsnScriptGroupSetOutput(JJJJ)V0xd360
rsnScriptIntrinsicBLAS_Single(JJJIIIIIIIIIFJJFJIIIIZ)V0xd384
rsnScriptIntrinsicBLAS_Double(JJJIIIIIIIIIDJJDJIIIIZ)V0xd390
rsnScriptIntrinsicBLAS_Complex(JJJIIIIIIIIIFFJJFFJIIIIZ)V0xd39c
rsnScriptIntrinsicBLAS_Z(JJJIIIIIIIIIDDJJDDJIIIIZ)V0xd3a8
rsnScriptIntrinsicBLAS_BNNM(JJJIIIJIJIJIIZ)V0xd3b4
rsnSamplerCreate(JIIIIIF)J0xd3c0
rsnSystemGetPointerSize()I0xd3cc
nIncLoadSO(ILjava/lang/String;)Z0xd3d8
rsnIncContextCreate(JIII)J0xd3fc
rsnIncAllocationCreateTyped(JJJJI)J0xd444
rsnAllocationGetByteBuffer(JJIII)Ljava/nio/ByteBuffer;0xd450

File lib/x86/libimagepipeline.so:

MethodSignatureAddress
nativePinBitmap(Landroid/graphics/Bitmap;)V0x8b028
nativeReleaseByteBuffer(Landroid/graphics/Bitmap;)V0x8b04c
nativeAllocate(I)J0x8b088
nativeFree(J)V0x8b094
nativeCopyToByteArray(J[BII)V0x8b0a0
nativeCopyFromByteArray(J[BII)V0x8b0ac
nativeMemcpy(JJI)V0x8b0b8
nativeReadByte(J)B0x8b0c4
nativeTranscodeJpeg(Ljava/io/InputStream;Ljava/io/OutputStream;III)V0x8b00c
nativeCopyBitmap(Landroid/graphics/Bitmap;ILandroid/graphics/Bitmap;II)V0x8b034
nativeGetByteBuffer(Landroid/graphics/Bitmap;JJ)Ljava/nio/ByteBuffer;0x8b040
nativeIterativeBoxBlur(Landroid/graphics/Bitmap;II)V0x8b058

File lib/x86/librsjni.so:

MethodSignatureAddress
nLoadSO(ZILjava/lang/String;)Z0xd00c
nLoadIOSO()Z0xd018
nDeviceCreate()J0xd024
nIncDeviceCreate()J0xd3e4
nDeviceDestroy(J)V0xd030
nContextInitToClient(J)V0xd06c
nContextDeinitToClient(J)V0xd078
rsnContextFinish(J)V0xd090
rsnContextDestroy(J)V0xd0a8
nIncDeviceDestroy(J)V0xd3f0
rsnIncContextFinish(J)V0xd408
rsnIncContextDestroy(J)V0xd414
nDeviceSetConfig(JII)V0xd03c
nContextGetUserMessage(J[I)I0xd048
nContextPeekMessage(J[I)I0xd060
nContextGetErrorMessage(J)Ljava/lang/String;0xd054
rsnContextCreate(JIIILjava/lang/String;)J0xd084
rsnContextSetPriority(JI)V0xd09c
rsnContextDump(JI)V0xd0b4
rsnContextSendMessage(JI[I)V0xd0c0
rsnClosureCreate(JJJ[J[J[I[J[J)J0xd0cc
rsnInvokeClosureCreate(JJ[B[J[J[I)J0xd0d8
rsnClosureSetArg(JJIJI)V0xd0e4
rsnClosureSetGlobal(JJJJI)V0xd0f0
rsnObjDestroy(JJ)V0xd0fc
rsnAllocationIoSend(JJ)V0xd198
rsnAllocationGenerateMipmaps(JJ)V0xd228
rsnScriptGroupExecute(JJ)V0xd36c
rsnScriptGroup2Execute(JJ)V0xd378
rsnIncObjDestroy(JJ)V0xd420
rsnElementCreate(JJIZI)J0xd108
rsnIncElementCreate(JJIZI)J0xd42c
rsnElementCreate2(J[J[Ljava/lang/String;[I)J0xd114
rsnElementGetSubElements(JJ[J[Ljava/lang/String;[I)V0xd120
rsnTypeCreate(JJIIIZZI)J0xd12c
rsnIncTypeCreate(JJIIIZZI)J0xd438
rsnAllocationCreateTyped(JJIIJ)J0xd138
rsnAllocationCreateFromBitmap(JJILandroid/graphics/Bitmap;I)J0xd144
rsnAllocationCreateBitmapBackedAllocation(JJILandroid/graphics/Bitmap;I)J0xd150
rsnAllocationCubeCreateFromBitmap(JJILandroid/graphics/Bitmap;I)J0xd15c
rsnAllocationCopyFromBitmap(JJLandroid/graphics/Bitmap;)V0xd168
rsnAllocationCopyToBitmap(JJLandroid/graphics/Bitmap;)V0xd174
rsnAllocationSyncAll(JJI)V0xd180
rsnAllocationResize1D(JJI)V0xd21c
rsnAllocationSetSurface(JJLandroid/view/Surface;)V0xd18c
rsnAllocationData1D(JJIIILjava/lang/Object;IIIZ)V0xd1a4
rsnAllocationRead1D(JJIIILjava/lang/Object;IIIZ)V0xd1f8
rsnAllocationElementData1D(JJIII[BI)V0xd1b0
rsnAllocationData2D(JJIIIIIILjava/lang/Object;IIIZ)V0xd1bc
rsnAllocationRead2D(JJIIIIIILjava/lang/Object;IIIZ)V0xd204
rsnAllocationData2D(JJIIIIIIJIIII)V0xd1c8
rsnAllocationData3D(JJIIIIIIILjava/lang/Object;IIIZ)V0xd1d4
rsnAllocationData3D(JJIIIIIIIJIIII)V0xd1e0
rsnAllocationRead(JJLjava/lang/Object;IIZ)V0xd1ec
rsnAllocationGetType(JJ)J0xd210
rsnAllocationGetStride(JJ)J0xd45c
rsnScriptBindAllocation(JJJIZ)V0xd234
rsnScriptSetTimeZone(JJ[BZ)V0xd240
rsnScriptInvoke(JJIZ)V0xd24c
rsnScriptInvokeV(JJI[BZ)V0xd258
rsnScriptSetVarV(JJI[BZ)V0xd2dc
rsnScriptForEach(JJJIJJZ)V0xd264
rsnScriptForEach(JJJIJJ[BZ)V0xd270
rsnScriptForEach(JJI[JJ[B[I)V0xd27c
rsnScriptForEachClipped(JJJIJJIIIIIIZ)V0xd288
rsnScriptForEachClipped(JJJIJJ[BIIIIIIZ)V0xd294
rsnScriptReduce(JJI[JJ[I)V0xd2a0
rsnScriptSetVarI(JJIIZ)V0xd2ac
rsnScriptSetVarJ(JJIJZ)V0xd2b8
rsnScriptSetVarObj(JJIJZ)V0xd2f4
rsnScriptSetVarF(JJIFZ)V0xd2c4
rsnScriptSetVarD(JJIDZ)V0xd2d0
rsnScriptSetVarVE(JJI[BJ[IZ)V0xd2e8
rsnScriptCCreate(JLjava/lang/String;Ljava/lang/String;[BI)J0xd300
rsnScriptIntrinsicCreate(JIJZ)J0xd30c
rsnScriptKernelIDCreate(JJIIZ)J0xd318
rsnScriptInvokeIDCreate(JJI)J0xd324
rsnScriptFieldIDCreate(JJIZ)J0xd330
rsnScriptGroupCreate(J[J[J[J[J[J)J0xd33c
rsnScriptGroup2Create(JLjava/lang/String;Ljava/lang/String;[J)J0xd348
rsnScriptGroupSetInput(JJJJ)V0xd354
rsnScriptGroupSetOutput(JJJJ)V0xd360
rsnScriptIntrinsicBLAS_Single(JJJIIIIIIIIIFJJFJIIIIZ)V0xd384
rsnScriptIntrinsicBLAS_Double(JJJIIIIIIIIIDJJDJIIIIZ)V0xd390
rsnScriptIntrinsicBLAS_Complex(JJJIIIIIIIIIFFJJFFJIIIIZ)V0xd39c
rsnScriptIntrinsicBLAS_Z(JJJIIIIIIIIIDDJJDDJIIIIZ)V0xd3a8
rsnScriptIntrinsicBLAS_BNNM(JJJIIIJIJIJIIZ)V0xd3b4
rsnSamplerCreate(JIIIIIF)J0xd3c0
rsnSystemGetPointerSize()I0xd3cc
nIncLoadSO(ILjava/lang/String;)Z0xd3d8
rsnIncContextCreate(JIII)J0xd3fc
rsnIncAllocationCreateTyped(JJJJI)J0xd444
rsnAllocationGetByteBuffer(JJIII)Ljava/nio/ByteBuffer;0xd450