当前位置: > 科技>正文

我向学习安卓系统移植?设置JDK环境变量,安装在C:\Program\java下,有两个文件jdk1.5.0_16和jre1.5.0_16,我要怎么设置环境变量

2023-03-02 00:04:15 互联网 科技

我们看MoDaCo ROM中的update.zip中有文件夹叫META-INF,MoDaCo ROM版本的update.zip也包括了一个boot.img,MoDaCo ROM版本的system下有一系列作者希望放到系统中的工具,如果我们直接把MoDaCo ROM中的update.zip解包,一个system文件夹,一个data文件夹,update.zip的目录层次还没完,应该对custom ROM这种东西都不陌生。

我向学习安卓系统移植

如何制作ROM有点玩机兴趣的android爱好者,应该对custom ROM这种东西都不陌生。我介绍root权限获取的时候,就直接用的MoDaCo Custom ROM作为例子。适用于Hero比较好的ROM还有不少,比如Drizzy’s Custom Hero ROM等等,都可以在XDA上找到。肯定有不少朋友感到很好奇,这些ROM都是怎么做的。考虑到中文社区相关资料比较少,在这里抛砖引玉,大概原理介绍一下。对于第三方ROM来讲,通常都包括两部分,一个recovery image,一个update.zip。而大多数的第三方ROM的特色,就是加入了很多东西,比如superuser程序来获得root权限,busybox来扩充命令行下的功能,各种各样的配置文件或者小工具,比如默认打开中文locale,等等。这些看似神奇的改动,都是在 update.zip里面搞的,custom recovery image的主要作用就是引导用户的操作,比如让你先备份,再应用update.zip,再重启之类的操作。由于custom recovery image和update.zip的耦合性很小,所以不少custom ROM直接都用同一个custom recovery image,这个好像是出自MoDaCo作者之手。再然后,我之前的文章已经有对 recovery image的简单讲解,所以这里,我主要介绍一下update.zip的制作。如果我们直接把MoDaCo ROM中的update.zip解包,我们会发现有一个boot.img,一个data文件夹,一个system文件夹,一个META-INF文件夹。这个data文件夹放的是init.rc,而本来在系统中,init.rc就是在data目录下的。当然,两者的作用不一样,这里的init.rc主要作用是开机执行你希望执行的命令,比如MoDaCo的init.rc就是install busybox。而值得详细说明的,就是system文件夹。MoDaCo ROM版本的system下有一系列作者希望放到系统中的工具,对于apk文件,就放到app下,工具就放到bin和xbin下,依此类推。换句话说,system或者data这个目录层次结构是取决于你自己的,你希望放的东西属于什么,应该运行在online系统的什么目录下,update.zip里面就应该是有相应的目录路径,然后东西就放在里面。具体点,我们现在要依样画葫芦,搞一个新的update.zip,那么第一步就是首先建立一个文件夹mkdir new-update好,假设我新update.zip的作用就是预装我自己的一个程序,my.apk,那么,我建立对应的子目录mkdir -p new-update/system/appcp my.apk 这样,system目录就完成了。但是这时,update.zip的目录层次还没完,我们看MoDaCo ROM中的update.zip中有文件夹叫META-INF,这个文件夹很关键,除了根目录下的三个文件外,里面层层目录,就包括了一个文件,叫 update-script,内容如下show_progress 0.1 0copy_dir PACKAGE:system SYSTEM:set_perm_recursive 0 0 0755 0644 SYSTEM:xbinset_perm_recursive 0 0 0755 0644 SYSTEM:sdset_perm 0 0 04755 SYSTEM:bin/suset_perm 0 0 04755 SYSTEM:bin/a2sdset_perm 0 0 04755 SYSTEM:xbin/busyboxcopy_dir PACKAGE:data DATAshow_progress 0.2 0format BOOT:write_raw_image PACKAGE:boot.img BOOT:show_progress 0.2 100 这里面的内容,大部分是针对你要做的修改设置的。比如copy_dir PACKAGE:system SYSTEM:就是把system中新增的工具拷贝到手机上,然后 set_perm_recursive 0 0 0755 0644 SYSTEM:xbinset_perm_recursive 0 0 0755 0644 SYSTEM:sdset_perm 0 0 04755 SYSTEM:bin/suset_perm 0 0 04755 SYSTEM:bin/a2sdset_perm 0 0 04755 SYSTEM:xbin/busybox就是设置MoDaCo ROM中新增程序的权限,然后copy_dir PACKAGE:data DATA:把data下的内容(就是那个init.rc)复制到手机上,然后format BOOT:write_raw_image PACKAGE:boot.img BOOT:刷boot分区。那我们这里没有这么多新增的东西,应该怎么写呢?copy_dir PACKAGE:system SYSTEM:set_perm_recursive 0 0 04755 SYSTEM:app/my.apk就可以了。你当然还可以做一些别的事情,比如加一个FORMAT DATA之类的^_^开个玩笑,千万别这个干,不然你的数据就全没了。好,那么也就是说,我们要在自己的new-update目录下也建一个/META-INF/com/google/目录,然后把新的update-script扔进去。完了么?差一点。其实如果你没有别的需求了,那么就完了,可以把下面这一小块跳过。下面这一小块,是关于boot.img的。在如何修改Android系统的Ramdisk以及boot镜像文章中,我们谈到,如果刷boot镜像有问题,就要用别的方法让系统boot我们自己的boot image了,这个别的方法,自然就是用update.zip了。MoDaCo ROM版本的update.zip也包括了一个boot.img,但是如果我们有出于各种需求自己修改的boot.img,自然就可以替换掉原来的了。当然注意,如果加了boot.img,那么update-script里面就不能漏掉write_raw_image PACKAGE:boot.img BOOT:这句。好,到现在,我们的new-update目录下有/system/app/my.apk/META-INF/com/google/update-script/META-INF/MANIFEST.MF/META-INF/CERT.SF/META-INF/CERT.RSAboot.img恩,那么就进入打包阶段。你可能会问,这有什么难的,直接zip一下不就得了。如果要是这么简单就好了,你打包后,必须把你的内容都sign一下,得到相应的cert,才能在fastboot模式中被承认并成功刷机。在sign你的文件之前,先做这么几件事打包。进入update文件夹,zip update.zip xxx xxxx xxxx xxxx xxxx。什么意思呢,就是只把你需要的文件打包,不要用./*作为参数。而且相对路径最好是在update下面,不要在外面用zip update.zip ./update/*这种命令打包去sun网站下载最新的下载这个文件testsign一定要用JRE1.6.0.16或者更高,我知道这个有点恶心,但是提供下载的testsigh.jar就是按照这个版本或者更高编译的,你用老版本就运行不了。好,下下来以后,执行这个命令~/jre1.6.0_16/bin/java -classpath testsign_path/testsign.jar testsign update.zip update-signed.zip稍微讲解一下,java程序是最新jre下的,testsign_path是你放testsign.jar的地方,建议放到sdk的tool目录下。update是待sign文件,update-signed是指定的生成文件名。sign执行完后,用unzip -l看,会发现/META-INF/MANIFEST.MF/META-INF/CERT.SF/META-INF/CERT.RSA

设置JDK环境变量,安装在C:\Program\java下,有两个文件jdk1.5.0_16和jre1.5.0_16,我要怎么设置环境变量

如果是Xp 的话 我的电脑 __》属性---》高级---》环境变量--》在系统变量里新建---》变量名写jdk 值写----》C:\Program Files\Java\jdk1.5.0_12 注意这个目录下要有java.exe javac.exe等文件,如果你的目录下没有,就去bin目录里找一找,如果的bin里有,就改成C:\Program Files\Java\jdk1.5.0_12\bin

有谁知道怎么设置java程序路径么

JDK安装目录: C:\Program Files\Java\jdk 设置所需变量: JAVA_HOME=C:\Program Files\Java\jdk CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 添加到到已有的PATH的最后面-----------------你的安装目录就是C:\Program Files\Java\jdk1.6.0_16了...

为什么没有jdk-16的文件夹

因为Jdk中本身就有jre,一般较低版本jdk安装完,有一个单独的jre目录,即便没有,jdk中也含有jre环境。出现这个问题可能有以下几种原因:1、对该文件没有执行的权限。2、我们的机器是64位的,而下载的jdk是32位的。JDK/Java16正式GA。JDK/Java16总共包含17个JEP,涉及到新语言特性、改进JVM、新工具和库、对未来功能的验证、孵化和预览阶段的功能以及提升生产效率这几大方面。JDK/Java16的亮点包括孵化阶段的VectorAPI、密封类和接口、将JDK移植到Windows/AArch64平台、启用C++14语言特性,以及将ZGC线程堆栈处理从安全点移动到并发阶段等。最新的Java开发工具包(JDK)最终完成了instanceof(JEP394)和Records(JEP395)的模式匹配,这是Java14中首次预览的语言增强功能。此外,开发人员可以使用新的PackagingTool(JEP392)进行自我包装。包含Java的应用程序,并探索三种孵化功能,即VectorAPI(JEP338),ForeignLinkerAPI(JEP389)和Foreign-MemoryAccessAPI(JEP389),以及一种预览功能,SealedClasss(JEP397)。

文件夹

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本站联系的,一经查实,本站将立刻删除。