Related
Hi to everybody, I come from the BADA subforum, and there is a new project trying to port Android to samsung Wave phone.
Devs have some issues, we are in the last steps and here is a summary
will want to note that the kernel has been confirmed as able to boot into android homescreen when flashed though JTAG
we're modifying the init scripts to boot it from sdcard
the device is accessible from adb how ever the Android system services such as zygote are restart looping
i *think* i managed to execute standard boot on init.rc with adb interface, zygote and android services appear to be stuck in a restart loop:
http://code.google.com/p/badadroid/source/detail?r=192
EDIT: would like to note that while "VIBETONZ" is appearing on the log, the phone is not vibrating, nothing is appearing on the display either. If possible i'd like a check on my kernel sources Oleg. EDIT AGAIN: the phone does actually vibrate, my bad
line 3150ish you can see the zygote service and various others getting killed and restarting.
EDIT2: another debug log extracted using "adb bugreport" (very large, will want to download in order to view)
http://code.google.com/p/badadroid/source/detail?r=193
http://badadroid.googlecode.com/svn/trunk/adb logs/bugreportnb190511.log
EDIT3: it's possible that the restart loop is caused by lack of memory, this could be caused by the memory mapping of the current bootloader we're using, will have to ask rebellos and srg about that.
added a log to googlecode for procedure to boot kernel using init.rc with adb interface working ( i'm not exactly sure why this works) i may upload the zImage i'm using for this, but it'll only work if you partition your memory card in the correct layout and format.
http://code.google.com/p/badadroid/source/detail?r=194
http://code.google.com/p/badadroid/d...511v2&can=2&q=
Click to expand...
Click to collapse
We need some ideas, or whatever you can provide with your knowledge to help us in this project.
more info: http://forum.xda-developers.com/showthread.php?t=1012856&page=100
Thanks to everybody.
hi to everybody
need help, please!
anybody?
I will take a look later on this evening and see if I can tell anything.
Your kernel seems to work, most of your issues in the log that was posted in my thread come from the ramdisk and system build. Until you work at those for a bit, I don't think you're going to know where to place the blame for issues until you're clean.
For the VM crash loop:
Take all of the non critical apps and gapps out of /system/apps (stuff like vending, maps, touchwiz and so on.)
And see what you get. If you can't solve it that way, then try to do:
adb pull /dbdata/databases/com.android.providers.settings/settings.db settings.db
And see what you get. If its there, it's corrupt. If it isn't, check to make sure the directory is getting created. You can also get someone to pull settings.db from a similar device (i9000?) and try to push it to yours.
But that's only the first of your problems. You have some bad lines in init.rc (your rild daemon isn't configured correctly amongst other things), and a few things missing in /system/bin and /system/lib (calls to missing things). If you aren't using an extract of system.img from the sdk, you probably should. Then you can load in libs one at a time in a clean and controlled environment.
BTW: What Android system are you using? What device did it come from? If you built it from source, seriously, try using an emulator image first.
spacemoose1 said:
Your kernel seems to work, most of your issues in the log that was posted in my thread come from the ramdisk and system build. Until you work at those for a bit, I don't think you're going to know where to place the blame for issues until you're clean.
For the VM crash loop:
Take all of the non critical apps and gapps out of /system/apps (stuff like vending, maps, touchwiz and so on.)
And see what you get. If you can't solve it that way, then try to do:
adb pull /dbdata/databases/com.android.providers.settings/settings.db settings.db
And see what you get. If its there, it's corrupt. If it isn't, check to make sure the directory is getting created. You can also get someone to pull settings.db from a similar device (i9000?) and try to push it to yours.
But that's only the first of your problems. You have some bad lines in init.rc (your rild daemon isn't configured correctly amongst other things), and a few things missing in /system/bin and /system/lib (calls to missing things). If you aren't using an extract of system.img from the sdk, you probably should. Then you can load in libs one at a time in a clean and controlled environment.
BTW: What Android system are you using? What device did it come from? If you built it from source, seriously, try using an emulator image first.
Click to expand...
Click to collapse
It is possible it was not made clear, its a 2.2 stock ROM being ported from the Samsung Galaxy S to the Samsung Wave (formerly a BadaOS device). It is also being booted off of SD as apposed to OneNand. It uses a patched version of the SBL from the galaxy S but when Android is flashed to Nand it can boot fine (although problems are had initializing the Modem).
sabianadmin said:
It is possible it was not made clear, its a 2.2 stock ROM being ported from the Samsung Galaxy S to the Samsung Wave (formerly a BadaOS device). It is also being booted off of SD as apposed to OneNand. It uses a patched version of the SBL from the galaxy S but when Android is flashed to Nand it can boot fine (although problems are had initializing the Modem).
Click to expand...
Click to collapse
You need to compare logs from system booted from nand and from sd. Whatever errors are the same don't matter. Its the different ones that will tell you more.
But you're crashing right now because some line of code somewhere in your build is looking for a database and can't find it. If it doesn't do that when installed to nand, then your problem is that directories that the system creates to host configs and module parts aren't getting created at boot.
The modem issue, (if the error in logcat is the same whether the system booted or not, haven't seen both) looks to be a radio interface layer problem, your rild daemon isn't loading (check /system/bin/ for "rild") and make sure the line in init rc that starts it is correct.
spacemoose1 said:
some line of code somewhere in your build is looking for a database and can't find it.
Click to expand...
Click to collapse
It's a strange problem, as using the extracted system.img from the Android emulator as filesystem the above error disappears - with the same kernel/initramfs/init.rc (obviously other errors appear but the services seems to be stable).
I think we can forget the ril related errors now (I commented out the service in my build together with the DR daemon) as we have no modem driver yet ...
Warning/disclaimer: This thread is intended for those who already know how to compile a kernel and have a working knowledge of Linux and its derivatives. There shouldn't be a great deal of risk involved, but you are responsible for what happens if you decide to follow these instructions.
Polite request: Please don't post replies to this thread that aren't of a technical nature directly related to compiling, modifying, or testing the kernel.
Introduction:
It appears as if Lenovo have released a buildable and bootable kernel source. I've done some preliminary testing with it. However, it would be better if we could get lots of people building and running the kernel, so that we can spot any remaining problems. This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Kernel source:
Get it from the Github repository at: https://github.com/gmarkall/lenovo_a1_07_kernel
Toolchain:
The Makefile seems to suggest that Codesourcery 2010q1 has been used by Lenovo to compile the kernel. Get it from https://sourcery.mentor.com/sgpp/lite/arm/portal/release1293, and make sure that the arm-none-linux-gnueabi-* binaries are on your path.
Building the source:
You may wish to edit the Makefile around line 192 to set CROSS_COMPILE=arm-none-linux-gnueabi- instead of the hardcoded path that is the default.
Then, to build the kernel:
Code:
make distclean
make a1_07_defconfig
make uImage
Booting the kernel
Normally, Android devices have two boot images that consist of a kernel and a ramdisk. One boot image is for the recovery, and the other is for the Android system. This makes it safe to flash a new boot image containing an untested kernel for the Android system, since the recovery can always boot up using the other boot image. However, the A1, by some bad design decision, only has one kernel - the bootloader always loads the same kernel, and just loads a different ramdisk depending whether it is to boot into recovery or system. As a result, it is not safe to flash a kernel to your A1 unless it's already been tested, since a bad kernel will make it impossible to boot from the internal memory, and you'll need a bootable SD card.
The solution to this problem is to make a bootable SD card for loading the kernel and ramdisk from. A bootable SD card consists of two partitions:
* A small bootable VFAT partition, that holds the X-Loader (MLO), U-Boot (u-boot.bin) and the kernel (uImage).
* An ext2 partition that holds the root filesystem.
In order to create a bootable SD card, use the omap3-mkcard.sh script that is attached below. To invoke it for making /dev/mmcblk0 a bootable SD card:
Code:
sudo omap3-mkcard.sh /dev/mmcblk0
You may need to hack the script if your SD card device isn't a /dev/mmcblk* one, since the script searches for partitions denoted "p1" and "p2" - this may need changing to just "1" and "2" respectively (thanks Xbdesign and Brancaleone for this).
This will create the necessary partitions, set the bootable flag, and format them. You will then need to mount the first partition (e.g. /dev/mmcblk0p1), and copy MLO and u-boot.bin to it (also linked below). Then, copy the uImage that you built from your kernel tree, which will be located in /arch/arm/boot. You can now unmount this partition.
Next, mount the second partition (e.g. /dev/mmcblk0p2). This will need to contain the same set of files that the initial ramdisk contains. There are two different ramdisks that you might want to use - one is from the Cyanogenmod 7 build, and the other one is from the stock system. Download links for these are also below. To extract the ramdisk, copy it onto the SD card second partition, then run the following commands (assuming the ramdisk is called ramdisk.ub):
Code:
dd if=ramdisk.ub of=ramdisk.img.gz bs=64 skip=1 # Strip off the U-Boot header
gunzip ramdisk.img.gz # Unzip
sudo cpio -idmv < ramdisk.img # Extract the cpio archive
Then, unmount the second partition of the SD card.
You should now be able to remove the SD card and insert it into your A1. Power down the A1 and power up again, and it should hopefully boot from the SD card and load your kernel. If it's booted from the SD card and loaded your kernel, you should be able to see that it was compiled on your host by looking in Settings -> About Phone -> Kernel Version.
Troubleshooting:
This is not a comprehensive guide, just a few pointers to where a problem might be - please post replies to the thread to get troubleshooting suggestions.
System boots up, but is not running my kernel - it didn't boot from the SD card. If the A1 is plugged into the charger/USB, you sometimes need to reboot multiple times before it boots off the SD card (I think it doesn't always turn off fully when the charger is plugged in).
The static Lenovo logo flashes up over and over again - it's booted from the SD card, but didn't manage to load your kernel
The static Lenovo logo comes up and stays there/goes to a black screen - it's probably loaded your kernel and mounted the root file system, but failed to mount /system. Try running adb shell to see what happens. If you get something like
Code:
/system/bin/sh: no such file or directory
then your kernel is running but /system isn't mounted.
IRC Channel
Join #ideapad-a1 on irc.freenode.net to discuss the kernel and other A1 development-related topics!
Download Links:
MLO
u-boot.bin
omap3-mkcard.sh
Ramdisk for Cyanogenmod 7
Ramdisk for ROW 2643 stock release
I've added the two ramdisks that I suspect will be most common - if you need another ramdisk, you'll have to extract it from an OTA.
Also, I compiled a tun.ko - www.doc.ic.ac.uk/~grm08/ideapad/tun.ko
Here's a cifs.ko - http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
EDIT: AutobahnA1 and infraredevans have confirmed that tun.ko works on ROW_2643.
EDIT 2/3: Please test out cifs.ko! (It doesn't work - it needs slow-work.ko. Will get that done when I can. Thanks to Ilikecokethree on the Lenovo forums for pointing that one out).
你懂中文吗,大神!
我是中国人 关注你的帖子很久了,我不懂英文,用翻译软件看的大概,我们这里很多人支持你,都在用你的rom 很棒!比联想官方的好多了,谢谢!
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong? Thank you very much.
PS: I'm a chinese too, and my English is not good either
gmarkall said:
This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Click to expand...
Click to collapse
Please do not forget to try the WiFi-based geolocation, which is also missing!
I wish I had the knowledge to work on it myself but I am far from taking over such tasks...do not have the slightest idea about how these things work.
Good luck and please keep us informed!
geoponer said:
Please do not forget to try the WiFi-based geolocation, which is also missing!
Click to expand...
Click to collapse
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Also, it's working in CM7.
hohoxu_hao115 said:
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong?
Click to expand...
Click to collapse
Sounds like it's booting from eMMC instead.
Can you post the partition table of the SD card as listed by fdisk, and also a directory listing of each of the two partitions? I ask this to confirm what's happened - seems like you're the first person to follow these instructions, and it's quite possible I made a mistake somewhere.
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
@Graham: I plan to install the CM7 that you have been working on (with the feedback from other users - I keep an eye on that thread!) but since I use my A1 for professional purposes as well, I would like to make sure that everything is working fine before moving to CM7. Apologies for not being able to contribute to the beta testing of CM7 but I am really looking forward to seeing a version based on the source code provided by Lenovo, which I think will lead to a more stable version of your CM7. I cannot thank you enough for taking the time to work on this, really!
geoponer said:
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
Click to expand...
Click to collapse
I think that whether it works in CM7 or not, it almost certainly isn't a kernel issue. I'll test it by signing up for Foursquare and give it a try out on CM7 to see if it works later on. Will post my findings in the CM7 thread.
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
dusko_m said:
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
Click to expand...
Click to collapse
I do want to implement something that's pretty much as you describe. My biggest motivation is that it's currently not safe to flash a kernel since you can break both system and recovery that way in one go - I really want to make the boot process more robust.
gmarkall said:
Also, I compiled a tun.ko - tun.ko
I haven't tested it yet - is anyone able to try it please?
Click to expand...
Click to collapse
The module loaded without a problem on my 2643_ROW Kernel. Installed "Rooted AnyConnect" from the "Play Place". Now I can connect to my company VPN.
gmarkall: YOU ROCK! THANK YOU!!!
tun.ko
Graham
The tun.ko module works perfectly with openvpn on 2643_ROW.
I can now access my Amahi home server,awsome.
Thanks a lot you are doing a great job.
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Cheers
Infraredevans said:
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Click to expand...
Click to collapse
I'll give it a whirl... give me a few minutes.
gmarkall said:
I'll give it a whirl... give me a few minutes.
Click to expand...
Click to collapse
Here it is: http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
To compile it I had to copy md5.h from another kernel source to fs/cifs in the kernel tree. I also had to edit init/Kconfig so that CONFIG_SLOW_WORK defaulted to yes. I configured the module with the options:
Support Legacy LANMAN servers which use weaker security
CIFS Extended attributes
CIFS POSIX attributes
and without statistics, debugging, or experimental features. Let me know if this is a suitable config - I could always tweak it and build another one.
arm-2010q1-202-arm-none-linux-gnueabi.bin
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
xbdesign said:
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
Click to expand...
Click to collapse
I did - I didn't have any problems, but my random guess about how to solve it could be to install ia32-libs. If installing that doesn't solve it, can you post a bit more detail about the problem?
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
xbdesign said:
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
Click to expand...
Click to collapse
Do you need that to run the installer? I just downloaded the tar version instead and extracted it. I saw there was an installer as well, but I thought it would be more hassle than using the tarball so I just ignored it.
Hi guys .You all know me.
I have created this thread for the sole purpose educating every newbie and noob about ROM and it's components...
Here goes
Parts of a ROM
i. The kernel.
Android (like many other Smartphone operating systems) runs on the Linux kernel. The Linux kernel was created in the early 1990’s by a gentleman named Linus Torvalds in Helsinki, Finland. It’s incredibly stable, incredibly friendly, and incredibly difficult for the layman to understand and modify. Thankfully it’s also very popular so it has been ported on to a multitude of hardware, including our Android devices.
Think of the kernel as an interface layer between the hardware and software on your device. The kernel decides when things happen, such as the LED indicator gets lit or when the soft button's LED gets lit. An application sends a request to the operating system to blink the LED. The operating system then sends the request to the kernel, which makes the light flash for the amount of time requested by the OS.
What sounds like a round-about way to get things done is also what makes the system so scalable and robust. Application developers only have to code in a way the operating system understands and the kernel makes it work on the hardware. This also keeps the application running in it’s own user-space and separate from the kernel. That means when you run the latest uber-cool app that wasn’t designed for your particular OS version, or is still very beta and it crashes, the kernel gives you the option to Force Close the application and the kernel can run untouched.
In a standard Android ROM (we will leave developer images and the like for another discussion) the kernel is bundled along with a set of instructions that tell the device how to load the kernel and the OS during boot. This is the boot.img that you see inside a zipped ROM that your not able to easily open. The device knows to extract this image to internal memory (the ramdisk) and follow a series of scripts (init scripts) to load the kernel and then the other portions of the OS. That’s what’s happening while you’re watching the boot animation. Interestingly enough this is done the same way for a PC, your smartphone, an Android tablet, or even a smart Linux powered toaster. If you’re feeling exceptionally geeky, plug your Android phone into the USB port on your PC and let the PC boot from the USB device. No, it doesn’t actually load, but you can watch the animation while it tries to match up the hardware support with what’s inside your PC. As I said, Linux is amazingly scalable and as a result so is Android.
What is a kernel? If you spend any time reading Android forums, blogs, how-to posts or online discussion you'll soon hear people talking about the kernel. A kernel isn't something unique to Android -- iOS and MacOS have one, Windows has one, BlackBerry's QNX has one, in fact all high level operating systems have one. The one we're interested in is Linux, as it's the one Android uses. Let's try to break down what it is and what it does.
Android devices use the Linux kernel, but it's not the exact same kernel other Linux-based operating systems use. There's a lot of Android specific code built in, and Google's Android kernel maintainers have their work cut out for them. OEMs have to contribute as well, because they need to develop hardware drivers for the parts they're using for the kernel version they're using. This is why it takes a while for independent Android developers and hackers to port new versions to older devices and get everything working. Drivers written to work with the Gingerbread kernel on a phone won't necessarily work with the Ice Cream Sandwich kernel. And that's important, because one of the kernel's main functions is to control the hardware. It's a whole lot of source code, with more options while building it than you can imagine, but in the end it's just the intermediary between the hardware and the software.
When software needs the hardware to do anything, it sends a request to the kernel. And when we say anything, we mean anything. From the brightness of the screen, to the volume level, to initiating a call through the radio, even what's drawn on the display is ultimately controlled by the kernel. For example -- when you tap the search button on your phone, you tell the software to open the search application. What happens is that you touched a certain point on the digitizer, which tells the software that you've touched the screen at those coordinates. The software knows that when that particular spot is touched, the search dialog is supposed to open. The kernel is what tells the digitizer to look (or listen, events are "listened" for) for touches, helps figure out where you touched, and tells the system you touched it. In turn, when the system receives a touch event at a specific point from the kernel (through the driver) it knows what to draw on your screen. Both the hardware and the software communicate both ways with the kernel, and that's how your phone knows when to do something. Input from one side is sent as output to the other, whether it's you playing Angry Birds, or connecting to your car's Bluetooth.
It sounds complicated, and it is. But it's also pretty standard computer logic -- there's an action of some sort generated for every event. Without the kernel to accept and send information, developers would have to write code for every single event for every single piece of hardware in your device. With the kernel, all they have to do is communicate with it through the Android system API's, and hardware developers only have to make the device hardware communicate with the kernel. The good thing is that you don't need to know exactly how or why the kernel does what it does, just understanding that it's the go-between from software to hardware gives you a pretty good grasp of what's happening under the glass. Sort of gives a whole new outlook towards those fellows who stay up all night to work on kernels for your phone, doesn't it?
Click to expand...
Click to collapse
ii. The operating system.
Once the kernel is loaded, the init scripts tell the Operating System to load. Android is the user interface for a custom built Java virtual machine called Dalvik. Dalvik was written by Dan Bornstein, who named it after the fishing village of Dalvik in Iceland, where his family originated from. The debate of which Java VM is superior is best left for another discussion, so I’ll simply say that DalvikVM is a register-based machine versus true JavaVMs which are stack based.
The Dalvik machine creates executable files (.dex files) which can be interpreted by the OS and run by the end user. These .dex files are OS version dependant. That simply means that applications and core functions built to work with one version of Android may or may not work well with other versions. Google provides the tools through it’s Software Development Kit (SDK) for applications to communicate with the OS.
Click to expand...
Click to collapse
iii. Core functions.
No smartphone would be complete without a set of functions that allow the device to be used as intended. Things like the phone and dialer interface, the calendar, the messaging system are core functions of the Operating System. In Android, these are run on top of the kernel as separate applications. The merits (or lack of) of providing these needed functions as separate applications is once again best left for another discussion, but this is what allows developers like HTC or Motorola to replace the standard functions with alternatives that provide a different look and feel from stock. HTC’s onscreen keyboard or Motorola’s MotoBlur contact list are great examples of this. The “little guy” isn’t left out of the mix either. Handcent SMS or Chomp SMS can integrate into the OS very well, as most of us already know.
An additional set of Core Functions are provided by Google. Popularly called GoogleBits, things like Gmail, sync, Gtalk and the Android Market are applications written by Google that give an extra set of useful functions to the OS. You’ll find these on all smartphones, as well as many other Android devices.
Click to expand...
Click to collapse
iv. Optional applications.
These are applications provided by the manufacturer to give the device even more usability. Things like the Amazon MP3 store, PDF readers, Corporate Calendar etc. allow you to do even more with your device. Remember - Droid Does
Click to expand...
Click to collapse
B. How is a ROM packaged?
In most cases a ROM will come packaged in a .zip file. The recovery image’s kernel (yes, it has one too!) has the ability to unzip and copy the contents into the correct place. Inside this zip file is a folder (META-INF\com\google\android\) that contains a script prepared by the ROM “cooker” (another of those techie terms - it means the person(s) who developed the ROM) that tells the system what to format, what to copy and where, and any file operations that need to be done. Each device does things a bit differently, but this script is where it all gets done. More on this folder later.
You’ll also see a /system folder. This is the meat of the ROM. It has the necessary OS files, the Core functions, and any optional applications the cooker decided to include. The folder is structured the same way it is on your device - /system/app, /system/framework, etc. The whole tree is usually copied over and the existing /system folder is overwritten. The cooker uses the script to tell the kernel to erase the existing system folder, copy the new folder over, and set the file permissions.
Sometimes you will also see a data folder. This usually is space set up for optional applications, including optional system tools like busybox or SuperUser white list. These applications could be placed in the /system folder, but placing them in the data folder makes it easier for the end user (you and I) to remove or update them as needed.
You’ll also notice a META-INF folder. This contains the update script we talked about earlier, as well as secure keys that need to be provided so the device knows the update can be trusted. A special note needs made here. Trusted means that the update is trusted to be in the correct form to load the device. It in no way means the ROM is safe from malicious code. Anyone is able to use a set of test keys and create a ROM that will flash and run your device - even those people with bad intentions. Flashing and running a custom 3rd party ROM is putting faith in the cooker that he or she not only knows what they are doing, but are honest as well. Also, some Motorola custom ROMs will have a small update.zip stored inside this folder to be run on first boot of the device.
Finally we are left with the boot.img file. This is the kernel and ramdisk image we discussed earlier. Your phone copies this over to be decompressed and run when the device boots.
Click to expand...
Click to collapse
2. How do I install a ROM?
In this section we’re discussing how to install a custom 3rd party ROM. ROMs from the manufacturer usually have a utility that runs on your PC to flash and load the new image.
A. Got Root???
Yes ?:good:!!!
Custom ROM’s simply will not load on devices that aren’t rooted. In theory, it may be possible to sign a 3rd party ROM with the keys that the stock recovery image will flash, but for the most part you need to have flashed a custom recovery image before you can change your device’s ROM. Instructions and tutorials on how to root your device are all over the internet. Some are good, some are bad. The hacking forum is a great place to go and learn more about rooting and how to successfully get it done on your device.
Click to expand...
Click to collapse
B. Recovery
Most Android devices have had a custom recovery image written for them. This will overwrite the stock recovery image, allowing you to flash 3rd party ROMs as well as giving extra functionality. Help with finding and flashing the custom recovery image for your device can also be found in the hacking forum. The installation of a custom recovery image also allows for a very important function. Backup and restore.
Click to expand...
Click to collapse
.C. Nandroid
Nandroid is a set of bash scripts and code written by that copies the state of your system and stores it in a folder on your SD card. You can then use the restore function of Nandroid to restore to this point at any time. This is a priceless feature and reason enough to root your phone. It’s included by default in most custom recovery images, and the code is freely available to use if you’re inclined to write your own recovery image.
Click to expand...
Click to collapse
In most situations, using Nandroid to back everything up is easy:
1. Verify you have a memory card with enough free space (~300MB to backup, ~500MB to restore).
2. Reboot your device into recovery. It’s slightly different for each device, once again hacking forum FTW!
3. Navigate through the menu and select the Nandroid Backup function.
4. Apply your choice and wait for the device to tell you it’s finished.
It’s always good practice to copy the entire nandroid folder from your SD card to a safe place. You can then copy it back to the SD card if the card is ever damaged, lost or erased.
D. Copy and Flash
You’re rooted, have downloaded a custom ROM, have your system backed up and are now ready to flash your device. This is not nearly as scary as it sounds.
1. Mount your SD card to your PC, and copy the .zip file to the root folder of the card. Don’t unzip the file, and don’t look for a folder called root. The root folder in this case means the base folder, what you will see when you mount your card to a PC or the device.
2. Reboot your phone into recovery.
3. Navigate through the recovery menu and select the flash update option. Depending on your recovery image, the file may need to be named update.zip, or you may be able to select any zip file on your card as long as it’s the correct format. The cooker knows this as well and if the ROM needs to be named update.zip it will be.
4. Apply your choice and wait for your device to tell you it’s finished.
5. Reboot.
Click to expand...
Click to collapse
It’s worth noting that many times a new ROM will require that you wipe and factory reset your devices data. While inconvenient, it’s often necessary to get rid of the old data as it may be incompatible. As long as you’re using the cloud for calendar and contacts, they will be re- downloaded and stored back on your device automatically.
Credits
The internet
And other sites related to android development
And of course me
My Galaxy R forum friends !!
ERRORS encountered in CWM Recovery
.
What is CWM Recovery ?
ClockworkMod Recovery is a custom recovery for many Android devices. It is considered to be the most popular recovery for Android due to its easily-ported nature, and integration with ClockworkMod ROM Manager by Koush(Koushik Dutta). The easiest way to recognize it is by the printed name when it first starts, and the background logo of a gear and hat.
Click to expand...
Click to collapse
ERROR STATUS 6
This is usually caused by CR/LF EOL(Windows style End Of Line) in updater-script. Change it to LF EOL(Unix Style EOL) using Linux command: dos2unix updater-script, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
ERROR STATUS 7
This is usually caused by a corrupt download, or bad file signature. Re-downloading (or re-signing) the ZIP will usually fix this.
Click to expand...
Click to collapse
We have been consistently seen and heard people facing error “Status 7″ error while trying to flash or install
custom ROMs or firmware packages on their Android smart phones or tablets with ClockworkMod Recovery. Many
of the users are nowadays facing this problem with CWM Recovery while flashing .zip files of modded or custom
Ice Cream Sandwich (ICS) or Jelly Bean (JB) ROMs on their devices. So, you have also downloaded a custom ROM,
placed its .zip file in your phone’s or tablet’s SD card, booted into ClockworkMod Recovery, selected – “install zip
from sdcard” and then chosen the .zip file of the ROM to get it installed on your device. But instead of getting
flashed successfully, if you are facing the issue mentioned below, then just keep reading this article to find out
what’s wrong and fix up the problem :
Finding update package…
Opening update package…
Installing update…
Error in /sdcard/custom-jelly-bean-rom.zip (Status 7)
Installation aborted
Click to expand...
Click to collapse
or the following error right after CWM recovery shows –
Installing update…
assert failed: getprop(“ro.product.device”) == “I9103″ || getprop(“ro.build.product”) == “I9103″ || getprop
(“ro.product.board”) == “I9103″
Error in /sdcard/android-4-1-1-ics-rom-latest.zip (status 7)
Click to expand...
Click to collapse
So, if you are facing any of these errors while trying to install the desired custom ROM package on your Android
phone or tab, then you may try a various things or steps which may turn out to be the workaround of this
problem. Here are a few tips to get this “Status 7” error fixed in ClockworkMod Recovery and flash the ROM
successfully on your device :
(1) First of all, make sure your device’s bootloader is unlocked. If it is already unlocked but you are still
not able to flash the ROM, then just extract the .zip file of the ROM into a new folder, find the boot.img file from
that directory and flash it up on your phone or tablet via fastboot on your PC.
(2) Make sure that you are having the appropriate Radio or Baseband version installed on your device which is
supported by the custom ROM you are trying to flash. Most of the ROMs requires the latest version of Baseband, so
just update or upgrade your device to the latest Baseband version and then try to install the ROM once again.
(3) Update your device to the supported / latest build of official firmware before trying to install the ROM. You can
do it from – Settings > About Phone / Device > Software Update.
(4) Make sure you are having the supported or required kernel installed on your phone or tab. If it’s not, then flash
a new kernel right away and try to install your custom ROM once again.
(5) Is the ROM which you are trying to flash really works ? Find out whether it is working for other users or not.
Click to expand...
Click to collapse
NOW
ERROR STATUS 0
This is usually caused by an incompatible update-binary in edify ZIPs. Replacing it with a compatible one, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
Now it's time for the partitions :good:
Let’s start with a list of standard internal memory partitions on Android phones and tablets. These are:
/boot
/system
/recovery
/data
/cache
/misc
In addition, there are the SD card partitions.
/sdcard
/sd-ext
Note that only /sdcard is found in all Android devices and the rest are present only in select devices. Let’s now take a look at the purpose and contents of each of these partitions.
/boot
This is the partition that enables the phone to boot, as the name suggests. It includes the kernel and the ramdisk. Without this partition, the device will simply not be able to boot. Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.
/system
This partition basically contains the entire operating system, other than the kernel and the ramdisk. This includes the Android user interface as well as all the system applications that come pre-installed on the device. Wiping this partition will remove Android from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM.
/recovery
The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. To learn more about this partition and its contents, see the ‘About Android Recovery’ section of our guide to ClockworkMod recovery.
/data
Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.
/cache
This is the partition where Android stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.
/misc
This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.
/sdcard
This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.
On devices with both an internal and an external SD card – devices like the Samsung Galaxy S and several tablets – the /sdcard partition is always used to refer to the internal SD card. For the external SD card – if present – an alternative partition is used, which differs from device to device. In case of Samsung Galaxy S series devices, it is /sdcard/sd while in many other devices, it is /sdcard2. Unlike /sdcard, no system or app data whatsoever is stored automatically on this external SD card and everything present on it has been added there by the user. You can safely wipe it after backing up any data from it that you need to save.
/sd-ext
This is not a standard Android partition, but has become popular in the custom ROM scene. It is basically an additional partition on your SD card that acts as the /data partition when used with certain ROMs that have special features called APP2SD+ or data2ext enabled. It is especially useful on devices with little internal memory allotted to the /data partition. Thus, users who want to install more programs than the internal memory allows can make this partition and use it with a custom ROM that supports this feature, to get additional storage for installing their apps. Wiping this partition is essentially the same as wiping the /data partition – you lose your contacts, SMS, market apps and settings.
With this, we conclude our tour of Android partitions. Now whenever you install a ROM or mod that requires you to wipe certain partitions before the installation, you should be in a better position to know what you’re losing and what not and thus, you’ll know what to backup and what not.
Nice thread, maybe add error status 0 for CWM
Sent from my C6603 using xda app-developers app
krabappel2548 said:
Nice thread, maybe add error status 0 for CWM
Sent from my C6603 using xda app-developers app
Click to expand...
Click to collapse
Done !!!!
Great thread, You are seriously doing well.:good:
MY thanks just ended
will use the mob app to thank u bro !!
After all you inspired me for this thread not
Moved to android general as per OP request.
After many hours of trial and error, I now understand how to get RR and Lineage to boot with latest firmware updates. NO MORE BLINKING BLACK/GREY SCREEN!
Tested with Resurrection Remix 16.1 and Lineage 15.1 (Oreo)
Simply flash the boot and vendor images to their corresponding partitions using fastboot. Find the proper images from this Tmobile firmware,. https://androidfilehost.com/?fid=11410963190603878004 This method preserves IMEI and Baseband.
Nano/pico gapps work as well. HideProps magisk module can set your fingerprint to Moto E5 Play and get around that unregistered Google sh**. I edit /vendor/etc/fstab.qcom myself with vi and inside TWRP terminal shortly after flashing vendor partition. I do this because zips and other copies held me up. All I change is forceencrypt to encryptable in the data line of the fstab. Magisk 19.3 patches for verity. Another thing I do is move /vendor/lib/libeffects.so to /vendor/lib/soundfx/libeffects.so. Doing this will keep music/audio from studdering when screen is off. Last thing, TWRP 3.3.1 formats data as ext4 by default. We want to format with f2fs or you get corrupted data messages at boot. Happy flashing!
##
I find the earliest of these metro pcs firms have a working vendor image.
https://mirrors.lolinet.com/firmware/moto/james/official/Metropcs/
I got bluetooth working today, and lots of clues where I found the fix...
####Bluetooth
Now that I can set it up from a clean install, here's the basics for Bluetooth...
You'll need files from the stock system image. You can use a backup to get these or also use simg2img with dd and 7zip, I'll make a zip installer when I have more time.
1. Copy the following files, from stock image directory "/system/etc/" to the "/vendor/etc/" directory on device
mixer_paths* (14 files)
audio_* (5 files)
media_profiles* (3 files)
Edit the file /system/etc/ld.config.26.txt
add this text to the very end of line 61 :/system/${LIB}/vnd-sp/hw
You're done! If you did everything as described, and it doesn't work, check the permissions of the files you add to vendor partition with other xml files in same directory. I did mine on the device while running, it worked in place, without rebooting device. The GSI system is new to me, however the "Same Proccess HAL(hardware abstraction layer)" voodoo can likely be configured correctly to fix screen and port other GSIs' to our device.
Any chance of getting lamens terms step by step instructions on how to do this? That is the model I have and really liked those roms when I tried unsuccessfully to make them work last year.
edit: 9/21 6pm
I think it's because mine is TMO variant.
Mattswad said:
Any chance of getting lamens terms step by step instructions on how to do this? That is the model I have and really liked those roms when I tried unsuccessfully to make them work last year.
Click to expand...
Click to collapse
Trying based on this now. I'll update you.. been trying for TOO LONG lol it's almost the same time you posted 2 days ago!
---------- Post added at 04:12 AM ---------- Previous post was at 03:45 AM ----------
I've been up all night trying to get either one to work.. I think I came close but I am stuck at a looping blank screen.
If you could step through a bit more for us? I'd REALLY love to have lineageOS on it.
mrbox23 said:
After many hours of trial and error, I now understand how to get RR and Lineage to boot with latest firmware updates. NO MORE BLINKING BLACK/GREY SCREEN!
Tested with Resurrection Remix 16.1 and Lineage 15.1 (Oreo)
Simply flash the boot and vendor images to their corresponding partitions using fastboot. Find the proper images from this Tmobile firmware,.
Nano/pico gapps work as well. HideProps magisk module can set your fingerprint to Moto E5 Play and get around that unregistered Google sh**. I edit /vendor/etc/fstab.qcom myself with vi and inside TWRP terminal shortly after flashing vendor partition. I do this because zips and other copies held me up. All I change is forceencrypt to encryptable in the data line of the fstab. Magisk 19.3 patches for verity. Another thing I do is move /vendor/lib/libeffects.so to /vendor/lib/soundfx/libeffects.so. Doing this will keep music/audio from studdering when screen is off. Last thing, TWRP 3.3.1 formats data as ext4 by default. We want to format with f2fs or you get corrupted data messages at boot. Happy flashing!
Click to expand...
Click to collapse
I have the Metro PCS version
Moto e5 Play XT1921-3
Mattswad said:
I have the Metro PCS version
Moto e5 Play XT1921-3
Click to expand...
Click to collapse
Ahh That is excellent news. I am about to take a focus supplement, and dive into trying again I'll let you know. I found a few more of MrBox23's posts and I think I MAYBE onto something.... wish me loads of luck. If it works for me I THINK it should work for you, but you might need to start with a diff image than me, or use a different boot and vendor img than I will.. not sure if I can help you find those files or not..
I'll be back later to update what I find.
Sorry I haven't been on for awhile. I'll go ahead and post my working vendor and boot images. On Google drive for download. Doing this will trash your speaker if you play music very loud at all, expect that. I do not understand how to fix it. Other than that it's a daily driver. I have been asked about encryption this and that.. You have to modify fstab.qcom within vendor partition. Also the TWRP for this device will format your data partition as ext4 while the ramdisk and init stack are configured for f2fs(if you try and boot with ext4 data, you get corrupted/encrypted data message). You have to change data partition back to f2fs in TWRP every time you format that partition. Or you could modify the TWRP image like I did to fix it permanent.
Files will be uploaded soon, make sure you understand what's involved before getting into this. I'll answer questions best I can, but this is for those who are dediced and willing to get down on some bootloops to figure it out, especially if you're not used to this sort of thing. Some magisk modules will cause bootloops, do those one at a time and gapps separately. I seriously recommend taking apart the firmware from OP and focus on getting to the aosp boot animation, THEN take care of verity/root and fstab. You're formatting data partition anyway you might as well successfuly backport the graphics first.
Vendor image TWRP backup, put this on its own with boot image. I keep it as vendor_fixed for easy reference. The fstab is already patched if you use mine.
Boot image TWRP backup, it is patched with magisk (19.4 likely) install magisk on your own anyhow. KEEP YOUR ORIGINAL VENDOR/BOOT PARTITIONS! There's stuff in there that you might want later on. Like the /vendor/etc/wifi folder for example or the pieces from the original ramdisk.
Vendor and boot with md5 sums to verify integrity.
https://drive.google.com/folderview?id=1-2KO_iRFTjLv6pyx-7Qmhi8kWZBpVIWD
Wipe everything, including internal storage(after backing up a working system).
Format data partition back to f2fs in advanced wipe options.
Get LineageOS 15.1 beta or RR you can find these here on XDA.
Flash Lineage zip its the old style zip install that copies idividual files, not an image, the boot image it installs needs to be replaced per instructions that follow.
Or flash RR system image from official repository link is found here on XDA.
If you flash a system image with TWRP you'll need to reboot back into recovery right after and resize the system partition in advanced wipe options or your system partion will be incorrect size afterwards, if flashing system with fastboot(recommended) then skip the resize instruction.
After you have a system installed, restore the vendor and boot images from the link. A good approach would be to backup your existing boot/vendor as a pair, then replace originals with downloaded images.
The first time I got this to work, I used fastboot to flash partitions, like this.... I followed instructions within Metro PCS firmware(one of those xml files has the fastboot commands, including some oem options that specify a particular mode) Then i flashed ...RR system, followed by boot/vendor images from firmware referenced in OP. I finished that with fastboot -w option, that was when it worked for me. I dealt with the fstab and boot verity patching AFTER I first saw the default Android boot animation. Once you see that plain white "android" with the slow moving left to right animation, your in. From what I can tell our device needs the older kernel within the boot image and the libs/binaries from the vendor image to get the screen working correctly. Your trading your working speaker, for a working screen. I have attempted to find exactly what it is that's different between the two, but it's over my head. Overall it's relatively stable, go easy with magisk modules, some of them will cause kernel panic(bootloop) use a recovery based magisk tool to disable offending module if this happens. Sometimes the device will not boot normally, usually this means the cache was erased(its okay) for whatever reason and I wait it out, otherwise I restore the vendor_fixd backup I made. I have not had gone back to stock ROM, however I have had to flash the vendor partition to get it booting, usualy happens if i flash a module or when updates break substratum theme.
Good luck!
Oh email me for quick response, within reason.
mrbox24 at gmail
Bonus screenshot and the TWRP 3.1.1 I modified with correct data format. If you have an sdcard with second partition it will show up as "linux" named after the chroot partition from mine.
Screenshot shows LSM kernel found here, yes it works.
mrbox23 said:
The first time I got this to work, I used fastboot to flash partitions, like this.... I followed instructions within Metro PCS firmware(one of those xml files has the fastboot commands, including some oem options that specify a particular mode) Then i flashed ...RR system, followed by boot/vendor images from firmware referenced in OP. I finished that with fastboot -w option, that was when it worked for me.
.
Click to expand...
Click to collapse
thank you for this! (and the files)
questions...
1.) Your files in your zip extract as boot.emmc.win and vendor_image.emmc.win ...
Should we rename them to boot.img and vendor_image.img before flashing?
2.) Is your file TWRP-3.1.1_JAMES_T_f2fs-data.img already fixed to format data as f2fs?
3.) where is the option in Twrp to backup vendor and boot images?
I'm almost ready to dive in...
aka.bugle said:
thank you for this! (and the files)
questions...
1.) Your files in your zip extract as boot.emmc.win and vendor_image.emmc.win ...
Should we rename them to boot.img and vendor_image.img before flashing?
2.) Is your file TWRP-3.1.1_JAMES_T_f2fs-data.img already fixed to format data as f2fs?
3.) where is the option in Twrp to backup vendor and boot images?
I'm almost ready to dive in...
Click to expand...
Click to collapse
Yes TWRP is fixed for f2fs data, also the correct version is 3.3.1 latest for device.
Those files are ready to be RESTORED, not flashed in TWRP. You would replace files in an existing backup with those. I have a fresh backup made from from the earliest metro pcs firmware. I am about to upload. What device do you have?
mrbox23 said:
Yes TWRP is fixed for f2fs data, also the correct version is 3.3.1 latest for device.
Those files are ready to be RESTORED, not flashed in TWRP. You would replace files in an existing backup with those. I have a fresh backup made from from the earliest metro pcs firmware. I am about to upload. What device do you have?
Click to expand...
Click to collapse
Cool. thanks.. So far I have three, 1921-2 At&t (new, prepaid, bootloader unlockable so far, daily phone), an xt1921-5 unlocked bootloader, sim locked to sprint, so far been unable to get another rom to boot, and an xt1921-3 metropcs Gsm unlocked, boot loader unlocked, and now booted to lineage 15.1 thanks to you and phh. Wifi works, and gapps go seem to not crash, I did the register a non-stock rom hoop jump with google. Camera nothing but gray or crashes. Everytime it boots, clock time is wrong. haven't really tested much yet.
Really want to be able to get camera functioning, and test an At&t sim in it before switching it to my daily device. I read that the camera fix was committed to 15.1 but I'm lost as how to apply those patches even if I could find them.
aka.bugle said:
Cool. thanks.. So far I have three, 1921-2 At&t (new, prepaid, bootloader unlockable so far, daily phone), an xt1921-5 unlocked bootloader, sim locked to sprint, so far been unable to get another rom to boot, and an xt1921-3 metropcs Gsm unlocked, boot loader unlocked, and now booted to lineage 15.1 thanks to you and phh. Wifi works, and gapps go seem to not crash, I did the register a non-stock rom hoop jump with google. Camera nothing but gray or crashes. Everytime it boots, clock time is wrong. haven't really tested much yet.
Really want to be able to get camera functioning, and test an At&t sim in it before switching it to my daily device. I read that the camera fix was committed to 15.1 but I'm lost as how to apply those patches even if I could find them.
Click to expand...
Click to collapse
I think those patches are applied at source code level. meaning it would be in a future release. My camera works running Resurrection Remix, on xt-1921-3 try copying [email protected] from stock /system/lib/hw to /vendor/lib/hw, making sure to keep permissions same as others in vendor/lib. im willing to read logs, does your att run lineage? if so, does bluetooth work?
I make custom scripts and have a custom build.prop, for example this.....
resetprop 'media.camera.ts.monotonic' 0
resetprop 'persist.camera.HAL3.enabled' 1
resetprop 'audio.deep_buffer.media' true
Those three lines are saved to a file called mediafix.sh in /data/adb/service.d to be ran at boot. it helps with media and camera issues. As well as a one line file called led-chg.sh
echo battery-charging > /sys/class/leds/charging/trigger
Which turns on the light, otherwise never used, in front of phone when charging.
I think it's important to use a/the real fingerprint from an e5 device along with other properties. To get the best out of the hardware and least error messages during boot. I go through logcat/dmesg and attempt to fix what's broken, like the camera on lineage(works without trouble on rr remix btw). I used hidepropsconf module at first and a sprint fingerprint, but later began using the one found in info.txt of firmware zip.
ill post my work in progress build.prop(hosting it with new vendor and boot images on gdrive) which noticeably improves overall performance and lends to less log errors, or lags and crashes.
I find the vendor/boot firmware here(oldest 2018) https://mirrors.lolinet.com/firmware/moto/james/official/Metropcs/ to work best. Audio is completely a loss though. My speaker is blown now and no Bluetooth unless running stock, not even the headphone jack works. All sound comes from the one speaker, even with headphones plugged in I'm at a loss with that issue.
I also modify the boot image. turns out the 1921-3(possibly others?) uses the sdk26 8.0 android ld(library config) instead of the ld.config.27.txt that matches its sdk level. in fact if i try to force the 27 lib config, the gray/black screen comes back. it boots up, i know because my charger light comes on, but no screen. Anyhow i change the os level in boot config to 8.1.0, this gets me to where i am now with only bluetooth(mixerpath/lib issues i suspect) and a couple missing ui features due to what i imagine originate from missing whitelists in /system/etc/permissions xml files.
Another thing of note is how i spoof the mac adress for wifi, this(and other things) is done by modifying the kernel command line config in boot.img. my second e5 play xt-1921-3 has a broken screen, and serves exclusively as a wifi-repeater, captive-portal, and ssh server/tunnel. i spoof the busted screen wifi mac, with an old device mac address that is still registered on xfininity wifi network. it repeats that connection to my other devices. very efficiciently at that. with 3+MiB/s average. it took some hacking but after i found out the oem partition on this device can be formatted, and removed from the ramdisk/system all together, without consequence(not to lineage, bootleggers, or rr remix that is) and be re-purposed to whatever else. its roughly 700MB in size perfect for a debian chroot with my custom wifi repeater and misc servers. running in its own dedicated internal(FAST)partition. This device, and its kernel level mac spoofing with the now almost phased out WCNSS qualcom configurable wifi firmware, is incredible. the busted screen one has been on every day non stop functioning as a repeater, router with captive portal, and dhcp service, for almost two months. it automatically connects to wifi, kills the android zygote/system server, kills its backlight and starts up a hotspot and sshserver/captive portal, all without cell service, and without any interaction.
Anyway, new mpcs files up soon.....
mrbox23 said:
I think those patches are applied at source code level. meaning it would be in a future release. My camera works running Resurrection Remix, on xt-1921-3 try copying [email protected] from stock /system/lib/hw to /vendor/lib/hw, making sure to keep permissions same as others in vendor/lib. im willing to read logs, does your att run lineage? if so, does bluetooth work?
###bugle added### my Att is an xt1921-2, can't even unlock the bootloader... But 30 bucks isn't bad for a new screen and a new speaker. ###
Another thing of note is how i spoof the mac adress for wifi, this(and other things) .
Anyway, new mpcs files up soon.....
Click to expand...
Click to collapse
Years ago, I used to compile Gentoo to run on some archaic hp tablets... Now I just run Linux mint on somewhat newer hardware. This gave me a limited skillset to get an old Moto mb300 running with gingerbread and CyanogenMod. Everything worked, had them for over 4-5 years, just started really messing up over the summer. Miss the real keyboard.
Thanks so much for the tips and insights. It'll take some time to absorb everything in your post.
aka.bugle said:
Years ago, I used to compile Gentoo to run on some archaic hp tablets... Now I just run Linux mint on somewhat newer hardware. This gave me a limited skillset to get an old Moto mb300 running with gingerbread and CyanogenMod. Everything worked, had them for over 4-5 years, just started really messing up over the summer. Miss the real keyboard.
Thanks so much for the tips and insights. It'll take some time to absorb everything in your post.
Click to expand...
Click to collapse
My first "Android" phone was the HTC HD2 wich was actually a Windows phone that can boot linux from the sdcard. I came across it while learning how to get linux booting on laptops. I was fascinated with booting a mini linux on a portable device. I learned about Android and linux in that way, at the same time. Kernel, ramdisk, java machine, broadband cellular modem, and wifi radio in my pocket. I abandoned windows entirely, to this day lol
Right you are! @mrbox23 ... I've got camera on RRemix on the metro 1921-3!
I'm gonna put the lineage/no camera issue on the back burner for when I try to use your older boot/vendor img trick (boot Lineage 15.1) on the unlocked 1921-5.
(I only have a 1Mb/s dsl connection here, takes about 4-5 hours for a 1 gig file to dl)
So, for the Metro 1921-3, I can't find libeffects.so or even the soundfx folder to copy into. (studder fix)
Your script 2 files for media/camera and charge led, other than making them executable (0755? 0700?) will they be called (without any other mod) being in /data/adb/service.d ?
I think it's important to use a/the real fingerprint from an e5 device along with other properties. To get the best out of the hardware and least error messages during boot. I go through logcat/dmesg and attempt to fix what's broken, like the camera on lineage(works without trouble on rr remix btw). I used hidepropsconf module at first and a sprint fingerprint, but later began using the one found in info.txt of firmware zip.
Click to expand...
Click to collapse
I pulled one out of my Att phone that is a james xt1921-2 but has a locked bootloader, all stock ... I used #getprop ro.build.fingerprint.. not sure if i should use this, or wait to see your build.prop...
ill post my work in progress build.prop(hosting it with new vendor and boot images on gdrive) which noticeably improves overall performance and lends to less log errors, or lags and crashes.
Click to expand...
Click to collapse
All the best to you and yours in 2020. Meeeerrrry eXksMix, hic up'
Yes to service.d with those three. I ditched the camera ones though, footej or another camera is nice. Im close to figuring out what the vndk library thing.
hosting current prop setups, between resetprop in service.d and modifying build prop. other goodies too. I turned oem partition into swap space, and added permissions to priv-app xml's enabling more RR features, like hold back to kill app.
mrbox23 said:
Yes to service.d with those three. I ditched the camera ones though, footej or another camera is nice. Im close to figuring out what the vndk library thing.
hosting current prop setups, between resetprop in service.d and modifying build prop. other goodies too. I turned oem partition into swap space, and added permissions to priv-app xml's enabling more RR features, like hold back to kill app.
Click to expand...
Click to collapse
mediafix line 2... set or resetprop?
1 resetprop 'media.camera.ts.monotonic' 0
2 setprop 'persist.camera.HAL3.enabled' 1
what are these last lines in mediafix for?
16 resetprop net.dns1 1.1.1.1
17 resetprop net.dns2 1.0.0.1
and i'm guessing the deb.sh is for your wifi repeater? swap space in oem?
how is mpcs.prop called? where is its proper folder?
can you host a copy of libeffects.so ?
@mrbox23 Bluetooth working! check.
aka.bugle said:
@mrbox23 Bluetooth working! check.
Click to expand...
Click to collapse
something I just noticed here recently is that's all the audio output now. I can't test cellular calls, Hangouts only works when i restore that vendor path Back to where it was. My camera broke again to. I want to reach out to phh here or github.
Well that's a big bug, sorry. I've reverted the metro 1921-3 to stock for now, but on the positive side, I tried using your older boot/vendor imgs trick on the 1921-5 (Sprint)... and success! it boots Lineage 15.1 and bluetooth works, I haven't tried using the GSM Att Sim yet and still no camera, (I haven't tried your other camera recommendations yet.) One step closer for the 1921-5.
I have a 8T (KB2005), and I've been recently reading up on different mods and came across some posts from around 2014-2016-ish, like https://www.xda-developers.com/dual-boot-on-android-a-power-users-holy-grail/, which show that it was possible to install multiple firmwares and be able to choose which one to boot into similar to like on a PC (there was even a grub4android.)
But I can't seem to find any information about doing this with newer devices like the 8T. Does anyone know if it is possible? I already have my bootloader unocked, so I would assume that this and root would be required, but likely also the device needs to be able to use whatever mechanism that actually handles the actual multi-booting/choosing duties.
Thanks for any information.
blz8 said:
I have a 8T (KB2005), and I've been recently reading up on different mods and came across some posts from around 2014-2016-ish, like https://www.xda-developers.com/dual-boot-on-android-a-power-users-holy-grail/, which show that it was possible to install multiple firmwares and be able to choose which one to boot into similar to like on a PC (there was even a grub4android.)
But I can't seem to find any information about doing this with newer devices like the 8T. Does anyone know if it is possible? I already have my bootloader unocked, so I would assume that this and root would be required, but likely also the device needs to be able to use whatever mechanism that actually handles the actual multi-booting/choosing duties.
Thanks for any information.
Click to expand...
Click to collapse
The bits that really matter are:
The app/system data files (/data excluding /data/media)
The "system" partitions (system, system_ext, odm, product, vendor) - they live inside the super partition as logical (not physical) partitions
The "boot" partitions (boot, dtbo)
Whilst the firmware and "boot" partitions exist as A and B versions, there is only one version of the data and "system" partitions.
So you can't dual boot. However, you could backup the data and system parts and restore these for the appropriate slot.
But even here there are problems. The encryption keys used by different roms, and indeed different versions of OOS, mean that you can't decrypt the data on a slot that has different keys to the other slot.
Also, different roms store system settings in /data in different ways which is why you often have to do a factory reset when changing or upgrading roms.
The upshot of all of this is this: you can't meaningfully dual boot.
BillGoss said:
The bits that really matter are:
The app/system data files (/data excluding /data/media)
The "system" partitions (system, system_ext, odm, product, vendor) - they live inside the super partition as logical (not physical) partitions
The "boot" partitions (boot, dtbo)
Whilst the firmware and "boot" partitions exist as A and B versions, there is only one version of the data and "system" partitions.
So you can't dual boot. However, you could backup the data and system parts and restore these for the appropriate slot.
But even here there are problems. The encryption keys used by different roms, and indeed different versions of OOS, mean that you can't decrypt the data on a slot that has different keys to the other slot.
Also, different roms store system settings in /data in different ways which is why you often have to do a factory reset when changing or upgrading roms.
The upshot of all of this is this: you can't meaningfully dual boot.
Click to expand...
Click to collapse
Thank you for the reply, for the information. I didn't know that the data partition was shared like that, which would have been nifty if multiple times could see the same apps and files, but I can see how the encryption keys would be a big problem as you said.
Thanks again.
There was an interesting project posted over on the TWRP thread that may be of interest to you.
GitHub - rain2wood/DualNine: // Generic DualBoot solution for Dynamic Android phones //
// Generic DualBoot solution for Dynamic Android phones // - GitHub - rain2wood/DualNine: // Generic DualBoot solution for Dynamic Android phones //
github.com
But, personally, it seems a bit impractical and not very useful in terms of what it offers. Mainly due to the issues regarding decryption. Also, it would need a bit of testing as the 8T has virtual AB partitions.
blz8 said:
I have a 8T (KB2005), and I've been recently reading up on different mods and came across some posts from around 2014-2016-ish, like https://www.xda-developers.com/dual-boot-on-android-a-power-users-holy-grail/, which show that it was possible to install multiple firmwares and be able to choose which one to boot into similar to like on a PC (there was even a grub4android.)
But I can't seem to find any information about doing this with newer devices like the 8T. Does anyone know if it is possible? I already have my bootloader unocked, so I would assume that this and root would be required, but likely also the device needs to be able to use whatever mechanism that actually handles the actual multi-booting/choosing duties.
Thanks for any information.
Click to expand...
Click to collapse
I have Paralloid running on my Nord N10. As soon as my 8t gets here from amazon tomorrow....Also DSU loader is a dual boot method as well.