[NOTICE] ATTENTION ALL ROM/KERNEL DEVELOPERS - Firmware Packages! - Galaxy S I9000 Android Development

The Heimdall Suite 1.3 release includes a major overhaul of Heimdall Frontend. The most important feature is that Heimdall Frontend now provides a means for you to easily package your firmware/ROMs/kernels in a "Heimdall Firmware Package".
Heimdall Firmware Packages contain any files users will need to flash as well as additional information including supported devices, developer names, homepage and donate URLs etc.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Heimdall Firmware Packages can be customised by users or flashed directly as provided by firmware developers. Generally users won't want or need to customise the firmware so flashing your firmware becomes as simple as loading the firmware package and pressing the "Start" button.
Distributing your firmware via Heimdall Firmware Packages should simplify the flashing process for end users and decrease the number of bricks that occur as a result of users flashing incorrect firmware.
Heimdall 1.3.0 has officially been released and can be download from the Heimdall product page.
Feedback is very welcome! As always donations are also very much appreciated.

The following information/tutorial is included in the official README for all platforms but is reprinted here so developers can gain an understanding of the process before downloading Heimdall Frontend.
How to Create a Heimdall Firmware Package:
Firstly, Heimdall's firmware package format is just a regular TAR archive
compressed with gzip. The only two real requirements are that a valid
firmware.xml must be included (refer to Appendix A) and you can only
include files (no directories, links etc.) As such if you'd like there is
nothing preventing you creating Heimdall packages manually. Of course
Heimdall Frontend provides a simple user interface that takes care of all
the hard work for you.
There are two ways in which you can create a firmware package. You can
create a package from scratch, or you can load an existing package, apply
modifications and then save the package. Creating a package from scratch
is the preferred approach, by taking this approach you're far less likely
to run into file name length limitations, these are not Heimdall's own
limitation but rather a limitation of the TAR archive format.
Before you can access Heimdall Frontend's firmware creation functionality
(available from the "Create Package" tab) you must first specify which
files will be included in your package as well as a few flashing options
i.e. Whether or not users should repartition when flashing. This
information must be filled out from the "Flash" tab in exactly the same
fashion you would provide information to flash your device (see "Performing
a Custom Flash with Heimdall Frontend"). As mentioned above, it's not the
preferred means, but you're able to load an existing package as a starting
point for this information.
Once you've specified the files/partitions you wish to include in your
firmware package the "Create Package" tab will become available. Clicking
this tab will display additional information that you can include in your
package. In order to continue you must fill out all sections except for the
URLs section, which is optional. The following is break-down of what all
these options mean.
- General Firmware Information: -
Firmware Name - This is the name of your particular firmware. An
example would be "Cyanogenmod".
Firmware Version - This is the particular version identifier for your
package. Any valid string will be accepted although a the inclusion
of decimal point version number is preferred releases i.e. "7.1".
If it makes sense then feel free to append a text string like "RC1"
or "Beta 1" to the decimal point version.
Platform Name - This is the name of platform (or operating system) that
your firmware is based on. In most cases this will simply be
"Android".
Platform Version - This is the operating system version that your
firmware is based on. Again decimal point version numbers are
preferred over text, i.e. "2.3.4" is preferred over "Gingerbread".​
- Developers -
URLs (Optional):
Homepage - Here you can enter your personal URL or a URL particularly
pertaining to the firmware being packaged. The URL must be well
formed for it to work. An example of a well formed URL is
"http://www.glassechidna.com.au/products/heimdall/". It is
important to include "http://" in order to specify the protocol as
other protocols such as "ftp://" are equally valid although
unlikely to be used.
Donate - Here you can enter a URL that will link users to a page to
make donations for the effort you've put into developing your
firmware. Once again the URL must be well formed but there is no
requirement on how your donation page should work. For instance
both "http://www.glassechidna.com.au/donate/" and
"http://forum.xda-developers.com/donatetome.php?u=2710388" are
equally valid.​
Developer Info:
Name - Here you can enter in the name of individual team members or a
team name. Click "Add" and the developer will be added to the list
on the right. If you make a mistake you can select a developer from
the list and click "Remove". You can list as many developers as you
like however size constraints of the "Load Package" means only a
few will be visible. Where possible you may want to opt for team
names over listing individual team members.​
- Supported Devices -
This section allows you to create a list of devices that are supported by
your particular firmware. Although Heimdall isn't capable of enforcing this
we strongly recommend you take this section seriously. If filled out
correctly you could help save a number of accidental bricks!
Device Info:
Manufacturer - This is where you can enter the name of the manufacturer
for a particular device. For now this will most likely be
"Samsung".
Name - This is the human readable name for a particular device.
"Galaxy S", "Galaxy S II", "Droid Charge", "Vibrant" and
"Galaxy S (Telstra)" are all valid names. There are a lot of
possible variations here so be as specific as you think is
necessary.
Product Code - This is by far the most important bit of device
information. Device names tend to be region specific and further
subject to the whims of telecommunication companies and resellers.
Product Codes (or product IDs) are designated by manufacturers and
are generally the definitive means of referring to a particular
device. Examples are "GT-I9000", "GT-I9100" and "SCH-I897". If
you're unsure of a particular product code then Google and
GSMArena are your friends!​
After filling out all the necessary information the "Build" button will be
enabled. If it's still disabled then you know you're missing some required
information. In particular you must specify at least one developer and at
least one supported device. Pressing the "Build" button will bring up a
save dialogue where you must chose a file name for your particular package.
Don't worry about specifying the ".tar.gz" extension Heimdall Frontend will
take care of this automatically.
Once you've chosen a file name Heimdall Frontend will begin the process of
building the firmware package. In doing so a valid firmware.xml file will
be generated from the information entered, all files will be archived in a
single TAR file then the TAR archive will be compressed via gzip
compression. Compression will take a little while but you will see progress
bars so you know the application hasn't hung. When the progress bars
disappear you're finished making your package.
Congratulations! You're now ready to redistribute your firmware package
online or by any means you see fit.​
Appendix A - firmware.xml
The following details a part of the Heimdall Firmware Package format. This
is only relevant to developers or advanced users who wish to create Heimdall
Firmware Packages outside of Heimdall Frontend or in some way integrate support
for the format in their own software.
All Heimdall Firmware Packages must contain a file called firmware.xml. This
file stores information stores meta-data for the package as well as information
about other files contained in the package that indicates how they should be
flashed.
The format is fairly straight-forward so it won't be explained in great detail,
nonetheless the following is an example of a valid firmware.xml file.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<firmware version="1">
<name>Test Firmware</name>
<version>1.1</version>
<platform>
<name>Android</name>
<version>2.3.4</version>
</platform>
<developers>
<name>Benjamin Dobell</name>
<name>Hedonism Bot</name>
</developers>
<url>http://www.glassechidna.com.au/</url>
<donateurl>http://www.glassechidna.com.au/donate/</donateurl>
<devices>
<device>
<manufacturer>Samsung</manufacturer>
<product>GT-I9000</product>
<name>Galaxy S</name>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<product>GT-I9000T</product>
<name>Galaxy S (Telstra)</name>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<product>GT-I9000M</product>
<name>Vibrant</name>
</device>
</devices>
<pit>Nl3276-I9000 s1_odin_20100512.pit</pit>
<repartition>0</repartition>
<noreboot>0</noreboot>
<files>
<file>
<id>0</id>
<filename>gq3276-boot.bin</filename>
</file>
<file>
<id>24</id>
<filename>Uh3276-cache.rfs</filename>
</file>
<file>
<id>22</id>
<filename>em3276-factoryfs.rfs</filename>
</file>
<file>
<id>11</id>
<filename>fl3276-modem.bin</filename>
</file>
<file>
<id>21</id>
<filename>Xd3276-param.lfs</filename>
</file>
<file>
<id>3</id>
<filename>if3276-Sbl.bin</filename>
</file>
<file>
<id>6</id>
<filename>cr3276-zImage</filename>
</file>
</files>
</firmware>
New lines need not be included and the order in which elements are specified
does not need to match that of the above example.
One and only one <firmware> element must be included. The <firmware> element
must also have a version attribute specified. The version must be parsable as
an integer and indicates what version of the Heimdall Firmware Package
specification the package adheres to.
All data is stored as strings, however a <file>'s <id> element must be parsable
as an integer. The <id> value represents the partition ID (according to the
specified PIT file) that the file should be flashed to.
A <firmware>'s <repartition> and <noreboot> elements must also be parsable as
an integer. However, as they represent boolean values, a value of zero ("0")
means false (or disabled) where as a non-zero value (typically "1") means true
(or enabled).
File names are specified relative to the TAR archive in which firmware.xml and
all other files are to be stored. Heimdall Firmware Packages do not support
directories or links, as such file names should only be a name and not a path.
<url> and <donateurl> are the only optional elements, all other elements must
be included.

This is AWESOME! Hope people adopt this fast!

Thanks a lot for this. I was waiting for such a tool since long long time
Now I can make my development even more faster.

I'm really thankful for your shared knowledge and your hard work.

Darkyy said:
I'm really thankful for your shared knowledge and your hard work.
Click to expand...
Click to collapse
+1
in case you havent noticed theres a thx button fo rthat you might go ahead and click it

i9100 support?

uppon2 said:
i9100 support?
Click to expand...
Click to collapse
Yeah, all Galaxy S devices, well except maybe the Droid Charge which we've had problems flashing with Heimdall.
The firmware package format itself isn't tied to any particular device.

DAGr8 said:
+1
in case you havent noticed theres a thx button fo rthat you might go ahead and click it
Click to expand...
Click to collapse
I did
You know, sometimes a sentence says more than thousand clicks

Alright, let's see what this can do. Many thanks for this project!

I am trying to put together a package for the Vibrant's original firmware, JFD. The one clarifying question that I have is: Is IBF/PBF the same as the primary boot loader? That is, should I set that partition (0) to boot.bin?
Thank you for the hard work!

ginzberg said:
I am trying to put together a package for the Vibrant's original firmware, JFD. The one clarifying question that I have is: Is IBF/PBF the same as the primary boot loader? That is, should I set that partition (0) to boot.bin?
Thank you for the hard work!
Click to expand...
Click to collapse
Instead of "IBF/PBF" I think it might be something like "IBL+PBL". But yeah, primary bootloader (boot.bin) == initial bootloader + primitive bootloader.

Wow, yeah.. you're right. I sent my message without proofing. "Thanks" sent.
Great... now that I've built this thing... do I dare try it? I will report back with my findings when I get up the guts (i.e. have a windows machine around to bail me out if I need it), and then post the package for other Vibrant users.

ginzberg said:
Wow, yeah.. you're right. I sent my message without proofing. "Thanks" sent.
Great... now that I've built this thing... do I dare try it? I will report back with my findings when I get up the guts (i.e. have a windows machine around to bail me out if I need it), and then post the package for other Vibrant users.
Click to expand...
Click to collapse
Haha, you'll be right. Heimdall has been pretty heavily tested these days. Adam Outler recently made a video of Heimdall performing 200 flashes in a row without a single failure It's MUCH more reliably than Odin.

I thought it's probably worth mentioning the Heimdall 1.3.0 has officially been released. On top of the functionality provided in the betas there's also a few extra bits of functionality provided by the new Utilities tab.
The new Utilities tab should make the creation of Heimdall Firmware Packages a bit easier for developers as you're now able to connect your device to your PC and download the PIT that's on the device straight to your PC. As such you no longer need to worry about trying to recall exactly which PIT file you're using or where you got it from.

Benjamin Dobell said:
I thought it's probably worth mentioning the Heimdall 1.3.0 has officially been released. On top of the functionality provided in the betas there's also a few extra bits of functionality provided by the new Utilities tab.
The new Utilities tab should make the creation of Heimdall Firmware Packages a bit easier for developers as you're now able to connect your device to your PC and download the PIT that's on the device straight to your PC. As such you no longer need to worry about trying to recall exactly which PIT file you're using or where you got it from.
Click to expand...
Click to collapse
Awesome, thanks for the heads up. The new firmware package feature seems really cool... but I haven't seen anyone using it yet. What's the deal!? Do you have any samples for stock ROMs we can try?

aorth said:
Awesome, thanks for the heads up. The new firmware package feature seems really cool... but I haven't seen anyone using it yet. What's the deal!? Do you have any samples for stock ROMs we can try?
Click to expand...
Click to collapse
Well the official release of Heimdall 1.3.0 was only made a couple of days ago. So I figured some developers were waiting for that (over the beta release). However, now I'm not so sure that's the reason. I can understand if developers only release their firmware for ROM Manager. However, I see zero reason to continue releasing firmware as several TAR archives for Odin.
Heimdall Firmware Packages are much more straight-forward to use for end-users as there's only one file to select (and no settings need to be changed). As Heimdall Frontend takes care of building the packages it's probably also easier for developers, plus developers are able to include additional information about themselves and the package. On top of that these packages will work flawlessly on Linux, OS X and Windows with no additional work required.
EDIT: It's probably also worth noting that the format isn't just for full firmware packages. It works quite nicely as a way of distributing modems and kernels as well. This is particularly useful for custom kernel developers.

Benjamin Dobell said:
Well the official release of Heimdall 1.3.0 was only made a couple of days ago. So I figured some developers were waiting for that (over the beta release). However, now I'm not so sure that's the reason. I can understand if developers only release their firmware for ROM Manager. However, I see zero reason to continue releasing firmware as several TAR archives for Odin.
Heimdall Firmware Packages are much more straight-forward to use for end-users as there's only one file to select (and no settings need to be changed). As Heimdall Frontend takes care of building the packages it's probably also easier for developers, plus developers are able to include additional information about themselves and the package. On top of that these packages will work flawlessly on Linux, OS X and Windows with no additional work required.
EDIT: It's probably also worth noting that the format isn't just for full firmware packages. It works quite nicely as a way of distributing modems and kernels as well. This is particularly useful for custom kernel developers.
Click to expand...
Click to collapse
Yeah, the way I see it, it's a bit like VMware or whoever else offering pre-built appliances for various functions. Download this VM, press play, and you've got a fully-functional Redmine server, for example.
I'll keep my eye out for some firmware packages... I'll be keen to try one.

aorth said:
Yeah, the way I see it, it's a bit like VMware or whoever else offering pre-built appliances for various functions. Download this VM, press play, and you've got a fully-functional Redmine server, for example.
I'll keep my eye out for some firmware packages... I'll be keen to try one.
Click to expand...
Click to collapse
Ok, I just decided to make my own. Since it worked, I'll share... here's a Heimdall-1.3-flashable firmware package for stock XXJVQ:
http://www.multiupload.com/W4IGGFZU6F
It's stock. It's odexed. It's stock! It will repartition. It includes bootloaders. Did I mention it's COMPLETELY stock?
Great job on Heimdall 1.3, Ben. I used to write shell scripts to do my flashing, but I'd love it if people started releasing Heimdall-flashable tar files. Hopefully this gets the ball rolling for people to create their own firmware packages (hopefully for more-interesting firmwares than a stock XXJVQ!).

Hi, sorry if I'm been thick but where can I find heimdall packages for the galaxy s2? I have tried downloading the firmware but cannot see where to load all the files once the tar has been extracted. The only tutorials I have seen have the boxes labelled pda etc. The latest version I have downloaded doesn't as far as I can see, V1.3.1. Packages sound much easier than me mucking up the file uploads but I can't find any?

Related

KINO [Kin Opensource-FileManager]

Hi there!
As i said on a thread (bit long time ago), i had the intention of making an opensource file manager for the kin.
So i have been working on for two days, and i'm reserving this thread for its releases and descriptions.
It will be given as donationware, which means that you can take it for free and donate if you wish (or not to... )
SECURITY DISCLAIMER
- As you can imagine, by using this tool you have not guaranteed the operational state with your device and is provided "as is". You are the only responsable on the effects if could have on your device, even though i tested locally all the options for hours. Like you do for 3rd party non-certified software.
- DO NOT, i repeat DO NOT unplug the device nor close the program while writing or reading from the device. Errors states are unknown and you may scr3w up your flash memory.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
- If during the usage, it takes long, WAIT for the transmission to end. Errors are handled by the program and in the last cases there are 2 to 3 levels of error treatment, notificating you in the info box and storing a brief description on the "error.log" file when it's ultra. (I'm still human, new errors can appear).
- IF during this usage the kin gets a "Connected" window and the program is clossed without closing that window, then it's the time where you can unplug and it will reset the device communication values, pluggin again. If you reach this state without doing magic, notify it to solve the bug.
Characteristics
- Libusb driver given for the kin (needs to remove the Zune one)
- Windows (XP,7) 32/64 bits. Linux (through Mono), Mac Osx(through Mono Framework) Compatibility
- Developed in pure c# (using libusbdotnet)
- Developped in layers:
----> Usb
----> Mtp Functions
----> Mtp<->Interface manager
----> Interface
Images V0.01
Requirements
- OS:
---> Windows
------->Net Framework 2.0
------->Libusb-win32 driver(provided below)
---> Linux
------->Root mode to access the devices.
------->Mono
------->Libusb 1-0 components
---> Mac OsX (Checked with Snow Leopard, PAIN IN THE ASS)
-------> Mono framework
-------> Libusb-1.0 source (sourceforge)
----------> Modern OSX compile for 64 bits. Mono needs 32 bits. Compile (as root) with:
Code:
sudo su
./configure CC="gcc -m32"
make CC="gcc -m32"
make CC="gcc -m32" install
*Note: it takes a looooooooooooooooooong time to load the first time. be patient
*Note2: if mono yells about needing X11 for Winforms, download Wireshark for OSX, which has X11 easy installation inside (needed for it).
Download links
Kin Driver (libusb-win32): (Create one with InfWizard for the kin PID and VID)
32 bit version: http://www.mediafire.com/?0nhrdn7f5je6dcx
64 bit version: (please use above version)
Source: ***Still needs a bit more documentation, cleaning and binary testing for errors ***
* Note that i DONT have a 64 bit hardware, so i based its compatibility on the failed running in my Windows 7 (aka "this is for other architecture error")
** Note that to use this driver you MUST remove the Zune driver. I recommend to test it on a clean virtual machine first
Functions
- TreeView Kin Storage explorer (Auto Resyncs after each operation)
---> Select one or multiple items with the checkboxes next to them.
- Batch upload to the kin (to the root of the tree)
---> Select one ore more files from the selection dialog and go go go. Any file, anytime
-------> **Danger** pressing twice will upload files twice, be patient.
- Multiple file download from the kin
----> Mark any file from the tree and press "Download". The file will be downloaded to a subfolder "Downloads" next to the exe, where the tree storage has been replicated.
-------> **Danger** Folder and Playlists and other files are just logical, and have no size, so program deals with them as folders (and are created emptied in the local system at the pc)
- Multiple file delete
-------> Mark any file from the tree and press "Delete". After confirmation, the files selected will be removed from the device.
-------> **Danger** Folders are not deleted. Infobox at the bottom will inform you if a file could not be deleted.
-------> **Danger** I trickied it so the storage root could not be deleted... ahhh smart little fellas.. you were already thinking in that huh! rofl.
Known issues
- During my random tests around, i found that sometimes (dunno why exactly), the kin <-> Kino communication skips a step, messing up the mtp communication schema. The solution i used in this release was to show the root storage without children nodes. As this case is an error, you should tell me if you know a repeatable way to get it so i can retest and solve it.
To keep going with the kin, close Kino, and unlock the Connected window (slide your finger over it) and unplug & plug the usb again.
F.A.Q.
- Q: No donation button in the end?
- A: Nope. Just when it proves to be useful .
- Q: This works with Kin One devices?
- A: No. I only have access to Two (bricked) and TwoM devices, so cannot test for the little round turtle.
- Q: Do you provide a driver for Kin?
- A: Yes. It is only a bridge from the programs to the libusb-win32 functions. Unfortunately, you would have to remove the zune driver (Hardware manager) before using this one.
- Q: This bricks kin devices?
- A: At all.
- Q: This can hack the device?
- A: No. This is only a tool to upload and download files to your kin. If later it's used to hack, good anyway
- Q: Can this upload *any* file to the kin storage?
- A: Yes, binary files like exe, cab,pdf, ... will be labeled as 0x3000 (undefined filetype) for the kin.
- Q: Can i take the code and make my version called OmgKinManager?
- A: Yup. It would be a nice detail to include a little text in "about..." regarding me though
kk, apart from the above, i'm a bit stuck on the uploading procedure, doing it dinamically, not with known filesizes like i tested before.
I will try to get it to work and allow multiselection file dialogs.
Later, downloading, which is easier, as i just request files. I will try to make the selectable tree work, so several files can be downloaded at a time.
Btw, the tree is not a demo, it's my real storage, being asked to the kin. It's a long process, as i ask for the id's and their values to the kin to create a Tree structure, later parsed by the interface.
Whenever that and deletion is done, i will upload both the driver and the program/source to the public.
For Zune's functionality lost scared people, i would suggest to try on a windows virtual machine first (which i will do to test for .net framework requirements and so)
Way cool imn glad to see some progress
Nice work! I spend a lot of time on this forum reading posts and 75% of the time it's your post. You've spent a lot of time working on this project and we all appreciate it. Expect a donation from me in the near future
I'm speechless.
Hey john, you have only gotten into the media section correct? What type of things have you gotten to do if i may ask. If you want, I can help get "into" the other parts of the phone. A.K.A contacts. That's my main concern right now. I could care less of customizing the OS (which I will get to if you care to lend a hand.) Since I don't want to Say anything just yet, send me an email to [email protected]. I would like to help. I'm on my phone at the moment but tomorow I'll post how i got the phone into a writeable state (which I don't know if it still work. I've only tested twice.) If it doesn't work tomorrow, I'll donate my time during the week helping you guys. I may need to get a new battery.
P.S. It's taking me awhile to do this becuase I dont want to brick my phone. Im definately not using my enV touch!
please, read the faq above. this is not a hacking thing, but a sync one.
to be honest, i dont care about contacts cause i dont use this phone to make calls and i just wanted it to be more open. pinned apps or phone settings storage would be my only interest apart storage folder.
also, i dont want to keep secrets or long term waiting things. post what you want or dont post, but dont make it a teaser of nothing. plus i dont wanna go emailing people.
Props to you. Great utility, if it were able to get deeper into the system. Then it would be golden.
Edited for many reason
As some other forumeer seems to have gotten into the phone system, imma halt this development till acess range is shown (filesystem / storage / settings), if any.
There's no need to redo all the required mtp subsystem if we can get there by other (easier) means. OS native explorer, for example.
just go ahead and work on it in case the other guy fails. ^.^
oaktree333 said:
just go ahead and work on it in case the other guy fails. ^.^
Click to expand...
Click to collapse
Nice future-sight on this post
I just tested the file upload in the command-line again with static (coded by hand) filesizes.
Here is a new vid (hahaha famous ultralowres) where a file is upload to a just-formatted kin (CB+power).
File: dstpa.mp4 (BEP- Don't stop the party), 33.1MB
Destination: Kin storage root
Playable after upload: yup!
Mp4 tags: At all .
Just a upload showcase, not just naming the procedure .
nice nice ^.^
more freedom in file management I like.
woot goodjob
I have to give you kudos for your dedication. You kept at it even after you bricked your first kin.
I patiently await a release.
I'm trying to get the alpha release up today (tonight here).
I was in the mood and moved my coding-ass. Solved most of the problems on-the-go, but downloading.
I'm trying to allow multidownload keeping same directories on the pc... just cause i wanted to... rofl.
Hummmmm,
EVERYDAYIAMSHUFFLIN
Mmm after discovering several things, and implementing a lot of bugfixes (didnt know some things about MTP), there it is.
here, and all the versions are updated and uploaded in the 1st post, among the driver for it.
As posted there, i suggest to use it on a virtual machine with .net framework 2.0 cause the removal of the zune's driver for the kin.
You can now take your kin and (if the driver & program behave correctly), upload the files you want to the Kin.
Any type of file, any time.
I'm pretty naughty telling this, but apart from uploading....... i don't check for the file contents... so if any of you want to turn a .exe into .mp4 to look for exploits i wouldnt blame you for testing....
Double naughty if i say that Zune doesnt load info from the files itself, but only what was transfered from MTP (.. poor fella)
You can check that, cause it will only load the filename and name of the mp3, ... cause i did that (before today, i just sent filename, which makes its name blank on zune, like you saw in my video from BEP).
Hope you all enjoy and no errors appear.. rofl.
Btw, there's no donate option, cause i think it's more fair to think about that when the program is known to work, and not just alpha releases .
It's 02:53 AM here, so i better go to bed, to work tomorrow and that things....
I just wish this thing could play games lol.
@Johnkussack
Wow. I have to say thank you for putting your time and effort into really hacking this phone. I can't wait to see someone get android or wp7 running on this thing (if it's even possible with the hack you have, I'm not sure). Ether way, thanks for everything.

[EOL] [ROM] [5.1.1] [CyanogenMod] [GCC 4.9] [Excellent] [15/11/15] ArchiDroid V3.1.5

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Clean | Stable | Flexible | Optimized | Excellent
Changelog
ArchiDroid 3.1.5
- Newest ArchiKernel snapshot
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.4
- Newest ArchiKernel snapshot
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.3
- [i9300] Changed malloc implementation to dlmalloc
- Implemented dex-preoptimization for ART
- Removed xposed due to incompatibility with dex-preoptimized ART
- Newest ArchiKernel snapshot
- [nicki] AK: Added mpdecision switch to Synapse
- [nicki] Added optional dual-sim patch to AROMA
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.2
- Switched arm-linux-androideabi toolchain back to SaberMod
- Fixed wrong auto-vectorization of ID3 iterator causing various media crashes with badly-tagged MP3s
- Newest ArchiKernel snapshot
- Updated GAPPS
- Updated Xposed
- Other misc changes and bugfixes
ArchiDroid 3.1.1
- ArchiDroid Optimizations V4.1
- ArchiDroid is now built with UBERTC 4.9 androideabi (instead of SaberMod 4.9) and 5.2 ArchiToolchain eabi (instead of 5.1)
- Newest ArchiKernel snapshot
- Updated GAPPS
- Updated Xposed
- Other misc changes and bugfixes
ArchiDroid 3.1
- Initial release
Important notes
- YOU DIRTY FLASH AT YOUR OWN RISK.
- FULL WIPE IS ALWAYS SUGGESTED WHEN FLASHING NEW VERSION.
- DON'T EXPECT A BUGLESS EXPERIENCE IF YOU DIRTY FLASH OR USE TITANIUM BACKUP.
ArchiDroid 3.1 is major new release based on CyanogenMod 12.1 (Android 5.1.1 Lollipop). There are too many changes compared to previous release of AD 3.0.X, so you should treat this version as totally new ROM. Here you can find some important notes to make update easier, and to avoid some possible issues:
- The only two kernels supported by AD are stock one, and ArchiKernel. AK is suggested one by me, as it already includes all major improvements I wanted to add, such as OC or deep AD optimizations. I DO NOT RECOMMEND FLASHING ANY OTHER CUSTOM KERNELS. Only AK uses my own AnyKernel method which guarantees 100% compatibility with the ROM, if you're using any other kernel you're doing it at your own risk, and it's nearly guaranteed to cause very deep incompatibility issues, which will hurt overall system stability.
- If coming from AD 3.0.X or any other ROM, regardless what it is, you should make full wipe. ArchiDroid is smart enough to detect itself during install and offer you an update, but this option should not be used with major release such as this one. Full wipe in necessary.
- It also means that you should AVOID restoring old, incompatible data with apps such as Titanium Backup. Full wipe means full wipe, not half wipe and restoring data later. Of course, it's up to you if you want to follow my suggestions or not, but do not expect that you'll have bugfree experience otherwise.
- You should update your recovery prior to flashing, again, regardless of what recovery you have now. The best way is to do so right from ArchiDroid ZIP, as AD offers updating recovery prior to flashing the rest, from AROMA. On the preset screen you can choose "Recovery", which will flash stock kernel + recovery combo (TWRP self-compiled by me). Then reboot recovery and flash the rest. All other recoveries, including other/older TWRPs are unsupported and you're using them at your own risk.
- While not mandatory, I suggest also a wipe of whole internal SD card (/data and /data/media), as this will make sure than no junk is left. If you don't want to do so, at least make sure to remove /data/media/0/ArchiDroid folder prior to flashing, even if you have experimental AD 3.1 already. I do not track all regressions and doing so will make sure that backend works in intended way. A best way to do so is to update your recovery first, then through TWRP file manager navigate to /data/media/0 and remove whole ArchiDroid folder.
- AD already has built-in GAPPS, provided by OpenGApps project. Flashing other GAPPS is not recommended, but if you know what you're doing you can still untick all Google Apps offered in AROMA (Whole GAPPS category including core gapps + also google launcher and google keyboard) and install your own GAPPS package after AD installation. Although, as I said, I suggest to stick with AD gapps, as they're proven to be working well, and they're tested by me and other experimental users.
TL;DR
- Use only ArchiKernel or Stock kernel included in AROMA
- Make full wipe
- Update recovery prior to flashing
- Wipe internal storage, or at least remove /data/media/0/ArchiDroid
- Flash AD
- Do not restore old data through titanium backup
- Enjoy your fresh ArchiDroid experience
Download
All Files XDA
Stable: ArchiDroid 3.1.5 GitHub | XDA Direct | XDA Torrent
Oldstable: ArchiDroid 3.0.1.1 GitHub | XDA Direct | XDA Torrent
Remember that you don't need anything else to flash. Google Apps are included already.
Known Issues
All known and unknown CyanogenMod bugs (if any)
Follow ArchiDroid On XDA!
Like ArchiDroid On Facebook!
Write A Review!
Rate This Thread!
Buy Me A Beer!
Hit Thanks!
XDA:DevDB Information
[EOL] [ROM] [5.1.1] [CyanogenMod] [GCC 4.9] [Excellent] [15/11/15] ArchiDroid V3.1.5, ROM for the Sony Xperia M
Contributors
JustArchi
Source Code: https://github.com/ArchiDroid/ArchiDroid/tree/nicki-cm-stable
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.4.x
Based On: CyanogenMod
Version Information
Status: Stable
Created 2014-07-06
Last Updated 2020-09-13
Reserved
[SIZE="+3"]ArchiDroid's FAQ / Q&A[/SIZE]​[SIZE="+1"]Please use above thread for information purpose only as it covers Samsung Galaxy S3 i9300[/SIZE]​
[SIZE="+1"]Features / Why ArchiDroid?[/SIZE]
First of all, ArchiDroid includes everything available in it's base. The whole point of ArchiDroid is to improve the base, without needing of making any trade-offs, so by flashing ArchiDroid, you're getting everything offered by the base itself. There's nothing to lose, everything to gain.
You can read detailed information about every ArchiDroid component here. It's a massive wall of text, so I'm only going to list the core features without describing them.
These were written from scratch, they're completely unique and you won't find exactly the same implementation in any other ROM.
ArchiDroid-Unique features:
- ArchiDroid's AROMA Installer
- ArchiDroid's Pocket Debian
- ArchiDroid's Flasher
- ArchiDroid's RunOnce
- ArchiDroid's Init
- ArchiDroid's Backend Control
- ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
- ArchiDroid's Fast Random Number Generator (Frandom)
- ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
- ArchiDroid's Forced Update
Apart from that, here, on the credits page, you can find all third-party projects, which have been implemented into ArchiDroid. In addition to that, it's up to YOU to decide if you want to install something, or not.
ArchiDroid focuses on flexibility and user choice.
If you're looking for fastest ROM, choose ArchiDroid.
If you're looking for most battery-saving ROM, choose ArchiDroid
If you're looking for cutting-edge functions, choose ArchiDroid
If you're looking for the most flexible rom ever created, definitely choose ArchiDroid
ArchiDroid adjusts to your needs. You can make it whatever you want. With bunch of presets, modes and questions, you can make your ArchiDroid behave. Check yourself why ArchiDroid is The TOP 1 ROM for Galaxy S3http://forum.xda-developers.com/galaxy-s3#romList, according to number of followers, rates, reviews and downloads count. Check the Reviews, take a look at Video Reviews, do whatever you want to, ArchiDroid is proven to be one of the best ROMs for Galaxy S3, ever created, and now strikes directly at Xperia M.
Try ArchiDroid once, and you'll never look back. I can assure you.
Disclaimer
ARCHIDROID SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES THAT IT IS FREE OF DEFECTS, VIRUS FREE, ABLE TO OPERATE ON AN UNINTERRUPTED BASIS, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
Click to expand...
Click to collapse
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
Click to expand...
Click to collapse
Developer's Kitchen
Unless stated otherwise, all ArchiDroid components are licensed under the Apache License:
Code:
Copyright 2014 [email protected]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Especially:
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
Click to expand...
Click to collapse
ArchiDroid is one of the most complex ROMs ever created. When you start digging in my work, you can very easily get lost. And I'm not talking about base itself, but about everything next to it. You can use every part of my work, as long as:
1. You include proper credit where you should. This usually includes proper comment in a script/file and in the credits of the project, including license (if needed)
2. You let me know about this fact. Through PM on xda or e-mail
I'm always happy to help, especially with the problems I faced in the past. However I also want to be respected, considering that most of the ArchiDroid parts were written from scratch.
Know Your ArchiDroid
ArchiDroid is not only a rom. It's not only a baked android with third-party apps, modifications and tweaks. ArchiDroid is an universal backend which improves rom by many built-in functions.
Let me tell you a story. During developing first version of ArchiDroid 2.0 I experienced many problems, which were not that easy to solve. First of all - apps data. Trust me or not but you can't simply extract data, put it in /data/data after install and hope that it works. Android will detect such injection, report inconsistent of data and wipe everything attached to that. Okay so... How I should provide you with my boeffla preset? CoolTool settings? STweaks profile? If I put my data during flashing it'll get wiped. If I put my data and deny wiping it then Android will report inconsistent of data to user and work unstable. Yes guys, it's impossible to do so without a trick or without recompiling whole rom.
I won't tell you a whole story, because you probably don't want to hear about ArchiDroid development. I'll simply tell you that I overcome MANY difficulties, simply because I do what I like, and I like what I do. After countless number of hours, I can finally provide you with the ROM, which is the best. Why is it the best? Because I'm improving the base, and I'm not making any trade-offs.
GitHub / Versioning / Experimental Versions
ArchiDroid version contains 3 numbers. X.Y.Z. X is the base number of the rom. For now it won't change because ArchiDroid 1 is based on Sammy Rom and ArchiDroid 2 is based on CyanogenMod. Basically we have two numbers left, Y and Z. Y number will change when I'll implement something really new, when I'll make some advanced improvements or after many Z changes. Z number is the "standard" update, like updated sources, some bugfixes and so on.
I've learned many things since releasing of first ArchiDroid 1.0.0. Because of that I've also created a GitHub repository, which you can find here. What does it mean for you? First of all as you can see there are 2 different branches. nicki-cm-stable and nicki-cm-experimental. What does it mean? You can enter selected branch and click on "Commits" button to see every single update which I've made to selected branch. Experimental branches will get updates nearly every single day, while stable branch will form from a snapshot of current experimental branch, whenever I feel like it's ready.
However that doesn't mean you need to wait for my stable updates! You can easily "pack" latest experimental and flash without needing to wait for my weekly build. I'll tell you how to download and flash it by yourself.
[Newbie Version]
1. Open nicki-cm-experimental branch.
2. Click on Download Zip button located in bottom-right corner.
3. Install 7-Zip if you don't have that already. Other programs may, or may not work correctly.
4. Right-Click on zip, select Extract Here
5. Navigate to newly created ArchiDroid-nicki-cm-experimental folder
6. Select all files APART FROM __build folder, right-click and select 7-Zip => Add to archive
7. Make sure that you have zip format, fastest compression (to save some megabytes) and feflate method of compression.
8. Done! Copy newly created ArchiDroid-nicki-cm-experimental.zip to your phone and flash as usual.
[Expert Version]
1. Install Git for Windows or Linux
2. If you're on windows then make sure that windows won't change LF into CRLF (git config --global core.autocrlf false)
3. Clone my git repository using .git file. Keep in mind to specify depth, as this repo is really big. (git clone https://github.com/ArchiDroid/ArchiDroid.git --branch nicki-cm-experimental --depth 1)
4. Install 7-Zip if you don't have that already. Other programs may, or may not work correctly.
5. Select all files APART FROM __build folder, right-click and select 7-Zip => Add to archive
6. Make sure that you have zip format, fastest compression (to save some megabytes) and feflate method of compression.
7. Done! Copy newly created ArchiDroid-nicki-cm-experimental.zip to your phone and flash as usual.
8. In order to update your local repo execute git pull origin nicki-cm-experimental and go to point 5.
Additionally you can watch my short video, which shows how to flash experimental ArchiDroid going through "Expert Version".
Reserved
Video Reviews / How ArchiDroid looks like?
@Koogly
ArchiDroid User Signatures
ArchiDroid Features
Know your ArchiDroid, learn how to use it
Introduction / Basics
Welcome to ArchiDroid's world mortal. In this tutorial we will show you what ArchiDroid has "inside" and what it really offers. All of things included in this post are ArchiDroid-specific, which means that you won't find any ROM with the same features, as they're written from scratch.
Here you can find some definitions of the words used in sections below. You should know most of them, but in case somebody is lost here you can get back on track.
Terminal, Shell - Typical android shell, which may be obtained in three ways.
1. Through native Android Debug Bridge (ADB) with command "adb shell" from the PC or even "ADB through network" (if supported).
2. Through any Android terminal app, f.e. Android Terminal Emulator bundled with ArchiDroid.
3. Through secure shell daemon (sshd), which needs to be turned on firstly. This is extremely useful in terms of pocket debian, which will be described later.
You can use any of these methods to access android's terminal, however usually Android Terminal Emulator will be the easiest one, as it's android app bundled with ArchiDroid. WARNING! Most of the commands below WILL require root access. You can log in to super user shell by "su" command right after obtaining shell. If you're unsure if you're logged as root or not, "whoami" command should print actual user, "root" or "unknown uid 0" are OK, others are not.
ArchiDroid's Pocket Debian
From wikipedia:
Debian is an operating system composed of free software mostly carrying the GNU General Public License. The operating system is developed by an internet collaboration of volunteers aligned with The Debian Project.
Click to expand...
Click to collapse
From debian site:
As most of you know, Linux is just a kernel. And, for a long time, the Linux kernel ran only on the Intel x86 series of machines, from the 386 up.
However, this is no longer true, by any means. The Linux kernel has now been ported to a large, and growing, list of architectures. Following close behind, we have ported the Debian distribution to these architectures. In general, this is a process with a sticky start (as we get libc and the dynamic linker working smoothly), and then a relatively routine, if lengthy job, of attempting to recompile all our packages under the new architectures.
Debian is an operating system (OS), not a kernel (actually, it is more than an OS since it includes thousands of application programs)
Click to expand...
Click to collapse
How exactly this covers our beloved phone (and countless number of other android arm-based phones)?
As you may (or even should!) know, Android operates on it's own Linux-based kernel. Android's kernel is literally a fork of Linux kernel, with a few special/unique functions which are required, mostly hardware-specific. Because of that kernel itself is VERY compatible with everything based on Linux.
However there have always existed one typical problem, lack of proper environment. We have a great kernel, great power, linux-based android environment, but this environment lacks of very common and required libraries/binaries. If you ever wondered what is or what does busybox, this is the answer. Busybox is just a small package which offers a few standalone GNU/Linux binaries, which are required to make certain things work. For example, swap priorities. Android knows what swap is, and nothing else. It doesn't know that swap could have a priority, so if you use android's swapon command on 4 devices, it will firstly fill first device, and then proceed to the next. That's why we need busybox in ALL custom kernels, because android environment isn't enough.
However busybox sometimes isn't enough. If we focus only on Android itself, it is. But if you for example want to run stricly linux-based service, I don't know, a web server for example... Is it possible to run a native linux web server on an android? No, it's not. You should firstly compile such service on arm architecture, including all dynamic and static libraries (wrrr ) in it only to finally get mad because of missing libraries or other dependencies. Of course if you're patient you'd finally compile everything and set up, however how long would it take? A few days maybe? If you're skilled in what you're doing...
This is why I included built-in "pocket" debian in ArchiDroid. It's FULLY compatible with everything compiled/based on armhf/armel GNU/Linux architecture, for example Raspberry Pi. With two easy commands you can literally jump into debian environment and use every typical GNU/Linux utilities known from debian itself. Of course this means nothing for most of the users, because they'll never have any reason to use such debian environment but from the developer side, it's big step forward. The best example is with github. As you know ArchiDroid has it's own repo on github, from where you can download/manage stuff. There also exists git app for linux and windows. If you want to follow "expert" way of flashing experimental ArchiDroid version, such program is required. The scenario is the same as compiling web server for an android, it requires much more effort than it's worth. And even then you can end up with syncing external dependencies and searching for solutions for the problems you've never seen before... And with ArchiDroid's pocket debian? It's as simple as in any debian/ubuntu distro. "apt-get update && apt-get install git" and voila. Your git is installed and ready for work. Going further I've even included git in pocket debian itself. Okay, I have debian, I have git, and what next? With git utility I can for example provide you with delta updates for ArchiDroid! ArchiDroid can easily use pocket debian to set up and sync ArchiDroid's repository and then pack and flash latest version without even needing of a PC, using 7-zip or anything else. Another example? A web server. I know that it's very dev-specific but if you for any reason need a web server running, just for example to test simple website, you can have it with just one command. Going further, VNC? MySQL server? PHP? Python? Perl? Ruby? Maybe conditional tasks with cron? Persistent minimal IRC client? rtorrent with rutorrent GUI over WWW? The list goes on... Anything based on linux will work. You can even host a server for your favourite game, as long as it has armhf/armel binaries (unfortunately most of the games don't).
So that's it. In short, debian is an operating system built-in in ArchiDroid to provide you with (unfortunately missing) GNU/Linux environment, with full power, ready to handle anything you could request. I made my best to include fully working debian in ArchiDroid for a minimal cost. Whole OS is packed in one big tar file, compressed using highest bzip2. As for now pocket debian has ONLY 40 megabytes of size, maybe in future it will have up to 50 megabytes, but no more. It's a VERY small cost for having such great power, especially if you know how to use it.
This is a really cutting-edge feature, mostly because I have no limitiations what I can include in my ROM right now, and while other developers are dealing with OpenDelta updates and many Android-based problems, I'm just launching my pocket debian and manages linux stuff.
I'm SURE that most of the advanced ArchiDroid user will just LOVE this feature, as much as I love it. I'm looking forward to your responses how YOU use pocket debian with your ArchiDroid. It's also a great time to learn what does the debian offer and how you can simplify your common tasks with just one example debian utility .
Technical informations:
1. Pocket Debian does not cause any additional overhead. We don't need to use emulation, neither virtualization to boot our monster. I used chroot technology to "jump" into debian environment with already running kernel and Android. That means additional required CPU/RAM is based on what you run in pocket debian. Booting itself doesn't require anything, just about one megabyte of ram for /bin/bash shell .
2. Android has some restrictions, mostly sockets. It doesn't allow to create inet sockets by default, even for root users. You will need to add your custom debian users to special group called "inet" (GID 3003) to allow creating of inet sockets, and you may also need to add a group to net_raw group (GID 3004) to allow creating of raw sockets. Please keep in mind that it's only required if you're running an app which required it's own socket, for example mysql server. So apt-get install mysql-server will fail right after booting, you will need to use "addgroup mysql inet" and then apt-get -f install to complete installation. Of course "mysql" is the new user under which mysql-server really operates. I've added root to both of these groups by default.
3. The only "real" restriction is the kernel. Our debian uses Android kernel and it's filesystem. It should work with most common tasks but in some cases our kernel may lack specific modules or built-in code, for example tun/tap required for OpenVPN. Still it's enough to run pretty much everything and if you get in touch with your favourite kernel developer you can also kindly ask for specific missing things.
4. Debian is built and included thanks to debootstrap utility, ArchiDroid command used for creating debian environment is debootstrap --verbose --arch armhf --include=git,ca-certificates,ssh,htop,tightvncserver,xterm,xfonts-base --exclude=manpages,man-db,rsyslog,vim-common,vim-tiny testing debian http://ftp.fr.debian.org/debian
HowTo:
Pocket Debian contains two main terminal commands, "adlinux" and "debian". Both of them are described below. By adlinux and debian you boot and jump into debian's chroot, which means you can use any debian-specific commands.
Examples:
passwd - changes password of actual user. This is needed to login as specific user, for example through ssh.
service ssh start - starts local SSH (secure shell) daemon on native port :22, to which you can easily access via any client supporting ssh, f.e. PuTTY. So basicly after you start shell you can literally connect to your local area network (LAN) IP on port 22 f.e. through PuTTY from your PC.
ifconfig - prints network-related informations about online interfaces, including your local IP, which may be useful for connecting to SSH.
htop - Enhanced top utility. Gives you very good terminal-based view on actual running processes, used ram, load, and more.
apt-get update - Syncs with debian's apt repository. This is mandatory to use many of apt commands because ArchiDroid's debian comes without local repo available, however fully configured to download and access it with just one command
apt-get install XXX - installs packet XXX from debian's repository.
apt-cache search XXX - searches for all packets including keyword "XXX". Ultra useful in terms of searching for specific packet.
Please note that pocket debian is VERY similar to normal native Debian/Ubuntu distribution, therefore above commands are not ArchiDroid's magic, they're very widely used in Debian/Ubuntu distros. If you want to learn more, most of the Debian/Ubuntu tutorials will be very helpful.
ArchiDroid's Pocket Debian Booter (adlinux)
You can call "adlinux" command from your favourite terminal.
adlinux is designed to boot and prepare ArchiDroid's Pocket Debian environment. It requires mode to be specified, and also respects any extra arguments passed.
If you call standalone "adlinux" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adlinux command, f.e. by executing "adlinux default", which will execute adlinux with "default" mode.
Available modes:
default - Will mount /data /system /storage/sdcard0 /storage/sdcard1 and core filesystems in chroot. Default suggested mode
safe - Will mount only core filesystems in chroot. Useful if you don't want to share your storage in chroot
bare - Won't mount even core filesystems such as /proc /dev or /sys. Requires "debian force" to enter chroot. This is the "real" safe mode. You won't be able to interact with an android in any way, while debian itself will work in very limited environment, making core functions unavailable. Suggested only for testing purposes
rebuild - Will automatically reboot your device and remove debian folder in the safe way. WILL CAUSE ALL DEBIAN DATA TO BE LOST!
unmount - Will automatically reboot your device to safely unmount debian environment
Extra options:
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
Additional information about modes:
Debian shares core kernel filesystems in "safe" and "default" modes, while it also shares your internal and external sd card in "default" mode. This is nothing to be scared of, as you have full control of what you run in debian, however please note that you CAN'T do whatever you want. All mounted partitions in debian are "binded". "Bind" means that it's mirrored to the mount point and all changes on mounted partition WILL affect the mount point, which is logical. This is nothing to be scared of, as long as you know that debian only extends your environment, it does not fully works in it's own and you CAN cause serious problems from inside of chroot. The only really safe mode is "bare" mode, however in "bare" mode debian can't really do anything, as kernel filesystems are absolutely required for most of the functions. Okay so, you need to know one thing. If you have booted debian you SHOULD NOT touch debian's folder, which is ArchiDroid/debian (on your internal or external sd card, depends what you choosed).. As you know debian for example binds /data to it's folder /data, which is physically ArchiDroid/debian/data. If you for example delete ArchiDroid/debian through root explorer WITH mounted debian then it will ALSO delete debian/data folder, which is binded to /data, and therefore will delete your whole internal sd card, that's why it's extremely important to take care because booted debian becomes part of the android and deleting it can cause at least soft bricks, with a possibility of hard as well. If you want to delete debian folder PLEASE use "rebuild" mode, only through this way you're absolutely sure that nothing bad happens and you won't delete your whole system partition by accident.
Note about extsd option:
Debian requires symlink functionality, typically native windows filesystems DON'T support symlinks, therefore you need to have your external sd card formatted in one of the native linux filesystems, f.e. ext4. adlinux will automatically tell you if debian can be unpacked and used on your external sd card, however it won't be possible under most common filesystems, such as exFAT or FAT32.
Technical informations:
1. Pocket debian archive is located in ArchiDroid/System/debian.tar.gz file. This is "bare" system used for creating environment for the first time, you should not touch it.
2. adlinux detects if debian is already extracted when booting, if not, it's firstly extracted from the file described above.
3. After extracting (if required), core filesystems are mounted with "bind" option based on the mode you've selected in "mode" question above. Typically it mounts /data /system /storage/sdcard0 /storage/sdcard1 /storage/extSdCard /dev /proc /sys.
4. Unmounting is not fully supported right now (linux barrier), therefore both "unmount" and "rebuild" options require a restart to execute properly.
ArchiDroid's Pocket Debian Shell/Chroot (debian)
You can call "debian" command from your favourite terminal.
debian command is designed to allow you "jumping" into debian chroot created by adlinux. Please read how adlinux command works firstly if you haven't done that already. debian command checks if core filesystems are available (if debian is booted), and if they are then it firstly modifies required environment variables to make debian happy (such as TERM, HOME, PATH), then it changes root (chroots) into debian folder, therefore allowing you to execute everything from inside of chroot. It's very generic command, therefore standalone "debian" command won't give you a choice the way adlinux did.
Available options (parameters):
force - required for jumping into bare debian, created with "adlinux bare" command above. This skips debian checks for mounted core filesystems, normally you should avoid it at all cost, unless you know what you're doing. If core filesystems are missing then it's very likely that your debian will be disabled in more than 90%.
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
cmd - Executes command in debian chroot
WARNING! cmd parameter will cause all further parameters to be threated as a command passed to debian, therefore you need to make sure that this is the last debian parameter which you want. For example "debian force cmd service ssh start" will skip filesystems checks and execute "service ssh start" in debian's chroot, however "debian cmd force service ssh start" will pass "force service ssh start" to debian, therefore respecting filesystems checks and passing invalid command.
This function is extremely useful for making init.d and other startup scripts. For example you can easily call "adlinux default" and then "debian cmd service ssh start" to call secure shell daemon on every boot with two easy steps.
Technical informations:
1. debian command uses chroot technology to change root of current shell to debian shell.
2. After chrooting to debian directory, /bin/bash shell is automatically called as default debian shell.
ArchiDroid's Flasher (adflash)
You can call "adflash" command from your favourite terminal.
adflash is a great small utility, which allows you to easily update your ArchiDroid to latest stable or experimental version with one easy command and delta upgrade. It utilizes ArchiDroid functions, therefore you must be running ArchiDroid to use it.
If you call standalone "adflash" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adflash command, f.e. by executing "adflash 2e git", which will execute adflash with 2.X-EXPERIMENTAL version using git mode.
Available versions:
2e - 2.X-EXPERIMENTAL
2s - 2.X-STABLE
1e - 1.X-EXPERIMENTAL
1s - 1.X-STABLE
Extra options:
git - Sets up local git repository, which gives you delta upgrades and bandwidth saving
direct - Downloads targeted branch as .zip file directly from github
clean - Cleans everything up, including local repo and tmp folder from ArchiDroid directory specified below
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard)
intsd - Use internal sd card (/data/media/0)
nozip - Shows changelog and changes only
Okay so, the most interesting option is the mode...
Direct mode is simple, fast and effective. It downloads target version (stable or experimental) from GitHub server, then it repacks downloaded zip file and makes it available for flash. You should use this mode for one-time downloads, such as once per stable version or two. The only advantage of this method is the ability to download from github (and with one command).
Git mode is complex. It uses ArchiDroid's Pocket Debian (read above) for cloning and updating local ArchiDroid repo. This gives several number of advantages, mostly for using experimental versions. Firstly, by having local ArchiDroid repo you have to download ONLY changes between your snapshot and server's snapshot, which means delta upgrades. Secondly, you have access to all commits from target branch, so you know exactly what has changed since your latest download. Again, this is extremely useful for experimental branch, as changelog may not be up-to-date. Keep in mind that git mode will require additional space on your device for keeping ArchiDroid repository, therefore you sacrifice some space for delta upgrades. This mode is extremely useful for flashing ArchiDroid often, for example daily experimental versions, because in fact you download only new commits instead of whole repo/archive.
ArchiDroid's RunOnce (Backend)
ArchiDroid's Init (Backend)
ArchiDroid's Backend Control
ArchiDroid Backend Control is a set of settings, which controls behaviour of ArchiDroid's Init. It's located in /system/archidroid/dev and contains a number of files, which are recognized by ArchiDroid's Init. You shouldn't directly touch /system/archidroid/dev, instead you can control behaviour of ArchiDroid's Backend through /system/archidroid/scripts. They can be easily executed through any script manager, f.e. Root Browser or Android Terminal Emulator. Some of the settings are also located in /system/archidroid/etc folder, mostly configurations for binaries utilized by ArchiDroid's Init.
ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers. Current development of haveged is directed towards improving overall reliablity and adaptability while minimizing the barriers to using haveged for other tasks.
The original HAVEGE research dates back to 2003 and much of the original haveged documentation is now quite dated. Recent work on haveged has included an effort to provide more recent information on the project and its applications.
The original research behind HAVEGE use was based upon studies of the behavior of processor caches from a hardware level. The 'Flutter' documents attempt to provide a modern view of HAVEGE at software level through the use of a diagnostic build of haveged that captures the non deterministic inputs to haveged for analysis by external tools.
ArchiDroid has built-in haveged entropy generator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Haveged_EnableDisable.sh. It's turned on in default configuration, through HAVEGED_ENABLED
ArchiDroid's Fast Random Number Generator (Frandom)
Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux' built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
ArchiDroid has built-in frandom activator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Frandom_EnableDisable.sh. It's turned on in default configuration, through FRANDOM_ENABLED.
Notice: Kernel must support frandom module to actually make use of that. Init will try to search for frandom.ko module and load it, then use /dev/erandom for both /dev/random and /dev/urandom. If your kernel supports frandom, it will work. If it doesn't, obviously this will be skipped even if you have FRANDOM_ENABLED. Check ArchiDroid Init log located in /data/media/0/ArchiDroid/Init.log to check if frandom works properly for you.
ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
dnsproxy2 is a replacement DNS proxy for Android 4.3+
This currently allows the user to manually override the DNS server IP,
and it sets the correct UID on outbound requests so they can be filtered
via iptables / AFWall+ / DroidWall / etc.
Dnsmasq is a lightweight server designed to provide DNS, DHCP and TFTP services to a small-scale network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.
Dnrd, Domain Name Relay Daemon is a caching, forwarding DNS proxy server. Most useful on vpn or dialup firewalls but it is also a nice DNS cache for minor networks and workstations.
Pixelserv is a super minimal webserver, it's one and only purpose is serving a 1x1 pixel transparent gif file. Using some creative firewalling (netfilter/iptables) rules you can redirect some webrequests (for adds for example) to pixelserv.
ArchiDroid has built-in Adblock. It's controlable through ArchiDroid's Backend Control:
ArchiDroid_Adblock_DnsmasqDnrdModeSwitch.sh
ArchiDroid_Adblock_EnableDisable.sh
ArchiDroid_Adblock_EnableDisableLocalDNSes.sh
ArchiDroid_Adblock_EnableDisableLocalDNSesDaemon.sh
ArchiDroid_Adblock_LockUnlockHosts.sh
ArchiDroid_Adblock_MoabAdawayHostsSwitch.sh
ArchiDroid_Adblock_Reload.sh
It's turned on in default configuration, through:
ADBLOCK_ENABLED
ADBLOCK_LOCAL_DNSES_DAEMON_ENABLED
ADBLOCK_LOCAL_DNSES_ENABLED
ADBLOCK_USE_ADAWAY_HOSTS
ADBLOCK_USE_DNSMASQ
In short. This is a very advanced and powerful solution for blocking ads through DNS queries. First of all we're forwarding all DNS traffic to localhost (127.0.0.1). Then we're handling them through local DNS server - dnsmasq (default), or dnrd (option). Our local DNS server reads blocked hostnames through special /system/archidroid/etc/hosts file, then if no record is found, it forwards DNS query to OpenDNS/Google DNS servers, or if it's found, returns 127.0.0.1 as the address. Lastly, pixelserv is providing a 1x1 NULLGIF response on local web server, so instead of big black/white screen instead of the AD, we get 1x1 transparent pixel, which usually perfectly hides ad from the app or the website.
Extra features:
1. You can specify if you want to use dnsmasq (default), or dnrd (option) as a local dns server. Dnsmasq is more flexible, modern, faster and has less memory footprint, however I also left dnrd as an option, because it's proven to work stable.
2. You can specify hosts file, which you want to use. In default configuration we use AdAway's hosts file, with more than 30 thousand of records, which results in extra ~2.5 MB memory usage. You have also an option to use MOAB (Mother Of Ad Blocking) hosts file, with more than 330 thousand of records, which will result in about ~30 MB memory usage. Eventually you can append your own rules or use non-standard hosts file, available in /system/archidroid/etc/hosts. Pro tip: You can point AdAway to use this hosts file (/system/archidroid/etc/hosts_adaway), which will result in automatic updates. /system/archidroid/etc/hosts is a symbolic link, either to hosts_away or hosts_moab, if you want to specify your own hosts, you can delete symbolic link and write your own rules.
3. Original /system/etc/hosts file has been locked from editing. This is to ensure that AdAway or other adblockers won't use obsolete and slow method of blocking ads through hosts. The whole point of implementing Adblock in ArchiDroid is to provide you with super-fast, flexible and effective way of blocking ads, also with getting rid of black/white ad screen. In 99% situations you don't want to touch ArchiDroid's default behaviour, as it blocks ads perfectly. Eventually, if you have a very good reason, you can unlock original hosts file through ArchiDroid's Backend Control and modify them, however keep in mind that every additional rule WILL slow down your network speed.
4. In default configuration local dns server uses two OpenDNS servers at port 5353, two Google DNS servers at port 53 and up to two local DNS servers provided by your Wi-Fi/3G connection, which overall gives a sum of 6 remote dns servers. In some rare scenarios (f.e. some wi-fi hotspots) you can notice that a moron, administrator of this wi-fi, blocked all dns queries and forces you to use his DNSes. This is BAD because of freedom and so on, but it's very common practice, that's why I turned on local DNSes as well. If you want to improve your privacy at least a bit, you can disable local DNS servers and then use only OpenDNS and Google DNS.
5. Above option initialy has been written to allow you one-time access to such non-trusty wi-fi's. But if you for any reason need automatic update of your local DNSes (3G and Wi-Fi's will use different local DNSes), you can also turn on Local DNSes Daemon, which will automatically query and update local DNSes if needed. This is also turned on in addition to local dnses above, of course in default preset.
ArchiDroid's Forced Update (RunOnce)
Forced update selected during mode selection in aroma tells RunOnce to work in "INSTALL" mode even on "UPDATE" mode, apart from that it works exactly the same as update mode, only RunOnce is affected.
Last one.
Download links now available.
Please note that it's the first release of ArchiDroid 2.X for Xperia M so it's pretty much a beta release. However I couldn't find any major issues so you don't need to worry about bugs.
Xperia M-specific informations:
1. Kernel is compiled from FreeXperia sources, with small additions to make it work with ArchiDroid Optimizations. Including being compiled with GCC 4.8.
2. I decided that TWRP is at the moment the most stable and feature-rich recovery for nicki, so ArchiDroid kernel natively comes with TWRP recovery.
3. You can flash this ROM using any custom recovery available at the moment, including TWRP, CWM and PhilZ. Just keep in mind that ROM will overwrite kernel (and your recovery) after installation. I strongly suggest to stay with ArchiDroid kernel as it has pretty neat optimizations (linked above) but it's your choice.
Missing reserved posts, including credits will be added ASAP.
Have fun, please give feedback . If you appreciate my work, you can always buy me a beer!
What about sd support?
Sent from my Xperia M using XDA Premium 4 mobile app
theviper said:
What about sd support?
Sent from my Xperia M using XDA Premium 4 mobile app
Click to expand...
Click to collapse
ArchiDroid is very strongly based on CyanogenMod 11, so everything what works for CM most likely will also work for AD.
Will try
Anyways features are bit complicated for me
Hehe
Sent from my Xperia M using XDA Premium 4 mobile app
theviper said:
Will try
Anyways features are bit complicated for me
Hehe
Sent from my Xperia M using XDA Premium 4 mobile app
Click to expand...
Click to collapse
This is not a toy, ArchiDroid has even his own Debian OS inside . However thanks to my AROMA installer flashing and using AD can be ultimately easy or ultimately advanced, everything depends on you.
JustArchi said:
This is not a toy, ArchiDroid has even his own Debian OS inside . However thanks to my AROMA installer flashing and using AD can be ultimately easy or ultimately advanced, everything depends on you.
Click to expand...
Click to collapse
Thats awsm man
Downloading now
Will report soon
Sent from my Xperia M using XDA Premium 4 mobile app
Hello rom is totally awsm but can u tell me how to disable those status bar thinga
Sent from my Xperia M using XDA Premium 4 mobile app
theviper said:
Hello rom is totally awsm but can u tell me how to disable those status bar thinga
Sent from my Xperia M using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Reading Q&A may help .
Are you going to update this rom with new cm fxp builds?
Awwww yeah @JustArchi in the house. Great to see you here man, goodluck with this !
On topic, will be waiting patiently to try this as I am currently busy with something else.
Really awesome rom mean :good: :fingers-crossed:
Barua said:
Are you going to update this rom with new cm fxp builds?
Click to expand...
Click to collapse
I'm using their sources so you can expect updates from time to time. However Xperia M is not my daily device.
Really awesome rom @JustArchi I flashed it yesterday night and untill now just the fastest rom I ever used, also the 160dpi is cool en look great really thanks for this masterpiece, I'm never leave Archidroid
EDIT: I see you have not included frandrom are u thinking to implement that in the next release ?
Sent from my C1905 using XDA Free mobile app
android-turk said:
Really awesome rom @JustArchi I flashed it yesterday night and untill now just the fastest rom I ever used, also the 160dpi is cool en look great really thanks for this masterpiece, I'm never leave Archidroid
EDIT: I see you have not included frandrom are u thinking to implement that in the next release ?
Sent from my C1905 using XDA Free mobile app
Click to expand...
Click to collapse
Fairly easy but I don't want to touch the kernel too much. Right now it includes only two little fixes for GCC 4.8.
Also, yeah, this is potentially the fastest and most optimized ROM for Xperia M at the moment, thanks to my optimizations and GCC 4.8.
hey
this will work on xperia M Dual with both sim card slot ????

