Articles of android source

在系统上重新启动system.img

我正在为我们部署到客户的设备(LG p509 – Optimus 1)开发自动应用更新解决方案。 我们控制了这些设备,并且当前在它们上安装了一个自定义内核(但不是完整的自定义ROM)。 由于我们正在尝试在设备上自动更新我们的应用程序,因此我们需要使用我们控制的密钥对系统进行签名,以便我们可以使用相同的密钥对应用程序进行签名(以获得INSTALL_PACKAGES权限)。 我在设备上运行AOSP构建时遇到了一些问题(使用LG发布的设备源代码),我正试图退后一步并评估我们的选项。 我有几个问题: 是否可以将system.img从电话中取出并重新签名? 如果是这样,系统apk位于何处? 我浏览了PackageManager源代码,它使用了一个系统包(看似称为“android”)来比较应用程序,看看是否允许它们拥有系统权限。 有没有人在这里为设备创建了一个自定义ROM,可以提供一些关于如何让我们的签名成为系统签名的建议? 任何见解将不胜感激。

repo init和repo sync实际上做了什么?

我在Android Enthusiasts上发布了这个问题,但认为这是一个错误的地方,所以我从那里删除了它,并在这里“再次”询问它。 这是一个noob问题,请原谅我,但我只想清楚地理解基本概念。 阅读repo帮助和Google的repo命令参考页面并没有太多启发。 我从谷歌的参考页面了解了一些内容,但我仍需要更多的澄清。 按照如何下载android源代码的说明,我在Ubuntu shell上执行了这两个命令:(我已经考虑了环境的所有先决条件。) ~/android4.2.2$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2 ~/android4.2.2$ repo sync -j4 在等待半天的回购完成下载后,我最终在android4.2.2目录中下载了19G的下载资料。 那究竟发生了什么,以及为什么当谷歌说我只应该期待大约8G的源文件时它达到19G?

如何为Android创建可加载的内核模块?

我知道那里有很多描述这个活动的演练和教程,但在阅读了很多这些活动之后,我仍然无法使用它。 如果有人有耐心通过我采取的步骤(发布在下面),并建议我可能偏离轨道我会非常感激。 我花了大约一天半的时间盯着制作文件和阅读演练,所以任何建议都会有所帮助。 环境: 我正在使用Ubuntu 10.04 32位vm。 我是从64位Windows 7托管 我的Core 2 Duo没有64位虚拟机的硬件支持,所以我试图针对Android 2.1内核进行编译 我从Dapper repo安装了Java 1.5并删除了我的1.6安装 其余的工具已根据Android开发文档获得… 根据初始化构建环境 : Java的: $ sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu dapper main multiverse” $ sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse” $ sudo apt-get update $ sudo apt-get install sun-java5-jdk 其他要求: $ sudo apt-get install git-core gnupg flex bison gperf […]

如何将系统服务添加到Android Framework

