<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=ROM_Android%3A_Menambahkan_builtin_aplikasi</id>
	<title>ROM Android: Menambahkan builtin aplikasi - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=ROM_Android%3A_Menambahkan_builtin_aplikasi"/>
	<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=ROM_Android:_Menambahkan_builtin_aplikasi&amp;action=history"/>
	<updated>2026-04-19T20:02:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://onnocenter.or.id/wiki/index.php?title=ROM_Android:_Menambahkan_builtin_aplikasi&amp;diff=41808&amp;oldid=prev</id>
		<title>Onnowpurbo: New page: &lt;languages /&gt; &lt;translate&gt; == Intro:  Adding a new app to the build == &lt;!--T:1--&gt;  &lt;!--T:2--&gt; So after completing a build, people have been asking how t...</title>
		<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=ROM_Android:_Menambahkan_builtin_aplikasi&amp;diff=41808&amp;oldid=prev"/>
		<updated>2015-01-02T21:54:26Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt; == Intro:  Adding a new app to the build == &amp;lt;!--T:1--&amp;gt;  &amp;lt;!--T:2--&amp;gt; So after &lt;a href=&quot;/wiki/index.php?title=Development&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Development (page does not exist)&quot;&gt;completing a build&lt;/a&gt;, people have been asking how t...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Intro:  Adding a new app to the build == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
So after [[Development#Learning_To_Build_CM|completing a build]], people have been asking how to add their own app(s) to the CyanogenMod .zip file.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;easy&amp;quot; way--  Add it to the zip manually === &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
One way to do this is to simply add the [[wikipedia:APK_(file_format)|.apk]] into the .zip and then edit the recovery installation script (written in a simple scripting language called &amp;quot;[[edify]]&amp;quot;) to copy the file from the .zip to the device.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;right&amp;quot; way:  Make a part of the build repository so it auto-builds === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Add app source to &amp;lt;code&amp;gt;/packages/apps&amp;lt;/code&amp;gt; ==== &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
You can do this manually, or you can do it via the &amp;lt;code&amp;gt;.repo/local_manifests/*.xml&amp;lt;/code&amp;gt;. If you do it this way, a &amp;lt;code&amp;gt;repo sync&amp;lt;/code&amp;gt; will update the source to your app from whatever git repository you name in the [[Doc:_Using_local_manifests|local manifest]]. It's pretty easy to use, and allows you to override/replace/add/remove any official CM repository with one or more of your own.&lt;br /&gt;
&lt;br /&gt;
==== Determine the name of the project from &amp;lt;code&amp;gt;Android.mk&amp;lt;/code&amp;gt; ==== &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Regardless of how you put the source in &amp;lt;code&amp;gt;packages/apps/&amp;lt;/code&amp;gt;, assuming that the source for the app has an &amp;lt;code&amp;gt;Android.mk&amp;lt;/code&amp;gt; [[wikipedia:Make_(software)|Makefile]], you can get it to automatically build and install the resulting file in your &amp;lt;code&amp;gt;$OUT&amp;lt;/code&amp;gt; directory (and thus your &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;) by simply determining the name of the project, which is typically defined in &amp;lt;code&amp;gt;Android.mk&amp;lt;/code&amp;gt; with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;LOCAL_PACKAGE_NAME := PackageName&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Add the project to &amp;lt;code&amp;gt;device.mk&amp;lt;/code&amp;gt; (or whatever .mk) in the device folder ==== &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Then just add that project to be built in the &amp;lt;code&amp;gt;/device/[MANUFACTURER]/[CODENAME]/device.mk&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Let's look at the [[Grouper_Info|grouper]] device aka the [[Grouper_Info|Nexus 7]]. You want to find where the list of packages to build is for this device, in &amp;lt;code&amp;gt;device/asus/grouper/device-common.mk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{note|note=For the nexus 7, the &amp;lt;code&amp;gt;device-common.mk&amp;lt;/code&amp;gt; file is shared with the tilapia device (the Nexus 7 GSM version), so if you're building for another device that doesn't have &amp;lt;code&amp;gt;device-common.mk&amp;lt;/code&amp;gt;, you'd probably make the edit to &amp;lt;code&amp;gt;device.mk&amp;lt;/code&amp;gt; instead.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Now you have a choice. If &amp;lt;code&amp;gt;PRODUCT_PACKAGES&amp;lt;/code&amp;gt; was previously defined, you can add a value like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRODUCT_PACKAGES += MyPackageName&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt; part means to append it to the list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Or, if it's simpler, you can just add it to the end an existing &amp;lt;code&amp;gt;PRODUCT_PACKAGES&amp;lt;/code&amp;gt; list of projects by appending a &amp;quot;&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&amp;quot; to the last item and then adding &amp;lt;code&amp;gt;MyPackageName&amp;lt;/code&amp;gt; at the end. Notice that you can't put any commented lines (ie, lines starting with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;) or even blank lines in the list of items to be built.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
So if the list looks like this...&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRODUCT_PACKAGES := \&lt;br /&gt;
 lights.grouper \&lt;br /&gt;
 audio.primary.grouper&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
...you'd add it to the end:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRODUCT_PACKAGES := \&lt;br /&gt;
 lights.grouper \&lt;br /&gt;
 audio.primary.grouper \&lt;br /&gt;
 MyPackage&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
If the source for your app does not have the &amp;lt;code&amp;gt;Android.mk&amp;lt;/code&amp;gt; makefile stuff, you'll need to add it. You can use any of the existing packages in &amp;lt;code&amp;gt;packages/apps&amp;lt;/code&amp;gt; as a model for what needs to be done to build your particular app.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
See [http://www.kandroid.org/ndk/docs/ANDROID-MK.html here for official documentation] on Android .mk files.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referensi==&lt;br /&gt;
&lt;br /&gt;
* http://wiki.cyanogenmod.org/w/Doc:_adding_your_own_app&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>