<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
>

<channel>
<title><![CDATA[Dobrica Pavlinušić's random unstructured stuff: Android development]]></title>
<link>https://saturn.ffzg.hr/rot13/index.cgi?android_development</link>
<description></description>
<pubDate>Wed, 06 Oct 2010 14:26:27 -0000</pubDate>
<webMaster>root@saturn.ffzg.hr</webMaster>
<generator>Socialtext Workspace v2.19.0.2</generator>

<item>
<title><![CDATA[Android development]]></title>
<link>https://saturn.ffzg.hr/rot13/index.cgi?android_development</link>
<description><![CDATA[<div>Creator: Dobrica Pavlinušić</div><hr/><div>Tags: Android</div><hr/><div class="wiki">
<p>
I will try to collect here useful tips for making Android development work for command-line loving person like me. See <a href="https://saturn.ffzg.hr/rot13/index.cgi?android_g1" title="(190 months)  toc If you are not into hardware [Android development] is better page for you. Service manual file ...">Android G1</a> if you are interested in hardware.</p>
<div class="nlw_phrase"><table class="wafl_container">
  <tr>
    <td>
      <div class="wafl_box">
        
          <div class="wafl_titlebox">
            <div class="wafl_title">
              
                Contents: [Dobrica Pavlinušić's random unstructured stuff]
              
            </div>
          </div>
          <div class="wafl_items">
            
              <div class="wiki">
<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#adb">Dobrica Pavlinušić's random unstructured stuff (ADB)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] ADB} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#remote_adb_access">Dobrica Pavlinušić's random unstructured stuff (Remote adb access)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Remote adb access} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#provision_device">Dobrica Pavlinušić's random unstructured stuff (provision device)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] provision device} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#cyanogenmod">Dobrica Pavlinušić's random unstructured stuff (CyanogenMod)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] CyanogenMod} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#google_apps">Dobrica Pavlinušić's random unstructured stuff (Google apps)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Google apps} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#build">Dobrica Pavlinušić's random unstructured stuff (Build)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Build} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#flashing">Dobrica Pavlinušić's random unstructured stuff (flashing)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] flashing} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#sl4a">Dobrica Pavlinušić's random unstructured stuff (SL4A)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] SL4A} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#x86">Dobrica Pavlinušić's random unstructured stuff (x86)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] x86} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#froyo_2_2">Dobrica Pavlinušić's random unstructured stuff (froyo 2.2)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] froyo 2.2} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#eclair_2_1">Dobrica Pavlinušić's random unstructured stuff (eclair 2.1)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] eclair 2.1} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#application_build_process">Dobrica Pavlinušić's random unstructured stuff (Application build process)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Application build process} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#repo">Dobrica Pavlinušić's random unstructured stuff (repo)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] repo} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#repack_applications">Dobrica Pavlinušić's random unstructured stuff (repack applications)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] repack applications} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#repository_with_scripts">Dobrica Pavlinušić's random unstructured stuff (repository with scripts)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] repository with scripts} --></span></li>
</ul>
</div>

            
            
          </div>
        
      </div>
    </td>
  </tr>
</table>
<!-- wiki: {toc: }
--></div><br /><br /><h1 id="adb">ADB</h1>
<p>
Part of <a target="_blank" title="(external link)" href="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a></p>
<h2 id="remote_adb_access">Remote adb access</h2>
<pre>
dpavlin@t61p:~/Downloads/android$ adb shell
# setprop service.adb.tcp.port 5555
</pre>
<br /><pre>
dpavlin@t61p:~$ ssh -R 5555:192.168.1.40:5555 klin
</pre>
<br /><pre>
dpavlin@klin:~$ adb connect 127.0.0.1:5555

dpavlin@klin:~$ adb devices
List of devices attached 
127.0.0.1:5555  device
</pre>
<br /><h2 id="provision_device">provision device</h2>
<ul>
<li><a target="_blank" title="(external link)" href="http://balloonboard.org/balloonwiki/AndroidBalloon">http://balloonboard.org/balloonwiki/AndroidBalloon</a></li>
</ul>
<pre>
adb shell
su
cd /data/data/com.android.providers.settings/databases
sqlite3 settings.db
INSERT INTO system (name, value) VALUES ('device_provisioned', 1);
.exit
</pre>
<br /><h1 id="cyanogenmod">CyanogenMod</h1>
<ul>
<li><a target="_blank" title="(external link)" href="http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Dream_%26_Sapphire">http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Dream_%26_Sapphire</a></li>
<li>enable swap with <span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/99swapon?action=attachments_download;page_name=android_development;id=20100914232320-0-8770">99swapon</a><!-- wiki: {file: 99swapon} --></span> in /system/etc/init.d/</li>
</ul>
<h2 id="google_apps">Google apps</h2>
<pre>
dpavlin@android:/srv/cyanogen$ wget \
--referer=http://developer.htc.com/google-io-device.html \
-O dream_sapphire_update.zip \
http://member.america.htc.com/download/RomCode/ADP/signed-google_ion-ota-14721.zip?
--2010-10-01 17:42:10--  http://member.america.htc.com/download/RomCode/ADP/signed-google_ion-ota-14721.zip?
Resolving member.america.htc.com... 216.139.227.226
Connecting to member.america.htc.com|216.139.227.226|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 53965203 (51M) [application/x-zip-compressed]
Saving to: `dream_sapphire_update.zip'

100%[=========================================================================&gt;] 53,965,203   376K/s   in 2m 29s  

2010-10-01 17:44:39 (354 KB/s) - `dream_sapphire_update.zip' saved [53965203/53965203]

dpavlin@android:/srv/cyanogen$ cd device/htc/dream_sapphire
dpavlin@android:/srv/cyanogen/device/htc/dream_sapphire$ ./unzip-files.sh
</pre>
<br /><h2 id="build">Build</h2>
<p>
A <strong>lot</strong> of host dependencies to install and build.</p>
<pre>
dpavlin@android:/srv/cyanogen$ . build/envsetup.sh
dpavlin@android:/srv/cyanogen$ lunch
dpavlin@android:/srv/cyanogen$ make -j8
</pre>
<br /><h2 id="flashing">flashing</h2>
<p>
Transfer files you just built:</p>
<pre>
dpavlin@x200:/virtual/android/cyanogen$ rsync -v android:/srv/cyanogen/out/target/product/dream_sapphire/{boot.img,recovery.img,system.img,android-info.txt} 2010-09-25/
</pre>
<br /><p>
Download fastboot from <a target="_blank" title="(external link)" href="http://developer.htc.com/adp.html">http://developer.htc.com/adp.html</a></p>
<p>
Start G1 by pressing camera+power button</p>
<pre>
dpavlin@x200:/virtual/android/cyanogen$ sudo ./fastboot devices
HT840GZ00000    fastboot

dpavlin@x200:/virtual/android/cyanogen$ sudo sh -c &quot;ANDROID_PRODUCT_OUT=2010-09-25/ ./fastboot flashall&quot;
--------------------------------------------
Bootloader Version...: 1.33.2005
Baseband Version.....: 2.22.19.26I
Serial Number........: HT840GZ33728
--------------------------------------------
checking product... OKAY
checking version-bootloader... OKAY
sending 'boot' (2234 KB)... OKAY
writing 'boot'... OKAY
sending 'recovery' (3308 KB)... OKAY
writing 'recovery'... OKAY
sending 'system' (92239 KB)... OKAY
writing 'system'... OKAY
rebooting... 
</pre>
<br /><ul>
<li>review changes: <a target="_blank" title="(external link)" href="http://github.com/CyanogenMod/android_vendor_cyanogen/blob/froyo/CHANGELOG.mkdn">http://github.com/CyanogenMod/android_vendor_cyanogen/blob/froyo/CHANGELOG.mkdn</a></li>
</ul>
<h1 id="sl4a">SL4A</h1>
<ul>
<li><a target="_blank" title="(external link)" href="http://code.google.com/p/android-scripting/wiki/RemoteControl">http://code.google.com/p/android-scripting/wiki/RemoteControl</a></li>
</ul>
<h1 id="x86">x86</h1>
<ul>
<li><a target="_blank" title="(external link)" href="http://www.android-x86.org/getsourcecode">http://www.android-x86.org/getsourcecode</a></li>
</ul>
<h2 id="froyo_2_2">froyo 2.2</h2>
<pre>
dpavlin@android:/srv/android-x86$ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86
dpavlin@android:/srv/android-x86$ repo sync

# configure build
dpavlin@android:/srv/android-x86$ . build/envsetup.sh
dpavlin@android:/srv/android-x86$ lunch

# build
dpavlin@android:/srv/android-x86$ make -j8
</pre>
<br /><p>
audio doesn't work</p>
<p>
alternativly, you can build <tt>generix_x86</tt></p>
<p>
We need <tt>/sbin</tt> in <tt>PATH</tt> to access <tt>e2fsprogs</tt> utilities needed to build image</p>
<pre>
dpavlin@android:/srv/android-x86$ export PATH=/sbin:$PATH
dpavlin@android:/srv/android-x86$ make -j8 iso_img TARGET_PRODUCT=generic_x86
</pre>
<br /><h2 id="eclair_2_1">eclair 2.1</h2>
<pre>
dpavlin@android:/srv/android-x86$ repo init -u git://git.android-x86.org/manifest.git -b eclair-x86
dpavlin@android:/srv/android-x86$ repo sync
dpavlin@android:/srv/android-x86$ make -j8 iso_img TARGET_PRODUCT=generic_x86
# doesn't work

dpavlin@android:/srv/android-x86$ make -j8 iso_img TARGET_PRODUCT=eeepc
</pre>
<br /><h1 id="application_build_process">Application build process</h1>
<ul>
<li><a target="_blank" title="(external link)" href="http://www.alittlemadness.com/2010/06/07/understanding-the-android-build-process/">http://www.alittlemadness.com/2010/06/07/understanding-the-android-build-process/</a></li>
</ul>
<h1 id="repo">repo</h1>
<ul>
<li><a target="_blank" title="(external link)" href="http://source.android.com/source/git-repo.html">http://source.android.com/source/git-repo.html</a></li>
<li>enviroment vars: REPO_PROJECT REPO_PATH REPO_REMOTE</li>
<li>see git command output: <tt>export REPO_TRACE=1</tt></li>
<li>export md5 hashes of verything (create tag): <tt>repo manifest -r -o tag.xml</tt></li>
</ul>
<h1 id="repack_applications">repack applications</h1>
<ul>
<li><a target="_blank" title="(external link)" href="http://code.google.com/p/android-apktool/">http://code.google.com/p/android-apktool/</a></li>
</ul>
<h1 id="repository_with_scripts">repository with scripts</h1>
<div class="nlw_phrase"><div class="fetchrss_box">
  <div class="fetchrss_titlebox">
    
 <div class="fetchrss_title">
     fetchatom: http://github.com/dpavlin/android-command-line/commits/master.atom
 </div>

  </div>
  
<ul class="fetchrss_item">
  <li class="fetchrss_item">
    There was an error: 500 SSL negotiation failed: 

  </li>
</ul>

</div>
















<!-- wiki: {fetchatom: http://github.com/dpavlin/android-=command-=line/commits/master.atom full}
--></div><br /></div>
<hr/><div>Attachments: 99swapon</div>]]></description>
<author>Dobrica Pavlinu&#x161;i&#x107;</author>
<category>Android</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/rot13/index.cgi?android_development</guid>
<pubDate>Wed, 06 Oct 2010 14:26:27 -0000</pubDate>
</item>
</channel>
</rss>