[Tool][Guide] LeeDrOiD and ICE svnZipper | Windows | Linux | Mac

svnZipper​
As you may know developers like @LeeDroid and @baadnewz use Subversion so users can get the latest changes quickly. Although this results in users checking out the Subversion repository and zipping the ROM themselves. This doesn't sound too difficult and it isn't, but to make things easier I made a tool I like to call "svnZipper". It is a pre-built binary with all the dependencies to build a nightly ROM from @LeeDroid and @baadnewz repositories, this has support for Windows, Linux and Mac.
As we are not all perfect the tools does face issues, be it bugs or user issues, I am finding it hard to keep track of all these issues popping up in each thread. Therefore I made this thread to get the latest svnZipper, follow guides and report any issues for me to answers and solve (although it is in HTC 10 thread you can post HTC One M9 and HTC One M8).
The Guide​
Step 1
Download the latest svnZipper:
LeeDrOiD get it here
ICE get it here
Put the svnZipper anywhere you like on your PC, I would recommend a folder you can easily access.
Step 2 (Only Required for Mac and Linux)
For Mac and Linux you will need to set the permissions of the binary to be executable. You are probably be familiar with this process if you are a Linux and Mac user but if you don't know the process I will explain it for you. Open up a terminal and change to the directory of the location of your svnZipper, then type the following command:
Mac:
chmod 0755 macSvnZipper followed by enter
Linux:
chmod 0755 linuxSvnZipper followed by enter
Step 3
Execute the svnZipper
Windows:
Double click the svnZipper.exe or open up command prompt in the location of the .exe and type:
svnZipper.exe followed by enter.
Mac:
With the terminal still open from Step 2, type the following command:
./macSvnZipper followed by enter
Linux:
With the terminal still open from Step 2, type the following command:
./linuxSvnZipper followed by enter
Once you have execute the screen you will be presented with a image as shown below:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Step 4
Type the corresponding number next to the device you would like to build for and press enter. This will start the process of checking out files or updating the files that already exist if you have checked out before. This process will vary time consuming depending on how many files are needed to be download from the remote repository.
This process will complete the following steps:
1. Checkout/Update files from the remote repository for your device
2. Make a nightly .zip for your device
3. Make a md5 checksum file for .zip
All checked out files will be stored in the same directory of executable in the following paths:
LeeDrOiD:
HTC 10 it will be /LeeDrOiD_PME
HTC M9 it will be /LeeDrOiD_HIMA
HTC M8 it will be /LeeDrOiD_M8
ICE:
HTC 10 it will be /ice_pme
HTC M9 it will be /ice_hima
HTC M8 it will be /ice_m8
Once completed you will be presented with a screen shot similar to the ones below.
All nightly .zip and .md5 files will be stored in the same directory of executable in the following paths:
LeeDrOiD:
HTC 10 it will be /LeeDrOiD_PME/Builds
HTC M9 it will be /LeeDrOiD_HIMA/Builds
HTC M8 it will be /LeeDrOiD_M8/Builds
ICE:
HTC 10 it will be /ice_pme/Builds
HTC M9 it will be /ice_hima/Builds
HTC M8 it will be /ice_m8/Builds
The builds will be named in the following format:
LeeDrOiD:
HTC 10 it will be LeeDrOiD_PME_RXX.zip
HTC M9 it will be LeeDrOiD_HIMA_RXX.zip
HTC M8 it will be LeeDrOiD_M8_RXX.zip
ICE:
HTC 10 it will be ice_pme_nightly_rXX.zip
HTC M9 it will be ice_hima_nightly_rXX.zip
HTC M8 it will be ice_m8_nightly_rXX.zip
Step 5
If a update comes out and you would like to rebuild the ROM again, follow Step 3 and Step 4
FAQ
QUESTION: The build zip is extremely small and has missing files?
ANSWER: Delete the checked out files and execute the steps above again
QUESTION: The revision checked out by the tool is out of date and doesn't get the latest revision from the remote repository?
ANSWER: Delete the checked out files and execute the steps above again
Note: The FAQ will increase as I get more user experience.
Reporting a Issue
Take screen shot of the errors raised from the tool and post it in this thread. If I don't get as much information as possible I can not help you.
Note: Windows will automatically close is a issue arises, therefore I recommend that you execute the .exe in command prompt instead of double clicking.
XDA:DevDB Information
svnZipper, Tool/Utility for the HTC 10
Contributors
~clumsy~
Source Code: https://github.com/clumsy1991/svnZipper
Version Information
Status: Beta
Current Stable Version: 1.0.4
Stable Release Date: 2016-06-06
Created 2016-06-07
Last Updated 2016-06-07
Changelog
Changelog
V1.0.5
Set locale so SVN doesn't report errors handling non ascii file names.
Thanks to @coolberry for reporting the bug
V1.0.4
Considered as initial revision
Brillant.... Much easier to follow in the future with this dedicated thread.
Not to forget to mention that it's never been easier to update nightlies ?????
Sent from my HTC 10 using XDA-Developers mobile app
The Great Dane said:
Brillant.... Much easier to follow in the future with this dedicated thread.
Not to forget to mention that it's never been easier to update nightlies ?????
Click to expand...
Click to collapse
And press 1 to build
~clumsy~ said:
And press 1 to build
Click to expand...
Click to collapse
Shut up LMFAO [emoji12]
Different filesize
Hi @~clumsy~,
I already posted this in @LeeDroid thread but he told me to ask you about this.
been playing around with the svnZipper but I don't fully trust it. I have a fast NAS server where I made a folder for this. Added the zipper and executed it. Works well and downloaded (as far as I can tell, all the available files).
When the zip file is made during the process, the NAS seems to be slower so I made a local folder on my i7 32GB Windows 10 pro powered machine with raid SSD to this should work super fast.
Ran svnZipper and yes, it is fast but after the script was finished, I checked the file size of the created zip and it was about 300MB smaller then the one on the NAS. Turned out the only folder that was downloaded by the zipper is the system folder. The created MD5 "tells" me the zip is correct in filesize but as this is created based on the downloaded files, it is easy to get a corrupted/incomplete flashable rom file that can f*ck up you HTC 10.
Please see the attached printscreens. A local version and a nas version.
Is this something I'm doing wrong?
Thanks for your reply!
twistednl said:
Hi @~clumsy~,
I already posted this in @LeeDroid thread but he told me to ask you about this.
been playing around with the svnZipper but I don't fully trust it. I have a fast NAS server where I made a folder for this. Added the zipper and executed it. Works well and downloaded (as far as I can tell, all the available files).
When the zip file is made during the process, the NAS seems to be slower so I made a local folder on my i7 32GB Windows 10 pro powered machine with raid SSD to this should work super fast.
Ran svnZipper and yes, it is fast but after the script was finished, I checked the file size of the created zip and it was about 300MB smaller then the one on the NAS. Turned out the only folder that was downloaded by the zipper is the system folder. The created MD5 "tells" me the zip is correct in filesize but as this is created based on the downloaded files, it is easy to get a corrupted/incomplete flashable rom file that can f*ck up you HTC 10.
Please see the attached printscreens. A local version and a nas version.
Is this something I'm doing wrong?
Thanks for your reply!
Click to expand...
Click to collapse
One thing to note and I will add this to the OP. The MD5 is the MD5 of the zip created on your machine, so it will only check for corruption when transferring from your PC to you Phone, not from SVN to your machine.
Did you transfer the repository from your NAS to your i7 machine? Or rechecked the files out on your local machine?
~clumsy~ said:
One thing to note and I will add this to the OP. The MD5 is the MD5 of the zip created on your machine, so it will only check for corruption when transferring from your PC to you Phone, not from SVN to your machine.
Did you transfer the repository from your NAS to your i7 machine? Or rechecked the files out on your local machine?
Click to expand...
Click to collapse
No I did not move the file to my local machine but opened the zip.
Inside the zip you can see why the size is different. I'll add printscreens of the several versions I have. I use the svnZipper.exe version 1.04 FYI.
Everytime I run the zipper it just seems to grab some files and not all. My connection is a 100MB fiber and my local network is 1GB.
I could runs something like Wireshark during the execution of the zipper to see if there are any errors.
Regards Ralph
twistednl said:
No I did not move the file to my local machine but opened the zip.
Inside the zip you can see why the size is different. I'll add printscreens of the several versions I have. I use the svnZipper.exe version 1.04 FYI.
Everytime I run the zipper it just seems to grab some files and not all. My connection is a 100MB fiber and my local network is 1GB.
I could runs something like Wireshark during the execution of the zipper to see if there are any errors.
Regards Ralph
Click to expand...
Click to collapse
Yeah it needs to determine some errors, it's quite simple at the moment. I execute the svn checkout on a different thread it seems like errors are missed. So the local repo thinks it is upto date. It seems like a common bug and something I need to work. For now the only solution is to delete the local repo including the .SVN directory and run the process again. It isn't the best solution for now but I will fix it, I just need time.
~clumsy~ said:
Yeah it needs to determine some errors, it's quite simple at the moment. I execute the svn checkout on a different thread it seems like errors are missed. So the local repo thinks it is upto date. It seems like a common bug and something I need to work. For now the only solution is to delete the local repo including the .SVN directory and run the process again. It isn't the best solution for now but I will fix it, I just need time.
Click to expand...
Click to collapse
Good luck with that. If you need any help testing, just PM me and I will try to help you out.
Please bear in mind I only reported this to warn you and not because of any complains about your work
Cheers!
twistednl said:
Good luck with that. If you need any help testing, just PM me and I will try to help you out.
Please bear in mind I only reported this to warn you and not because of any complains about your work
Cheers!
Click to expand...
Click to collapse
I know! Much appreciated! This why I made the thread so i can capture bugs and peoples experiences.
Thank you!
Though resume download is broken in this SVN tool, it will see the files downloaded as complete and will not give an option to resume or force resume
great job,thanks!
~clumsy~ said:
Yeah it needs to determine some errors, it's quite simple at the moment. I execute the svn checkout on a different thread it seems like errors are missed. So the local repo thinks it is upto date. It seems like a common bug and something I need to work. For now the only solution is to delete the local repo including the .SVN directory and run the process again. It isn't the best solution for now but I will fix it, I just need time.
Click to expand...
Click to collapse
Thanks for the heads up....
Sent from my HTC 10 using XDA-Developers mobile app
Just a minor fix, only 1 report case of the bug.
Changelog
V1.0.5
Set locale so SVN doesn't report errors handling non ascii file names.
Thanks to @coolberry for reporting the bug
Quite nice of a tool to use. But me I just highlight the 4-5 folders I need and right click send to folder and zip is created in few minutes.
Ndaoud360 said:
Quite nice of a tool to use. But me I just highlight the 4-5 folders I need and right click send to folder and zip is created in few minutes.
Click to expand...
Click to collapse
The tool is made for its ease of use and is independent so user don't have to install anything. It was requested by the devs. You can still use a manual solution.
Hi clumsy ...lovin your back-end work , kernel is smooth n functional , svnzipper windows works great ..
Now a nice request (challenge if you like) ..
Can we have a svnzipper for Android ..even shell based would be great, ...
Cheers
Sent from my HTC 10 using XDA-Developers mobile app
I have the same problem as mentioned on the first page. The program does not work correctly if I run it from a network share. It finishes downloading prematurely and it creates a partial ROM which does not work.
I took clumsy's script, stripped some parts in order to create a minimal example and to see what it does (I removed the multiprocess operations). The result: each time I run it, it works for several minutes, then it ends with the following error:
pysvn._pysvn_3_5.ClientError: ra_serf: The server sent a truncated HTTP response body.
It happens each time.
kfasheldon said:
Hi clumsy ...lovin your back-end work , kernel is smooth n functional , svnzipper windows works great ..
Now a nice request (challenge if you like) ..
Can we have a svnzipper for Android ..even shell based would be great, ...
Cheers
Click to expand...
Click to collapse
Sorry man, that will too much work as it wouldn't be possible with my current method.

