Tag: 原生

有时在Android上忽略LD_LIBRARY_PATH

我有一个Android应用程序,它产生许多本机可执行文件与我随软件包分发的库有动态链接。 要启动这些二进制文件,我使用LD_LIBRARY_PATH环境变量使它们知道加载库的位置,但在某些设备上根本不起作用,LD_LIBRARY_PATH正确更新但二进制文件无法找到库。 这不是我可以重现的东西,因为在我的两个设备(Galaxy Nexus和Nexus 7与股票roms)它只是工作正常。 我尝试了很多方法,例如我产生: LD_LIBRARY_PATH=/my/package/custom/libs:$LD_LIBRARY_PATH && cd /binary/directory && ./binary 而且: String[] envp = { “LD_LIBRARY_PATH=” + libPath + “:$LD_LIBRARY_PATH” }; Process process = Runtime.getRuntime().exec( “su”, envp ); writer = new DataOutputStream( process.getOutputStream() ); reader = new BufferedReader( new InputStreamReader( process.getInputStream() ) ); writer.writeBytes( “export LD_LIBRARY_PATH=” + libPath + “:$LD_LIBRARY_PATH\n” ); writer.flush(); 但是在那些设备上似乎没有任何工作……所以我开始认为这是一个与内核相关的问题,一些内核(比如我的)使用LD_LIBRARY_PATH,其他内核没有(简单地忽略它,或者它们是仅使用在应用程序启动时设置的LD_LIBRARY_PATH,因此无法在运行时更改它。 […]

我可以通过“java.io”函数,使用NATIVE代码(工具)来阻止恶意读取类文件吗?

我们可以防御可以在整个操作系统上运行的代码破解者,他们可以通过“java.io”读取编码的类文件并保存副本 我们保护基于java的应用程序的知识产权 这个要求是由几个客户提出的,所以它具有现实价值。 Simplex Java-JDK-JVM解决方案(如没有本机代码/工具的securityManager)无法被接受,因为它很容易被绕过,因为在这种情况下,cracker对操作系统具有管理员权限。

为什么Object.clone()在Java中是原生的?

Object上的clone方法创建了一个对象的精确副本,声明为: protected native Object clone() throws CloneNotSupportedException; 为什么它是native ?

是否有可能找到Java本机方法的源代码?

我在Java中找到了Object的clone()方法: protected native Object clone() throws CloneNotSupportedException; 该方法的来源是否可用? 也许在OpenJDK ?