Commit af0335cf authored by Yuval Adam's avatar Yuval Adam

Restore wiki pages for now

parent bb04db48
......@@ -14,25 +14,25 @@
<link rel="canonical" href="https://postmarketos.org/blog/2017/05/26/intro/">
<link href="/pmosweb/static/css/tachyons.min.css" rel="stylesheet">
<link href="/pmosweb/static/css/main.css" rel="stylesheet">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/pmosweb/">
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/pmosweb/static/img/recycle.png">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/pmosweb/">Home</a></li>
<li><a href="/pmosweb/wiki/">Wiki</a></li>
<li><a href="/pmosweb/blog/">Blog</a></li>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
......
......@@ -14,32 +14,32 @@
<link rel="canonical" href="https://postmarketos.org/blog/">
<link href="/pmosweb/static/css/tachyons.min.css" rel="stylesheet">
<link href="/pmosweb/static/css/main.css" rel="stylesheet">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/pmosweb/">
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/pmosweb/static/img/recycle.png">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/pmosweb/">Home</a></li>
<li><a href="/pmosweb/wiki/">Wiki</a></li>
<li><a href="/pmosweb/blog/">Blog</a></li>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
<ul>
<li><a href="/pmosweb/blog/2017/05/26/intro/">intro</a></li>
<li><a href="/blog/2017/05/26/intro/">intro</a></li>
</ul>
......
......@@ -14,25 +14,25 @@
<link rel="canonical" href="https://postmarketos.org/">
<link href="/pmosweb/static/css/tachyons.min.css" rel="stylesheet">
<link href="/pmosweb/static/css/main.css" rel="stylesheet">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body class="homepage">
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/pmosweb/">
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/pmosweb/static/img/recycle.png">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/pmosweb/">Home</a></li>
<li><a href="/pmosweb/wiki/">Wiki</a></li>
<li><a href="/pmosweb/blog/">Blog</a></li>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
......@@ -41,9 +41,11 @@
<section class=" img-text">
<div class="mw8 center">
<img src="/pmosweb/static/img/banner.jpg" class="fl w-third">
<div class="text fl w-two-thirds">
<h2>What is postmarketOS?</h2>
<div class="img-valign">
<img src="/static/img/banner.jpg">
</div>
<div class="text">
<h2>A real Linux distribution on the phone</h2>
<p>postmarketOS (<i>pmOS</i>), is a touch-optimized, pre-configured <a
href="https://alpinelinux.org">Alpine Linux</a> that can be installed on smartphones and other mobile
devices. The project is at very early stages of development and is not yet usable for most users.</p>
......@@ -54,8 +56,8 @@
<section class="inverted img-text">
<div class="mw8 center">
<div class="text fl w-two-thirds">
<h2>Why would you run this?</h2>
<div class="text">
<h2>We develop a <em>sustainable</em> mobile OS</h2>
<p>It is 2017. Pick an average PC from 2007 and install a minimal Linux based operating system. You will be able
to do basic computing tasks (eg. surfing the web, reading E-Mails, listening to music, chatting) just like on an
expensive modern PC. You will even get security updates, so your old computer is protected, just like as a new
......@@ -69,25 +71,50 @@
</p>
</div>
<img src="/pmosweb/static/img/phonepile.jpg" class="fl w-third">
<div class="img-valign">
<img src="/static/img/phonepile.jpg">
</div>
</div>
</section>
<section class="img-text">
<div class="mw8 center">
<img src="/pmosweb/static/img/cmus.jpg" class="fl w-third">
<div class="img-valign fl w-third">
<img src="/static/img/cmus.jpg">
</div>
<div class="text fl w-two-thirds">
<h2>What's in the box?</h2>
<h2>Package and run anything you want</h2>
<p>
With postmarketOS you will have the freedom to customize your Linux experience. There are multiple open options
available in the current Linux community like KDE Plasma Mobile, UBports, Enlightenment or you can just use a
plain shell.
</p>
<p>
PostmarketOS will not impose arbitrary restrictions on you. Use the apps from any ecosystem you want! even run
postmarketOS will not impose arbitrary restrictions on you. Use the apps from any ecosystem you want! even run
desktop software if you want. If your favorite option is not available then help us improving postmarketOS.
</p>
</div>
</div>
</section>
<section class="inverted img-text">
<div class="mw8 center">
<div class="text">
<h2>Getting better security</h2>
<p>
Current Android devices run on old Linux kernels. This is mainly because SoC vendors modify the current kernel
on introduction of the chipset with their own code. This code doesn't get mainlined and thus doesn't benefit from
security updates that are made by Linus's kernel team. Only on select devices you will get some backported security
patches.
</p>
<p>
postmarketOS aims to get as much devices as possible running on a mainline linux kernel. Which is the most we
can currently do to get more security on the devices. For a better overview of the security in the mobile world
see the <a href="https://ollieparanoid.github.io/post/security-warning/">security warning blog post</a>.
</p>
</div>
<div class="img-valign">
<img src="/static/img/backlit.jpg">
</div>
</div>
</section>
......
......@@ -39,12 +39,33 @@ body.homepage main {
body.homepage section {
margin-bottom: 32px;
}
body.homepage section .img-valign {
display: inline-block;
height: 100%;
vertical-align: middle;
}
body.homepage section .img-valign img {
vertical-align: middle;
}
body.homepage section.inverted {
color: white;
background: #333;
border-top: 4px solid #0d8000;
border-bottom: 4px solid #0d8000;
}
body.homepage section.img-text > div {
display: flex;
align-items: center;
justify-content: center;
}
body.homepage section.img-text .img-valign {
flex: 1;
width: 33.3%;
}
body.homepage section.img-text .text {
flex: 2;
width: 66%;
}
body.homepage section.img-text img {
box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.2);
}
......
......@@ -7,7 +7,7 @@ body {
a {
color: @branding-color;
&:hover{
&:hover {
color: darken(@branding-color, 10%);
}
}
......@@ -52,6 +52,15 @@ body.homepage {
section {
margin-bottom: 32px;
.img-valign {
display: inline-block;
height: 100%;
vertical-align: middle;
img {
vertical-align: middle;
}
}
&.inverted {
color: white;
background: #333;
......@@ -60,6 +69,19 @@ body.homepage {
}
&.img-text {
& > div {
display: flex;
align-items: center;
justify-content: center;
}
.img-valign {
flex: 1;
width: 33.3%;
}
.text {
flex: 2;
width: 66%;
}
img {
box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.2);
}
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>postmarketOS</title>
<meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
<meta name="keywords" content="postmarketOS">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all">
<link rel="canonical" href="https://postmarketos.org/wiki/Battery-replacement/">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
<h1>Battery replacement</h1>
<p><em>Add replacement guides and experiences you've made with with batteries bought online here. Be careful, some batteries do not work as good as advertised or might even explode. Do your research on the vendor, before buying.</em></p>
<h3>Guides</h3>
<p><em>TODO</em></p>
<h3>Bad vendors</h3>
<h4>UltraFire</h4>
<ul>
<li><a href="https://www.s-config.com/bad-batteries-china-ultrafire-3500mah/">source</a></li>
<li><a href="http://www.candlepowerforums.com/vb/showthread.php?316888-Fake-Ultrafire-18650-battery-warning">source</a></li>
</ul>
</div>
</main>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>postmarketOS</title>
<meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
<meta name="keywords" content="postmarketOS">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all">
<link rel="canonical" href="https://postmarketos.org/wiki/BlackBerry-Bold-Touch-9900-(Dakota)/">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
<h1>BlackBerry Bold Touch 9900 (Dakota)</h1>
<h3>Contributors</h3>
<ul>
<li>drebrez</li>
</ul>
<h3>What works</h3>
<ul>
<li>Nothing yet</li>
</ul>
<h3>What does not work</h3>
<ul>
<li>Everything else</li>
</ul>
<h3>Device info</h3>
<ul>
<li>Firmware v7.1.0.1033 (Bundle 2807)</li>
<li>Platform 5.1.0.692</li>
<li>Cryptographic Kernel v3.8.7.6</li>
</ul>
<h3>RIM Wireless Device Command-Line Programmer</h3>
<ul>
<li><code>CFP INFO</code> =&gt; <a href="https://pastebin.com/aQNrCdhD">output</a></li>
<li><code>CFP FLASHINFO</code> =&gt; <a href="https://pastebin.com/mKEsFiTA">output</a></li>
</ul>
<h3>Useful Links</h3>
<ul>
<li><a href="http://www.gsmarena.com/blackberry_bold_touch_9900-3116.php">Full phone specifications</a> </li>
<li><a href="http://bbsak.org/">BlackBerry Swiss Army Knife</a> </li>
<li><a href="https://forums.crackberry.com/hybrid-os-f224/hybrid-os7-1-babyluv-barracuda-series-5-9220-93x0-9790-98x0-99xx-727201/">Hybrid OS7.1 Babyluv by Barracuda Series 5</a></li>
<li><a href="http://dsync.blogspot.ch/2014/10/tutorial-custom-upgrade-blackberry-os.html">Custom Upgrade BlackBerry OS 7.1 Walkthrough</a></li>
</ul>
</div>
</main>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>postmarketOS</title>
<meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
<meta name="keywords" content="postmarketOS">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all">
<link rel="canonical" href="https://postmarketos.org/wiki/Boot-process/">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
<h1>Boot process</h1>
<p>Have you already flashed your device with pmOS? Now it's time to run it.</p>
<p>Power on your device and connect it to your USB port. pmOS uses the USB interface as a network interface and runs a DHCP server on it and <code>dmesg</code> will show something like</p>
<pre class="codehilite"><code>[ 6284.442088] usb 1-1: new high-speed USB device number 36 using xhci_hcd
[ 6284.627106] usb 1-1: New USB device found, idVendor=18d1, idProduct=d001
[ 6284.627123] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6284.627134] usb 1-1: Product: Android
[ 6284.627143] usb 1-1: Manufacturer: Android
[ 6284.627151] usb 1-1: SerialNumber: 0123456789ABCDEF
[ 6284.632322] rndis_host 1-1:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-1, RNDIS device, b2:c4:1e:03:64:b9
[ 6285.239048] rndis_host 1-1:1.0 enp0s20f0u1: renamed from usb0
[ 6285.287058] IPv6: ADDRCONF(NETDEV_UP): enp0s20f0u1: link is not ready</code></pre>
<p>And you'll have a new interface with IP in the range 172.16.42.0/24</p>
<pre class="codehilite"><code>$ ifconfig enp0s20f0u1
enp0s20f0u1 Link encap:Ethernet HWaddr b2:c4:1e:03:64:b9
inet addr:172.16.42.107 Bcast:172.16.42.255 Mask:255.255.255.0
inet6 addr: fe80::dbd2:4531:89f2:d2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1226 (1.2 KB) TX bytes:8375 (8.3 KB)</code></pre>
<p>It the interface doesn't automatically get an IP address on your system (for example on systems without NetworkManager) you need to start a dhcp client to get one.</p>
<pre class="codehilite"><code class="language-bash"># Replace the interface name with the one on your machine
$ dhclient -v enp0s20f0u1</code></pre>
<p>If this fails, you may need to first assign an ethernet address to it:</p>
<pre class="codehilite"><code># ip l set enp0s20f0u1 address 12:12:12:12:12:12</code></pre>
<p>Then you can try the above dhclient command.</p>
<p>At this point, your device will show a logo and will be waiting for you to connect using telnet and enter the password to decrypt the filesystem (Make sure the last segment of the IP address is a "1" and not what is shown in the output of <code>ifconfig</code>!).</p>
<pre class="codehilite"><code>telnet 172.16.42.1
Trying 172.16.42.1...
Connected to 172.16.42.1.
Escape character is '^]'.
Enter passphrase for /dev/mapper/mmcblk0p25p2:
Connection closed by foreign host.</code></pre>
<p>After entering the password, you'll get disconnected and the graphic interface will show up in your device.</p>
<p>Congratulations, you are now running postmarketOS!</p>
<p>From now on you can also login to your device using <code>ssh</code> and the password you set during the install phase</p>
<pre class="codehilite"><code>$ ssh user@172.16.42.1
user@172.16.42.1's password:
Welcome to postmarketOS!
This distribution is based on Alpine Linux.
Read both our wikis to find a large amount of how-to guides and
general information about administrating and development.
See &lt;https://postmarketos.org/wiki&gt; and &lt;https://wiki.alpinelinux.org&gt;.
You may change this message by editing /etc/motd.
localhost:~$</code></pre>
<p>Use <code>sudo</code> to run commands as <code>root</code>, it is configured.</p>
</div>
</main>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>postmarketOS</title>
<meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
<meta name="keywords" content="postmarketOS">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all">
<link rel="canonical" href="https://postmarketos.org/wiki/Build-internals/">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
<h1>Build internals</h1>
<p>To build a package with <code>pmbootstrap</code>, you will only need the command <code>pmbootstrap build hello-world</code>. Optionally with <code>--force</code> to build even if the package was already built, and with <code>--arch=armhf</code> to build for another architecture, replace <code>armhf</code> accordingly. This wiki page lists some more information about what is going on in the background.</p>
<h3>initramfs</h3>
<p>The <a href="https://en.wikipedia.org/wiki/Initramfs">initramfs</a> shows the boot splash images, and allows the root partition to be unlocked (currently via telnet). You can add a hook to inspect the initramfs running on the device, as described in [[Inspecting the initramfs]].</p>
<p>To rebuild the initramfs, run <code>mkinitfs</code> inside the chroot with the right parameters (or - much easier - <code>pmbootstrap initfs build</code>). This gets done automatically, whenever a new kernel gets installed, or when the <code>postmarketos-mkinitfs</code> package gets installed the first time.</p>
<h3>pmbootstrap vs. abuild</h3>
<p><code>pmbootstrap</code> wraps around <code>abuild</code> (Alpine's official program to build [[apks|Glossary#apk]]), but it does a few things different than <code>abuild</code> (which internally often calls <code>apk</code>):
<em> <code>pmbootstrap</code> can cross-compile out of the box, utilizing different chroots as needed (see below for details)
</em> <code>pmbootstrap</code> does dependency parsing on its own (so it works across the <code>aports</code> folder <em>and</em> the binary repository, also with <a href="https://ollieparanoid.github.io/post/50-days-of-postmarketOS/#timestamp-based-rebuilds">timestamp based rebuilds</a> and can detect across chroots when a package is outdated and explicitly install them).
<em> <code>pmbootstrap</code> does </em>not<em> honor operators in dependencies, such as: <code>&lt;</code>, <code>&gt;</code>, <code>=</code>, <code>!</code>. These simply get ignored (<code>!</code> packages don't count as dependencies). This may lead to errors, if it does please report them. However, since we're calling <code>apk</code> to install the packages, it does the real dependency checking and so far it's working well enough.
</em> <code>pmbootstrap</code> parses <code>APKINDEX</code> and <code>APKBUILD</code> files on its own.
<em> <code>APKINDEX</code> parsing is considered to be pretty good (because the format is dead simple!)
</em> <code>APKBUILD</code> parsing would require a shell to be done perfectly (which would in turn kill performance). The way it is implemented right now, is that the variables we care about are hardcoded inside the <code>pbm/config/__config.py</code> or if not possible otherwise directly in <code>pmb/parse/apkbuild.py</code>. That is really fast and works for all packages we care about. If it breaks somewhere, it should be easy to patch.
<em> <code>pmbootstrap</code> does not remove build dependencies after a build is done. This is for performance reasons - if you want a clean stat, run <code>pmbootstrap zap</code>.
</em> <code>pmbootstrap</code> has a hack right now, that <code>gzip</code> always uses weak compression (also for speed)</p>
<h3>Cross-compile types</h3>
<p>There are two cross-compile types supported. <a href="https://github.com/postmarketOS/pmbootstrap/blob/master/pmb/build/autodetect.py"><code>pmb.build.autodetect.crosscompile()</code></a> figures out, which one is the right one for each build.
<em> <code>None</code>: The package does not have any binaries (<a href="https://wiki.alpinelinux.org/wiki/APKBUILD#arch"><code>noarch</code></a>), it ends in <code>-repack</code> (such as <a href="https://github.com/postmarketOS/pmbootstrap/tree/master/aports/qemu-user-static-repack">qemu-user-static-repack</a>) or the target architecture is the same as the "native" architecture (e.g. compiling <code>heimdall</code> for <code>x86_64</code> on an <code>x86_64</code> system).
</em> <code>"native"</code>: the build system of the package understands cross-compiling, like all kernel packages. We can use the native chroot with the cross-compiler inside that chroot for maximum speed.
<em> <code>"distcc"</code>: the build system of the package does </em>not* understand cross-compiling, so we run the whole compiling process inside a chroot with the target architecture (with qemu user mode emulation, this is slow). We avoid using qemu emulation for the compiler though, because we use the cross-compiler inside the native chroot through distcc (which was originally meant to share compiling efforts across the network, but it works for this case. <a href="https://archlinuxarm.org/wiki/Distcc_Cross-Compiling">Arch Linux ARM also does this</a> and has a detailed description of how to set this up manually.)</p>
<h3>Caches</h3>
<p><code>pmbootstrap</code> uses various caches. They can all be found inside the <code>work</code> folder, and start with <code>cache_</code>. All cache folders get mounted to the appropriate chroots, depending on $ARCH. They are shared among the chroots, when it makes sense (e.g. <code>cache_distfiles</code>).
<em> <code>cache_apk_$ARCH</code>: APK files from binary repositories (see also: <a href="https://wiki.alpinelinux.org/wiki/Local_APK_cache#To_manually_enable_Local_Cache_on_HDD_install">Local APK cache</a>)
</em> <code>cache_ccache_$ARCH</code>: ccache: Whenever you compile something with <code>pmbootstrap</code>, the output gets cached in this folder (depending on the architecture). When you compile the same code for the second time, the cached output gets used, thus saving you a lot of time (think of re-compiling kernels, because you want to test another kernel config option etc.)
<em> <code>cache_distfiles</code>: Whenever you build a package, <code>abuild</code> (which pmbootstrap wraps) will download the source files to the <code>distfiles</code> cache (and skip these downloads, when they already exist). The exact file name can be controlled inside the APKBUILD (<a href="https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#source">more info</a>).
</em> <code>cache_git</code>: <code>pmbootstrap</code> can download git repositories. This gets used in <code>pmbootstrap aportgen</code>, which copies a package (aka. aport) from Alpine Linux and customizes it (for example: <code>gcc-armhf</code>), so we inherit all patches and changes automatically, without much maintenance work. The git repos get stored inside this folder.
* <code>cache_http</code>: This stores files, that get downloaded with <a href="https://github.com/postmarketOS/pmbootstrap/blob/master/pmb/helpers/http.py"><code>pmb.helpers.http.download()</code></a>, so they don't need to be downloaded again every time. Currently, this gets used for the initial download of Alpine Linux' main repositories <code>APKINDEX.tar.gz</code> and <a href="https://pkgs.alpinelinux.org/package/edge/main/armhf/apk-tools-static">apk-tools-static</a> (which is a static build of the <code>apk</code> package manager, used to set up the chroot).</p>
</div>
</main>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>postmarketOS</title>
<meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
<meta name="keywords" content="postmarketOS">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all">
<link rel="canonical" href="https://postmarketos.org/wiki/Coolpad-Sky-3-E502-(Modena-2)/">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>
<h1>Coolpad Sky 3 E502 (Modena 2)</h1>
<h3>Contributor</h3>
<ul>
<li><a href="https://github.com/McBitter">McBitter</a></li>
</ul>
<h3>Status</h3>
<p>Flashing a custom kernel is not possible yet, but McBitter is working on replacing the bootloader with a custom fork of <a href="https://github.com/littlekernel/lk">LK</a> (a proprietary fork of LK is already present on the device, but it does not allow flashing a custom kernel). When that works, porting pmOS can begin.</p>
<h4>List of LCM's (the LCD control module) in original firmware</h4>
<ul>
<li>hx8394f_dsi_ld_cpt_vdo</li>
<li>ili9881c_dsi_ys_cmi_vdo</li>
<li>otm1287a_dsi_by_auo</li>
<li>ili9881c_dsi_ld_auo_vdo</li>
</ul>
<h4>Digitizer that is present on the model I have</h4>
<ul>
<li>TBD</li>
</ul>
<h3>Links</h3>
<ul>
<li><a href="https://forum.xda-developers.com/u/repair/coolpad-sky-3-e502-modena-2-unbrick-t3610163">Unbrick tutorial</a></li>
<li><a href="https://androidmtk.com/smart-phone-flash-tool">Proprietary flashing software SP Flash Tool</a></li>
<li><a href="https://gitgud.io/mcbitter/coolpad_sky_3_E502">Original firmware with Android 6.0</a></li>
</ul>
<h3>Links to useful reverse engineering hints</h3>
<ul>
<li>http://www.stevenhoneyman.co.uk/2015/02/reconstructing-mtk-lcm-drivers.html</li>
<li>https://forum.xda-developers.com/showpost.php?p=70395172&amp;postcount=5882</li>
</ul>
</div>
</main>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>postmarketOS</title>
<meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
<meta name="keywords" content="postmarketOS">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all">
<link rel="canonical" href="https://postmarketos.org/wiki/Creating-a-package/">
<link href="/static/css/tachyons.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<main class="mw8 center">
<div class="cf ph2-ns">
<header>
<a class="title" href="/">
<h1 class="f2 lh-title branding">
<img src="/static/img/recycle.png">
<span>postmarketOS</span>
</h1>
</a>
<div class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/wiki/">Wiki</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</header>