[ROM+GUIDE][SM-G955x][AQH3] CeX - Flashable Repackaged Stock [29/08/17]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Definition
Let me first define what I mean by Creator's Experience. This ROM is just as good as your stock ROM on KNOX 0x0. I am in no way taking credit for any of the development in this ROM, I'm just repackaging the stock Samsung ROM in Samsung's experience how they created it. But if you flashed stock ROM you may get a ton of KNOX warnings so selling the device or giving your device to someone else would make it more complicated and frustrating due to nagging popups that you have to disable by first setting up the device. I wanted to create something that you can restore your device to when you get bored of a custom ROM, or you just want to use the latest stock firmware again.
This ROM will never contain any tweaks or system addons, it is barebones stock with no KNOX and stubs so people can use it as a rescue/reference firmware.
Purpose
Being the owner of the Korean Samsung Galaxy S8+ 128GB/6GB (SM-G955N), there are only so many stock firmwares available from Updato or Sammobile. All listed firmwares contain all the CSCs located in the /system partition, and the CSC file toggles between them. This means that regardless of what CSC you flash on the device, you will activate all the applications that were disabled by the CSC (KT mobile apps should be disabled on the SKT CSC, and vice versa). So flashing a Canadian CSC will still have every single South Korean carrier bloat on your device, which sucks.
This is a strange situation with 955N users, where ALL THE BLOAT is stored in /system/priv-app, while the csc is just one small file that controls which applications are active/inactive on the device.
Process
So, what does this mean? I wanted the stock international 955F ROM on my device, really badly. But Odin refused to flash it due to a secure write/invalid magic string error. I have tried everything from modifying the PIT tables in the ROMs to flashing custom ROMs. As much as custom ROMs are great, I wanted something I could fall back to when sh*t hits the fan, as well as something that fit the stock lifestyle...since I would really have loved to keep KNOX 0x0 if the Korean firmware was not as bloated as I thought it would be.
So for those who were searching for the stock ROM that was created with stock in mind, I have repackaged the 955F stock using the kitchen by @SuperR., with removed KNOX + KNOX apps (Secure Folder, KNOX Settings 1 & 2, Samsung Pay, Samsung Pass, etc.), removed stub apps (Microsoft apps folder) and removed CSC (I will elaborate more below).
As it takes me from 3-6 minutes to download stock firmware, I will be keeping this up to date for people who will need a rescue zip.
Reproduction
The reason why I'm keeping this as clean as possible is because it functions the same way as the Odin package. The AP will be the ROM zip, while you have to flash your own custom kernel, and flash the CSC package by @Tkkg1994. Finally, to top everything off, Magisk will be flashed.
A flowchart of this process (clean flash) is listed below:
Flash CeX stock (this ROM)
Flash the CSC using the CSC utility tool by @Tkkg1994: https://forum.xda-developers.com/galaxy-s8+/development/utility-flashable-csc-selection-v1-0-0-t3605264
Flash the kernel, I highly recommend @jesec's Jesse Kernel: https://forum.xda-developers.com/galaxy-s8/samsung-galaxy-s8--s8-cross-device-development/kernel-jesse-s-kernel-galaxy-s8-exynos-t3603521
Flash Magisk v12+: https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
A flowchart of this process (dirty flash) is listed below [dirty flash is supported on CeX, as long as you follow these steps]:
Use TWRP and wipe /system
Flash CeX stock (this ROM)
Flash the CSC using the CSC utility tool by @Tkkg1994: https://forum.xda-developers.com/galaxy-s8+/development/utility-flashable-csc-selection-v1-0-0-t3605264
Flash the kernel, I highly recommend @jesec's Jesse Kernel: https://forum.xda-developers.com/galaxy-s8/samsung-galaxy-s8--s8-cross-device-development/kernel-jesse-s-kernel-galaxy-s8-exynos-t3603521
Flash Magisk v12+: https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
Anomalies
At the current stage, this is just the stock Samsung firmware. So any bugs found in the official bugs list of the current firmware revision would be present in this ROM. See the second bracketed codename in the title of this thread.
Do you use Netflix or Amazon Prime Video?
With their Widevine DRM Module, it bypasses anything Magisk Hide has to offer.
Using TWRP, remove /system/lib/liboemcrypto.so, then reboot to system.
If you ever want to restore stock, this is the AQEB binary: https://www.androidfilehost.com/?fid=961840155545569722
Screenshots
There really doesn't need to be any screenshots, unless you have never turned on your phone on stock ROM before...but here, I'll show you Settings.
SafetyNet?
This is a simple phenomenon solved by having both a custom kernel with KNOX 0x0 simulation, like Jesse's kernel, and Magisk v12 installed with Magisk Hide enabled. It is confirmed that CeX respects SafetyNet.
Programmatically Displayed Debloated Applications/Services/Libraries
Code:
system/app/Facebook_stub*
system/app/MSSkype_stub*
system/app/SecureFolderSetupPage*
system/priv-app/OneDrive_Samsung_v2*
system/priv-app/SecureFolder*
system/priv-app/SamsungPass_1.1*
system/priv-app/Excel_SamsungStub*
system/priv-app/PowerPoint_SamsungStub*
system/priv-app/Word_SamsungStub*
system/container*
system/app/BBCAgent*
system/app/Bridge*
system/app/ContainerAgent*
system/app/ContainerEventsRelayManager*
system/app/kioskdefault*
system/app/KLMSAgent*
system/app/Knox*
system/app/KNOX*
system/app/MyKNOX*
system/app/RCPComponents*
system/app/SecurityLogAgent*
system/app/SwitchKnoxI*
system/app/UniversalMDMClient*
system/container*
system/etc/secure_storage/com.sec.knox*
system/preloadedkiosk*
system/preloadedmdm*
system/preloadedsso*
system/priv-app/KLMSAgent*
Download Links
AndroidFileHost Folder (Autopushed builds): https://www.androidfilehost.com/?w=files&flid=185563
AQH3 builds (August):
FullRebaseOptions from last build:
https://www.androidfilehost.com/?fid=745425885120758691
Normal build:
https://www.androidfilehost.com/?fid=817550096634795846
AQF7 build (June): https://www.androidfilehost.com/?fid=673368273298964156
AQEB build (May): https://www.androidfilehost.com/?fid=817550096634773510
Credits & Thanks
@SuperR. for his kitchen
@jesec for him helping out when I was frustrated something isn't working, and pretty much his experience with his 955N
@fahadali2315 for refreshing my memory of messing with a Samsung device
Anyone I missed, just hit me up in private!
XDA:DevDB Information
CeX, ROM for the Samsung Galaxy S8+
Contributors
nicholaschum, fahadali2315
ROM OS Version: 7.x Nougat
Version Information
Status: Stable
Current Stable Version: AQH3
Stable Release Date: 2017-05-31
Created 2017-06-01
Last Updated 2017-08-29
Building with SuperR Kitchen for your own stock region ROM
If you're interested in creating your own flashable ZIP based on a ROM, I will be listing the full instructions on how to get your own stock ROM up and running.
I will be building the latest XXU builds as soon as they drop.
Please do not PM me, instead, post in the thread for people to learn.
Prerequisites:
- Your device MUST be of the Exynos variant, with an available TWRP on the device. If you have a Qualcomm device, close this window now!
- You must have a Linux environment. I know @SuperR.'s kitchen works on Windows using Cygwin, but as an AOSP developer, I work with Linux to build stuff!
- Sudo account
- Collect and utilize as much wits as you can!
- I will be doing all of this from the command line using SSH, no GUI for this!
1) Download the latest SuperR kitchen here: https://forum.xda-developers.com/ap...chen-superr-s-kitchen-v1-1-50-v2-1-6-t3597434
by doing this (press enter after each line in this code block):
Code:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
git config --global credential.helper cache
cd ~/
git clone https://bitbucket.org/superr/superrs-kitchen.git
cd superrs-kitchen
./superr
The first time running the kitchen, you may need to install dependencies. It should automatically install all dependencies for you, but if it keeps asking you to install the same dependencies, you should install them using
Code:
sudo apt-get packageName
.
After all dependencies are installed, press 1 to create a new project, and name it whatever you want. In this example I will name it STOCK.
Press Q once the project is created (quits SuperR kitchen)
2) Download your Samsung stock firmware. There are two main sites nowadays to get Samsung stock firmwares from, including Updato and Sammobile.
Updato: http://updato.com/firmware-archive-select-model?q=SM-G955F&rpp=15&order=date&dir=desc&exact=1
Sammobile: https://www.sammobile.com/firmwares/galaxy-s8/SM-G955F/
You will need to get the firmware on your Linux box, or from Updato, right click Download (the orange button) and click Copy Link.
If you are planning to download from the SSH box, do:
Code:
cd ~/superr-kitchen/superr_STOCK && wget link_of_updato
3) Your firmware file is now ready to be loaded up into the kitchen. So do:
Code:
./superr
Then click 4 to extract for a new ROM, then click "y"
4) When it asks you whether you want to include cache.img, it doesn't really matter if you do or don't. Click "y" and include it in the ROM.
5) It will then ask you to type a name for your output ZIP
6) If it asks you where to locate the partition info from, pick the entry that is recommended, which takes the partition from system.img and recovery.img (Detect by-name from boot/recovery images (recommended))
So simply click 1.
7) Finally, we must set the perm type/archive type of your images. Click 1 for set_metadata (KitKat+)
NOTE: I have tried using Sparse dat for Korean 955N image - which working at a cost of all Google apps crashing/not responding, but doing so on the 955F ZIP will completely break and cause it to get stuck in TWRP trying to flash. set_metadata is the most stable.
8) You can now fiddle with the ROM! It is highly recommended to replace the stock kernel with @jesec's kernel, but make sure you extract his other folders from his ZIP into your working directory (~/superr-kitchen/superr_STOCK/system/*) or you won't boot! You can either opt for this, or just flash the kernel ZIP to retain support from Jesse (this is what I picked for CeX).
Key configurations (the options I picked for CeX):
->7) Boot/Recovery Tools
- Unpack boot.img
- Type 5 and disable forceencrypt
- Type 1 and pack boot.img
->8) ROM Tools Menu
- Asserts Menu (if you're trying to do 955N ROM)
- Add/Remove Device (dream2lte) <- change from dream2lteks or any other model, since TWRP only recognizes dream2lte.
->6) Debloat Menu
- Custom Debloat
- ~/superr-kitchen/tools/root/bloat_custom must be edited to contain these entries (nano ~/superr-kitchen/tools/root/bloat_custom to edit the file):
Code:
system/app/Facebook_stub*
system/app/MSSkype_stub*
system/app/SecureFolderSetupPage*
system/priv-app/OneDrive_Samsung_v2*
system/priv-app/SecureFolder*
system/priv-app/SamsungPass_1.1*
system/priv-app/Excel_SamsungStub*
system/priv-app/PowerPoint_SamsungStub*
system/priv-app/Word_SamsungStub*
system/container*
- Remove Samsung Knox
9) You can make external edits by placing files in ~/superr-kitchen/superr_STOCK/system, or do whatever you want with the APKs
10) Let's start building!
If you left the window, all you have to do is do:
Code:
./superr
8
7
1
This will get you to the ROM zip building screen.
If the kitchen asks if you would like to convert the updater-script to an updater-binary, do it. Now give it some time to build. Usually my computer takes 2-3 minutes.
11) Finally, you can decide whether you want to sign the ZIP or not. Personally, I do not sign my ZIPs.
If you decide to skip signing, you're done! Just type "n" on your keyboard and click "q" to quit the kitchen. Your new ZIP is located in ~/superr-kitchen/superr_STOCK/STOCK_BASED_ROM.zip
You can either move this to your h5ai server, like I do at http://download.projektsubstratum.com/, or you could use transfer.sh here:
Code:
curl --upload-file ./STOCK_BASED_ROM.zip https://transfer.sh/STOCK_BASED_ROM.zip
You could also move it to AndroidFileHost using FTP, if you have a developer account.
This may take a while for the upload to complete, but once it is done, you are ready to flash the four ZIPs:
The ROM
A custom kernel
The CSC utility flasher
Magisk (for SafetyNet)
12) Congratulations, you're done!
Pulling your own CSC files
So you tried to extract the CSC file (cache.img) from the CP tar for Odin but no luck flashing...but you really wanted an up to date version..
Prerequisites:
- Your device MUST be of the Exynos variant, with an available TWRP on the device. If you have a Qualcomm device, close this window now!
- You must have a Linux environment for simg2img
- Sudo account
- Collect and utilize as much wits as you can!
- I will be doing all of this from the command line using SSH, no GUI for this!
1) Download simg2img to your Linux box and build the project
Code:
cd ~/
git clone https://github.com/anestisb/android-simg2img
cd android-simg2img
make
2) After simg2img has been compiled, we will have to use it.
Place your cache.img.ext4, yanked out of the CP.tar.md5 file (renamed to CP.tar) in the same directory of the git cloned repo
If you need a command to extract the .tar file, run:
Code:
tar xf CP.tar
3) Convert the image
Code:
./simg2img cache.img.ext4 cache.raw.img
4) Mount the image
Code:
sudo mkdir /media/csc
sudo mount -t ext4 -o loop cache.raw.img /media/csc
cd /media/csc
5) Copy the prepared flashable CSC zip out of the image
Code:
cp sec_csc.zip ~/
6) Flash the ZIP
7) Boot into the system. If you flashed a multi-CSC, you may need to configure it to be specific to your country.
This will require root, so get yourself into adb shell, then (credits to @jesec):
Code:
adb shell
su
am start com.sec.android.Preconfig/.Preconfig
A window will pop up giving you all the options selectable in your MultiCSC. Clicking and installing any of them will wipe your device, so watch out!
one last reserve post
locking my thread till the upload is finished....
@OP
Great idea bro, thanks a lot.
Nice work! @nicholaschum
Very Good! Thanks!
Sorry, my english is to bad...
Thats mean, if i Flash this Rom and later, when i go back to stock, my knox will be 0x0?
No, KNOX still tripped but with fake 0x0
Good work !! @nicholaschum
Th3PorTuGa said:
No, KNOX still tripped but with fake 0x0
Click to expand...
Click to collapse
Thanks
@nicholaschum
Can I ask possibly a dumb question
Is flashing CSC required?
I mean what happens if you don't flash CSC.
I am currently in AU on Vodafone CSC. I would change it to XSA but if I decided not to or forgot to do it. Would the CSC activate based on what is currently set as my CSC there or is this required so the rom can then load the apps based on location?
Perfect Build Perfect ROM. Installed as per instructions and works like a charm. Thanks for the work.
davjak said:
@nicholaschum
Can I ask possibly a dumb question
Is flashing CSC required?
I mean what happens if you don't flash CSC.
I am currently in AU on Vodafone CSC. I would change it to XSA but if I decided not to or forgot to do it. Would the CSC activate based on what is currently set as my CSC there or is this required so the rom can then load the apps based on location?
Click to expand...
Click to collapse
The CSC is required or else Samsung stock ROMs will not know how to configure your phone. This also I closed LTE-A capabilities, wifi calling and VoLTE functionality. Since this ROM does not contain any CSC you could flash the DBT CSC from the flashing utility which is the default CSC on most ROMs that is Germany debranded.
@nicholaschum - thanks for sharing this ROM. i'm using as a daily driver for my "work device" in combination with the ATT CSC flashed via TK's CSC package. if/when Substratum is available for TW based S8 ROMs, can i assume your ROM will support it? thanks for taking time to read/respond to my question.
Just installed. Silky smooth! Great work op
cortez.i said:
@nicholaschum - thanks for sharing this ROM. i'm using as a daily driver for my "work device" in combination with the ATT CSC flashed via TK's CSC package. if/when Substratum is available for TW based S8 ROMs, can i assume your ROM will support it? thanks for taking time to read/respond to my question.
Click to expand...
Click to collapse
Yes. That is the whole point behind it , keeping it stockish with subs support when it arrives.
I want install it, but i dont what do..
I want sale my phone later and get Note 7.
Is complicate if we cant use Samsung pay when we back to stock.
@nicholaschum Thanks heaps for this, took the leap and followed the instructions. Very simple task! now running XSA CSC with AQEB