我想添加自己的框架代码,该代码在Android“system_server”中运行(处理所有系统级服务)。 我的服务加载了一个JNI库,它与我添加到内核的驱动程序进行通信。 该服务旨在允许应用程序向其注册侦听器以从驱动程序获取更新。 我发现了一篇非常好的博客文章( http://www.androidenea.com/2009/12/adding-system-server-to-android.html ),解释了如何添加系统服务,但我无法完全开始工作。 首先,post提到应该使用“适当的”Android.mk文件来编写客户端/测试应用程序,但是没有举例说明。 当我尝试构建它时,我遇到构建错误,说它无法find我添加的服务。 有人能举例说明这可能是什么样的吗? 另外,我想在供应商目录(或froyo中的设备目录)中实现此function,而不是在Android开源代码中实现。 博客文章提到适当的地方是供应商目录,但没有举例说明这应该是什么样子。 谁知道? 有关在Android中实施您自己的系统服务的任何其他信息都会有所帮助。 我的具体工作流程是: Android应用程序 – >系统服务 – > JNI(本机)库 – >设备驱动程序

如何构建Android AOSP的一部分?

我正在尝试在AOSP的外部目录中构建我自己的库和应用程序,但问题是我必须每次运行make并且make将编译/构建整个android。 在我的外部应用程序文件夹中,我有Android.mk文件,但我无法使用ndk-build构建它,它将查找JNI文件夹和NDK_BUILD_PATH,因此问题是: 如何在不重建整个AOSP的情况下构建它?

Android源代码编译错误:“尝试使用java选项增加堆大小’-Xmx ‘”

当我尝试编译Android源代码时出错(Sourcecode-version:6.0.1; RAM:6G;主机系统:ubuntu 14.04),日志如下: including ./system/netd/Android.mk … including ./system/security/keystore-engine/Android.mk … including ./system/security/keystore/Android.mk … including ./system/security/softkeymaster/Android.mk … including ./system/tools/aidl/Android.mk … including ./system/update_engine/Android.mk … including ./system/vold/Android.mk … including ./system/weaved/Android.mk … including ./system/webservd/Android.mk … including ./tools/external/fat32lib/Android.mk … Starting build with ninja ninja: Entering directory `.’ [ 0% 1/21275] Ensure Jack server is installed and started Jack server already installed […]

存储和网络设备驱动程序源代码为Nexus 6和三星Galaxy S6

出于大学研究的目的,我正在寻找Nexus 6和Samsung Galaxy S6源代码的特定部分。 特别是,我对“网络”和“存储”驱动程序源代码感兴趣。 我访问了三星 (据说是开源的)和Motorolla的开发者资源,但无法find所需的代码。 我在这个网站上也有纯Android源代码,但我想“网络”和“存储”的驱动程序可能是特定于硬件的。 我很难find上述两个设备的“网络”和“存储”驱动程序。 如果我要查找的代码是开源的,有人可以告诉我他们所在的位置吗?

模拟电源按钮按下以显示关闭对话框

我正在尝试调用按下电源按钮时出现的关闭对话框。 但我想从Android应用程序或Junit测试用例中完成此任务。 在这种情况下,我会选择最可行的方法。 我一直试图这样做,但未能成功。 我试图使用以下五种方法: 第一种方法: long eventTime = SystemClock.uptimeMillis(); boolean dispateched = launcherButtonWInst.dispatchKeyEvent(new KeyEvent(eventTime, eventTime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_POWER, 0, 0, 0, 0, 0) ); Log.i(LOG_TAG,String.valueOf(dispateched)); boolean dispateched2=launcherButtonWInst.dispatchKeyEvent(new KeyEvent(eventTime+2000, eventTime+2000, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_POWER, 0, 0, 0, 0, 0) ); Log.i(LOG_TAG,String.valueOf(dispateched2)); ================================================== ===== 第二个apporach: private void generateKeys() { // Obtain the WindowManager system service interface IBinder wmbinder = […]

Android repo命令和切换分支

我觉得我对git非常了解,但是当谈到repo命令时,我迷路了。 我已经阅读了有关repo命令的内容,但我仍然不确定它是如何将所有内容联系在一起的。 我最大的问题是,我可以将目前的分支机构从姜饼改为ICS,还可能回来? 我看到命令: repo init -u https://android.googlesource.com/platform/manifest 根据我的理解,这将创建一个主分支的回购。 如果我想指定分支,我可以这样做: repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 我相信,下载大约是8GB,所以如果他们共享代码,我不想让我的回购消失。 有没有办法在回购中切换分支?

Android:通过AOSP源代码创建新的系统权限。

我想知道如何编辑Android操作系统源代码来强加新的权限。 例如,我们拥有BLUETOOTH权限,如果设备提供了新的传感器,那么在应用程序级别使用清单条目为android rom中提供的新权限,可以创建适当的权限以便应用程序使用新传感器。 有人知道在AOSP源代码中如何在操作系统级别创建新的权限? 我认为如果我们修改了android源代码来添加新的权限,我们必须编译我们的自定义SDK以便在应用程序开发中使用权限,否则现有的SDK会给出编译时错误,因为它不会识别我们的自定义权限… 任何想法,想法高度赞赏。