[APK] Xperia Chinese Keyboard 25.1.A.0.45 modified to work on any device (tested on LOS 18.1)

Xperia Chinese Keyboard modified to work on any device
Supports pinyin, zhuyin, stroke order, handwriting and Cangjie, as well as English input
Version: 25.1.A.0.45 Patch #6 Updated 2022-11-18
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
​
Download
From Mega.nz (file too large to attach here):
Patch 6 for LOS 19.1 / Android 12
Patch 5 for LOS 18.1 / Android 11
Spoiler: Other versions – for reference only
Patch 4 - Test (for Lineage 18.1, test workaround)
Patch 3 (for LineageOS 18.1, occasional crashes)
Patch 2 (for LineageOS 17.1)
Patch 1 (for LineageOS 16.0)
Installation
Best installed with: adb install -g <filename>
Otherwise, have to manually grant the permission: Settings → Apps & notifications → See all apps → Xperia Chinese keyboard → Advanced → Display over other apps: Allowed (will crash if you won't)
Enable the input method in Settings → Languages & input and switch to it using the keyboard icon on the navigation bar, which appears when you start editing text
Some Details
Based on firmware H9493_Customized TW_52.1.A.3.137-R4C for Sony Xperia XZ3 (Akatsuki)
Includes libraries to make it work as a user (not system) app:
libbase.so, libc++.so, and libnativehelper.so from LineageOS 18.1
libsqlite.so from SQLite's official precompiled Android binaries
Changed values loaded into $LayoutParams;->type:I from 0x000007dc = 0x000007d9 (TYPE_KEYGUARD_DIALOG) | 0x00000002 (TYPE_APPLICATION) | 0x00000001 (TYPE_BASE_APPLICATION), only allowed for system apps, to 0x000007f6 (TYPE_APPLICATION_OVERLAY) and updated the manifest accordingly to request the permission android.permission.SYSTEM_ALERT_WINDOW (which must be granted manually)
Patch 3: Remove dependency on Sony Vibration Effect library (com.sonymobile.vibrationeffect.api_1) from the manifest
Patch 3: Replace all references to Sony Vibration Effect library: invoke-static {p1}, Lcom/sonymobile/vibrationeffect/VibrationEffect;->get(I)Landroid/os/VibrationEffect;which were causing the app to crash, with standard Android calls:
const/4 p0, -0x1 (DEFAULT_AMPLITUDE)
const-wide/16 v2, 0xc (Duration: 12 ms)
invoke-static {v2, v3, p0}, Landroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect;
— for keypresses
const v0, 0x2 (EFFECT_TICK)
invoke-static {v0}, Landroid/os/VibrationEffect;->createPredefined(I)Landroid/os/VibrationEffect;
— for other events
Patch 4 - Test: Remove the invocation of a virtual method invoke-virtual {p0}, Lcom/sonyericsson/textinput/chinese/uxp/view/hw/HWFullView;->getVisibility()I that causes a crash under some circumstances in InputMethodServiceGlue. However the side effect of this change is that other UI elements cannot be interacted with while the keyboard is open. How to fix this completely needs further investigation. Since the crash seems rare, I recommend sticking with Patch 3 for now.
Patch 5: A different workaround for the above mentioned issue. If iget-object p0, p0, Lcom/sonyericsson/textinput/chinese/glue/InputMethodServiceGlue;->mHwFullView:Lcom/sonyericsson/textinput/chinese/uxp/view/hw/HWFullView; returns 0 (i.e. effectively NULL but there's no explicit check for that in Smali), then skip the call and return from the method. Otherwise, proceed. After a week of testing, this seems to work well: no rare crashes, and the UI is accessible too with the keyboard open.
Tested to work on two different LineageOS 18.1 devices. Should work elsewhere too. If it doesn't, it's probably because of the three libraries (libbase.so, libc++.so, and libnativehelper.so): check adb logcat and replace them with the versions from your system.
Patch 6: Fix compatibility with LOS 19.1/Android 12 where a call to jniGetFDFromFileDescriptor() from libnativehelper.so fails by design due to API changes (see: Google Issue Tracker), and the version of the library included with the app can no longer be used due to name conflict with the system library with the same name. The workaround: rename the bundled libnativehelper.so (same as Patch 5/Android 11/LOS 18.1, so unchanged) to libforeignenemy.so and change references to it in libcootek_pte_oem.so, libcootek_pte_oem_western.so and libcurve_oem.so accordingly. Also update libbase.so and libc++.so to current versions from LOS 19.1 (Android 12).
Related
Xperia keyboard for most languages port by @greenys'
Xperia Chinese keyboard version 10.1.A.0.1 (Android 4.4+, 2012-2013) by @danist727
That's some amazing work there. I wish there was a more up to date version for general languages not just the good ol 8.0.A.110 version that I've been using for 3 years or more across my devices. Thanks a lot.
Thank you for your work! However, the link is down, it is giving 410 error from XDA. Can you reupload it? Thanks again.
sjdhmtthm said:
Thank you for your work! However, the link is down, it is giving 410 error from XDA. Can you reupload it? Thanks again.
Click to expand...
Click to collapse
Hi, the files are attached to the post, so they are hosted here on XDA. I checked the links and they seemed to start downloading correctly for me but now I edited the post and removed the inline links, so the files should show up as an attachment below the post instead.
Can you successfully download any other attachments at all (from other posts)? Maybe there are some restrictions in place for newly-created XDA accounts. Anyway, if they still don't download for you, let me know and I'll upload them elsewhere as well. (The advantage of having the files hosted here is that the links never expire.)
Aqq123 said:
Hi, the files are attached to the post, so they are hosted here on XDA. I checked the links and they seemed to start downloading correctly for me but now I edited the post and removed the inline links, so the files should show up as an attachment below the post instead.
Can you successfully download any other attachments at all (from other posts)? Maybe there are some restrictions in place for newly-created XDA accounts. Anyway, if they still don't download for you, let me know and I'll upload them elsewhere as well. (The advantage of having the files hosted here is that the links never expire.)
Click to expand...
Click to collapse
It works now, must be having some errors just now. Thanks again.
Edit: Part 2 seems to not be able to download and corrupted, second try gives me the same error again.
I asked my friend who is not logged in to download and he experienced the same error.
It would be great if you can upload it elsewhere, the two tries I where I successfully downloaded part 2 returns corrupted. Thank you.
Edit 2: Changing browsers on mobile worked. Surprised that both Firefox on mobile and desktop returned an error for me. Thank you, problem is solved.
Is this keyboard for chinese only or can I use english as well? its been a while and long since we get an updated Xperia Keyboard version, still using the 2/3 years old v8.1.A.0.12 dated November 12, 2017.
SM-03 said:
Is this keyboard for chinese only or can I use english as well?
Click to expand...
Click to collapse
It can be used for English input too. If you take a look at the first 3 screenshots, there is a button (labelled "CN") that toggles between English and Chinese in the bottom right corner of the keyboard.
It supports word completion in English too but there's no way to type accented characters (for other languages written in the Latin script).
how to dl and extract this? I downloaded two p[arts but still getting error while extracting, any other parts there or missing?
is there any update for android10?
after update to 55.1.A.0.748
chinese keyboard keep crashed
SM-03 said:
any other parts there or missing?
Click to expand...
Click to collapse
Just checked again, it unpacks fine. Nothing is missing. The complete instructions are already in the first post. Not sure what else would need explaining.
frank3302 said:
is there any update for android10?
Click to expand...
Click to collapse
I don't use Android 10. Feel free to contribute an update, and I will link to it in the first post.
Aqq123 said:
Just checked again, it unpacks fine. Nothing is missing. The complete instructions are already in the first post. Not sure what else would need explaining.
Click to expand...
Click to collapse
Yes, it's working (extracted) as per the instructions written into the OP, but the font size is too small that I didn't see /notice that instruction earlier, you should've mentioned that in bold & highlighted for better & clear visibility.
SM-03 said:
I didn't see /notice that instruction earlier, you should've mentioned that in bold & highlighted for better & clear visibility.
Click to expand...
Click to collapse
This board is called XDA Developers for a reason. As a participant you are expected to possess a modicum of rudimentary computer skills and, more importantly, willingness to learn to solve your own problems. In particular, this thread is in the Development section. This is not the place to demand an illustrated step-by-step tutorial how to unpack a ZIP file.
Besides, as duly proven, even the best instructions won't help an ignorant person who can't be bothered to read them such as yourself. And finally, neither me nor anyone else here owes you anything just because you can't get something to work, so the only thing I "should have" is not indulged this behavior earlier.
Good luck with your future endeavors as you will need it with this kind of an attitude. Now, feel free to move on.
Aqq123 said:
This board is called XDA Developers for a reason. As a participant you are expected to possess a modicum of rudimentary computer skills and, more importantly, willingness to learn to solve your own problems. In particular, this thread is in the Development section. This is not the place to demand an illustrated step-by-step tutorial how to unpack a ZIP file.
Besides, as duly proven, even the best instructions won't help an ignorant person who can't be bothered to read them such as yourself. And finally, neither me nor anyone else here owes you anything just because you can't get something to work, so the only thing I "should have" is not indulged this behavior earlier.
Good luck with your future endeavors as you will need it with this kind of an attitude. Now, feel free to move on.
Click to expand...
Click to collapse
wow, so many words for just saying the small font & you should've written it with bigger font size for better visibility? You're rare & amazing.
I am not able to merge the two zipped files into one. I followed the instruction to rename as .zip and .z01 for both files but the second part stated no content inside to extract. should I download rar software to unrar it in desktop file explorer? Can someone kind hearted enough keep the file in one and upload somewhere for me to download?
atisha said:
I am not able to merge the two zipped files into one. I followed the instruction to rename as .zip and .z01 for both files but the second part stated no content inside to extract. should I download rar software to unrar it in desktop file explorer? Can someone kind hearted enough keep the file in one and upload somewhere for me to download?
Click to expand...
Click to collapse
I just checked and it unpacks with WinRAR and 7-Zip for me. Anyway, since I made another version later, here they are both, externally hosted:
Patch 2 (try this first, should be compatible with LineageOS 17.1 at least)
Patch 1 (original version as linked above)
I also updated the original post accordingly.
Found a Bug
Hi Aqq123,
This is some impressive work, thank you for making this!
Just wanted to post a bug I found: the "pull down menu" for the Chinese typing doesn't work. E.g. I want to type the word 蚝煎, but after clicking on the arrow on the right, nothing appears! So I wasn't able to type things beyond the suggestions in the first row.
I'm using Sony Xperia 10 II, Android 10 (Build number 59.0.A.10.5), and I used Patch 2 of your download. Would really appreciate if you could solve the bug, because this keyboard is such a life saver for me. Thanks!
Screenshot: https:// drive. google. com/ file/ d/ 12eEBAzBalbq0ZKfQMh2SLI-045-Gb1Z1/ view?usp=sharing
(Included the spacing because the forum just wouldn't let me post it)
johnsyh said:
Just wanted to post a bug I found: the "pull down menu" for the Chinese typing doesn't work
Click to expand...
Click to collapse
You're right, thanks for spotting it. It used to work in the first version though, so it's probably down to some library incompatibility (and the first version itself won't work with the newer Android). I'll look into it when I have the time. A better approach though might be to ditch it altogether and look at adopting a newer APK version instead. Meanwhile, a lousy workaround is to just hand-write the character.
Since you're using Sony stock firmware, have you tried downloading the Hong Kong or Taiwan version for your device with XperiFirm, extracting the APK from there (for example with UnSIN), and installing it? It'd either work immediately or, if not, the exact library versions to make it work would also be there.
Aqq123 said:
Hi, the files are attached to the post, so they are hosted here on XDA. I checked the links and they seemed to start downloading correctly for me but now I edited the post and removed the inline links, so the files should show up as an attachment below the post instead.
Can you successfully download any other attachments at all (from other posts)? Maybe there are some restrictions in place for newly-created XDA accounts. Anyway, if they still don't download for you, let me know and I'll upload them elsewhere as well. (The advantage of having the files hosted here is that the links never expire.)
Click to expand...
Click to collapse
Thank you so much. I am able to download patch 2 and install directly. So so very grateful as this is the best T9 keyboard ever! (Could be better if it supports Malay too with black layout white font but one shouldnt be too greedy).
Aqq123 said:
You're right, thanks for spotting it. It used to work in the first version though, so it's probably down to some library incompatibility (and the first version itself won't work with the newer Android). I'll look into it when I have the time. A better approach though might be to ditch it altogether and look at adopting a newer APK version instead. Meanwhile, a lousy workaround is to just hand-write the character.
Since you're using Sony stock firmware, have you tried downloading the Hong Kong or Taiwan version for your device with XperiFirm, extracting the APK from there (for example with UnSIN), and installing it? It'd either work immediately or, if not, the exact library versions to make it work would also be there.
Click to expand...
Click to collapse
HI would you have general sony xperia keyboard (non Chinese, English) apk as well to share? with layout skin colour if possible.
On behalf of my wife, who has just upgraded from Xperia XZs to the new Xperia 1 III, and couldn't get over how bad gboard is over the Xperia 注音 input (she has a very unusual character in her name, which gboard doesn't recognize, it spoiled her fun of getting a new device when she couldn't even type her name in correctly during setup) - thank you! You have made me a hero around the house for finding this, and installing it on her phone. My old account on this forum got lost in time, gone with an e-mail domain that no longer exists, but I set up a new one just to thank you for your work!

Categories

Resources