Lineage OS 19 ROM stuck on booting - General Questions and Answers

I just made a LOS19 ROM. It cant seem to boot past a service. The error message is
```
[1:init]init: Control message: Could not find 'aidl/android.system.keystore2.IKeystoreService/default' for ctl.interface_start from pid: 400 (/system/bin/servicemanager)
```
I originally thought it was because I didn't do a data wipe, then I did rm -r /data/.* and rebooted I still get the boot freeze. Any Idea on what could be causing the service failure?
It is happening because I rebuilt the vendor image using proprietary blobs + vndk in system. If I don't build the vendor image selinux complains proprety context in system dosnt match property sha2 in vendor
Here is my last_kmsg log.

bretjoseph said:
I just made a LOS19 ROM. It cant seem to boot past a service. The error message is
```
[1:init]init: Control message: Could not find 'aidl/android.system.keystore2.IKeystoreService/default' for ctl.interface_start from pid: 400 (/system/bin/servicemanager)
```
I originally thought it was because I didn't do a data wipe, then I did rm -r /data/.* and rebooted I still get the boot freeze. Any Idea on what could be causing the service failure?
It is happening because I rebuilt the vendor image using proprietary blobs + vndk in system. If I don't build the vendor image selinux complains proprety context in system dosnt match property sha2 in vendor
Here is my last_kmsg log.
Click to expand...
Click to collapse
I could be wrong, but...
This part of your error tells you that the boot sequence can not find the file it is naming in the error and its location.
[1:init]init: Control message: Could not find 'aidl/android.system.keystore2.IKeystoreService/default'
This part of your error tells you which service failed to start:
ctl.interface_start from pid: 400
This part of your error tells you the location of the service that failed to start due to the missing or corrupted file.
(/system/bin/servicemanager)
This file is either missing or is incorrectly configured for the boot sequence to read/load in order to start the stated service.
You will have to either compile the ROM again from source, making sure that this file is included in the compiling process or compile this file from your device's sources or pull this file from existing ROMs or firmware for your device then place the file in the location that your error indicates:
'aidl/android.system.keystore2.IKeystoreService/default'

where do I find aidl files located? are they in some system/etc XML file?

bretjoseph said:
where do I find aidl files located? are they in some system/etc XML file?
Click to expand...
Click to collapse
It looks to be part of the source code and must be manually included in the build process.
Android Interface Definition Language (AIDL) | Android Developers
developer.android.com
AIDL for HALs | Android Open Source Project
source.android.com
Keymaster.cpp - platform/system/vold - Git at Google

From what I read I need to have a file in the following path
Code:
system/hardware/interfaces/keystore2/aidl/android/system/keystore2/IKeystoreService.aidl
and possibly
Write an AIDL HAL server​Put this in VINTF manifest,​
Code:
<hal format="aidl">
<name>android.system.keystore2</name>
<version>1</version>
<fqname>IKeystoreService/default</fqname>
</hal>
Put this in the compatibility matrix,​
Code:
<hal format="aidl" optional="true">
<name>android.system.keystore2</name>
<version>1</version>
<interface>
<name>IKeystoreService</name>
<instance>default</instance>
</interface>
</hal>

Yep that solved the issue

bretjoseph said:
Yep that solved the issue
Click to expand...
Click to collapse
Good, then, on to the next issue in your build, if any.

Hi, I'm trying to port lineageos to Samung Tab S7 and I had issue of
Code:
init: Control message: Could not find 'aidl/android.system.keystore2.IKeystoreService/default' for ctl.interface_start from pid: 580 (/system/bin/servicemanager)
as you did. I tried to add
Code:
<hal format="aidl">
<name>android.system.keystore2</name>
<version>1</version>
<fqname>IKeystoreService/default</fqname>
</hal>
to manifest.xml and add
Code:
<hal format="aidl" optional="true">
<name>android.system.keystore2</name>
<version>1</version>
<interface>
<name>IKeystoreService</name>
<instance>default</instance>
</interface>
</hal>
to device_framework_matrix.xml but still failed to work. May I know where exactly you put those contents to and any other actions you did you bypass this issue? Thanks

Related

[Tutorial] How To Logcat

Here's how to use logcat:
There are two main ways to do a logcat, within android, and through adb.
Logcat within android can be done one of two ways, through a Logcat app:
Here are two good examples are either: aLogcat or Catlog
I prefer catlog, because in my opinion it has a little bit nicer UI. Both of these programs can dump their logs to a txt file, which is very useful for debugging. Or, you can do it in terminal emulator (same rules as running through adb(see below))
From Moscow Desire:
Moscow Desire said:
Just a little more info when doing logcat.
Remember, Logcat will run till you end the session. And it won't always create the file till you do so. It's possible you may not see the logfile for a minute or so.
Edit: For phones/tablets with internal storage & external sd:
(note that the location naming convention may be different depending on device)
Open your terminal app;
Type: logcat > /sdcard/logcat.txt (this should create it in internal memory on the tablet)
To send to ext sd card: logcat > /mnt/external_sd/logcat.txt
I use a tablet for example Phones may have a different naming convention.
MD
Click to expand...
Click to collapse
On the other hand, using adb to run logcat, in my opinion is much more useful, because you can start using it when android boots (i.e. once the boot animation appears.)
The code for logcat to output to a file is
Code:
adb logcat > name of problem.txt
you can also do
Code:
adb logcat -f name of problem.txt
how I prefer to do it is this way:
Code:
adb logcat -v long > name of problem.txt
with the -v flag & the long argument, it changes output to long style, which means every line of logcat will be on its own line (makes it a little neater, imo)
Note: When outputting to a file, you will see a newline, but nothing printed, this is normal. To stop logcat from writting to a file, you need to press ctrl+c.
Here's where using logcat (via adb makes life really easy)
Lets say you find a problem you're having after looking at a logcat.
For example:
When I was trying to use a different ramdisk, wifi wouldn't work so I got a logcat that's almost 1300 lines long (a lot of stuff happens in the background)
So if you are searching for an error in the logcat file (it's always e/ for error, f/ for fatal. Those are the two main things that will break a system.)
Code:
D/dalvikvm( 871): GC_CONCURRENT freed 472K, 6% free 10224K/10823K, paused 1ms+6ms
V/AmazonAppstore.DiskInspectorServiceImpl( 871): Available blocks: 21981, Block size: 4096, Free: 90034176, Threshold: 5242880, withinThreshold? true
D/AmazonAppstore.UpdateService( 871): Received action: null from intent: Intent { cmp=com.amazon.venezia/com.amazon.mas.client.framework.UpdateService }
W/AmazonAppstore.UpdateService( 871): Confused about why I'm running with this intent action: null from intent: Intent { cmp=com.amazon.venezia/com.amazon.mas.client.framework.UpdateService }
D/dalvikvm( 890): GC_CONCURRENT freed 175K, 4% free 9375K/9671K, paused 2ms+3ms
V/AmazonAppstore.ReferenceCounter( 871): Reference (MASLoggerDB) count has gone to 0. Closing referenced object.
E/WifiStateMachine( 203): Failed to reload STA firmware java.lang.IllegalStateException: Error communicating to native daemon
V/AmazonAppstore.UpdateService( 871): runUpdateCommand doInBackground started.
V/AmazonAppstore.UpdateService( 871): Running UpdateCommand: digitalLocker
V/AmazonAppstore.UpdateCommand( 871): Not updating key: digitalLocker from: 1334228488057
V/AmazonAppstore.UpdateService( 871): Finished UpdateCommand: digitalLocker
V/AmazonAppstore.UpdateService( 871): Running UpdateCommand: serviceConfig
V/AmazonAppstore.MASLoggerDB( 871): performLogMetric: Metric logged: ResponseTimeMetric [fullName=com.amazon.venezia.VeneziaApplication_onCreate, build=release-2.3, date=Wed Apr 11 13:10:55 CDT 2012, count=1, value=1601.0]
V/AmazonAppstore.MASLoggerDB( 871): onBackgroundTaskSucceeded: Metric logged: ResponseTimeMetric [fullName=com.amazon.venezia.VeneziaApplication_onCreate, build=release-2.3, date=Wed Apr 11 13:10:55 CDT 2012, count=1, value=1601.0]
W/CommandListener( 118): Failed to retrieve HW addr for eth0 (No such device)
D/CommandListener( 118): Setting iface cfg
D/NetworkManagementService( 203): rsp
D/NetworkManagementService( 203): flags
E/WifiStateMachine( 203): Unable to change interface settings: java.lang.IllegalStateException: Unable to communicate with native daemon to interface setcfg - com.android.server.NativeDaemonConnectorException: Cmd {interface setcfg eth0 0.0.0.0 0 [down]} failed with code 400 : {Failed to set address (No such device)}
W/PackageParser( 203): Unknown element under : supports-screen at /mnt/asec/com.android.aldiko-1/pkg.apk Binary XML file line #16
D/wpa_supplicant( 930): wpa_supplicant v0.8.x
D/wpa_supplicant( 930): random: Trying to read entropy from /dev/random
D/wpa_supplicant( 930): Initializing interface 'eth0' conf '/data/misc/wifi/wpa_supplicant.conf' driver 'wext' ctrl_interface 'N/A' bridge 'N/A'
D/wpa_supplicant( 930): Configuration file '/data/misc/wifi/wpa_supplicant.conf' -> '/data/misc/wifi/wpa_supplicant.conf'
D/wpa_supplicant( 930): Reading configuration file '/data/misc/wifi/wpa_supplicant.conf'
D/wpa_supplicant( 930): ctrl_interface='eth0'
D/wpa_supplicant( 930): update_config=1
D/wpa_supplicant( 930): Line: 4 - start of a new network block
D/wpa_supplicant( 930): key_mgmt: 0x4
(mind you, that's 29 lines out of 1300ish, just for example)
I then could do the following with logcat:
Code:
adb logcat WifiStateMachine:E *:S -v long > name of problem.txt
and this will only print out any errors associated with WifiStateMachine, and anything which is fatal, which makes it about a million times easier to figure out what's going on!
In WifiStateMachine:E, the :E = to look for Errors, the full list of options is as follows:
V — Verbose (lowest priority)
D — Debug
I — Info (default priority)
W — Warning
E — Error
F — Fatal
S — Silent (highest priority, on which nothing is ever printed)
You can replace the :E with any other letter from above to get more info.
In order to filter out anything other than what you are looking for (in this case, WifiStateMachine) you must put a *:S after your last command (i.e. WifiStateMachine:E ThemeChoose:V ... ... AndroidRuntime:E *:S)
Sources: http://developer.android.com/tools/help/logcat.html
http://developer.android.com/tools/help/adb.html
Update for windows users:
Thank go to FuzzyMeep Two, Here's what he's posted for windows
FuzzyMeep Two said:
I have made a tool to simplify this for people. I will send you the .bat version, to see the validity of the file, and post the .exe for everyone else.
http://logcat-tool.googlecode.com/files/logcatHELPER.exe
I made this in about a half hour, so if you fnd any issues let me know. I believe i worked out all functionality issues, and do plan on expanding functionality in the future.
Click to expand...
Click to collapse
(If you used his tool, here's his post, thank him for his work!)
Very nicely done, now i have something i can refer people to
Perfect tutorial. Well done. ... I'll translate your tutorial into my language to share it other people.
pRo_lama said:
Perfect tutorial. Well done. ... I'll translate your tutorial into my language to share it other people.
Click to expand...
Click to collapse
Thank you! And thanks for taking your time to translate it!
If you need me to clarify anything shoot me a PM, and I'll help! (Same goes for anybody else interested in porting to their language)
Pax
Very nice, but I do have a question (and I started programming for Android recently): What do you do when the system reboots while debugging (in my case musb_hdrc.ko)? I tried catlog, but the logs are empty... Is there another way to do that?
Thank you in advance
Krain said:
Very nice, but I do have a question (and I started programming for Android recently): What do you do when the system reboots while debugging (in my case musb_hdrc.ko)? I tried catlog, but the logs are empty... Is there another way to do that?
Thank you in advance
Click to expand...
Click to collapse
Use adb instead of an in-android method to capture the logs, you can start when the boot animation starts (note: Not when the kernel splash screen appears) and when it reboots, it'll automatically end. (i.e. run the following in command prompt:
Code:
adb logcat *:E > oh_nos_it_crashed.txt
)
If you're not getting to the boot animation (keeps cycling on the Kernel splash screen) then you have kernel issues, and you need a kernel that has integrated last_kmsg (a whole different ball of wax that I'm still learning about) to figure out what's going on. (kmesg's are direct kernel output)
Maybe if someone like AdamOutler (or any other Dev who has a much better handle on them than myself) were to explain them, it'd help
Pax
Hey man regarding your guide .
I was testing a built of cm9 from my htc one v and it wasnt booting so the dev told me to do a logcat for it .
Just wondering what the process and commands would be?
Thanks.
Just a little more info when doing logcat.
Remember, Logcat will run till you end the session. And it won't always create the file till you do so. It's possible you may not see the logfile for a minute or so.
But what if you can't connect ADB to your device? You can do this
(note that the location naming convention may be different depending on device)
Open your terminal app;
Type: logcat > /sdcard/logcat.txt (this should create it in internal memory on the tablet)
To send to ext sd card: logcat > /mnt/external_sd/logcat.txt
I use a tablet for example Phones may have a different naming convention.
Nice definition of the display terminology
MD
tranceph0rmer said:
Hey man regarding your guide .
I was testing a built of cm9 from my htc one v and it wasnt booting so the dev told me to do a logcat for it .
Just wondering what the process and commands would be?
Thanks.
Click to expand...
Click to collapse
What you'll wanna do is run the following,
Code:
adb logcat *:E > crash.txt
And look at the output file specifically for lines that say 0x0deadbaad (if you see that, that means there's a problem with the Java libraries it references above it) otherwise look for other F/ lines, that'll point you in the right direction.
If you're having issues where and is not accessible for to buy having USB debugging turned off because of doing a /data wipe (factory data reset) first install a similar Rom (in your case, a prior, stable CM9, boot into it, turn on usb debugging, reboot into recovery & only write /cache & dalvik cache before installing the offending Rom & getting your logcat (sorry if I rambled, just got done working a double )
Pax
Sent from my R800x using Tapatalk 2
Moscow Desire said:
Just a little more info when doing logcat.
Remember, Logcat will run till you end the session. And it won't always create the file till you do so. It's possible you may not see the logfile for a minute or so.
But what if you can't connect ADB to your device? You can do this
(note that the location naming convention may be different depending on device)
Open your terminal app;
Type: logcat > /sdcard/logcat.txt (this should create it in internal memory on the tablet)
To send to ext sd card: logcat > /mnt/external_sd/logcat.txt
I use a tablet for example Phones may have a different naming convention.
Nice definition of the display terminology
MD
Click to expand...
Click to collapse
Thanks, MD!
The problem is when you can't access terminal (bootloops, fc'ing like it's going out of style, etc.) that adb is really useful. Sometimes to trick the system into working, you can (esp with AOSP based roms) install a same version of android (I.e. 4.0.4) & not wipe /data (after turning on usb debugging) & still have an access (I learned this after spending about 2-3 months crack flashing my own builds & getting tired of titanium restoring all my apps)
Pax
Sent from my R800x using Tapatalk 2
Great guide, thanks! Found it through the portal. I just added to my sig so maybe it will help stop some of those questions.
paxChristos said:
What you'll wanna do is run the following,
Code:
adb logcat *:E > crash.txt
And look at the output file specifically for lines that say 0x0deadbaad (if you see that, that means there's a problem with the Java libraries it references above it) otherwise look for other F/ lines, that'll point you in the right direction.
If you're having issues where and is not accessible for to buy having USB debugging turned off because of doing a /data wipe (factory data reset) first install a similar Rom (in your case, a prior, stable CM9, boot into it, turn on usb debugging, reboot into recovery & only write /cache & dalvik cache before installing the offending Rom & getting your logcat (sorry if I rambled, just got done working a double )
Pax
Sent from my R800x using Tapatalk 2
Click to expand...
Click to collapse
Thanks for the info.
Will do that the next time i get stuck at the boot animation
can anyone tell me how to clear / reset logcat?
Thanks in advance
riteshbendre said:
can anyone tell me how to clear / reset logcat?
Thanks in advance
Click to expand...
Click to collapse
Why would you want to do that?
To my knowledge, the only way logcat is reset is if you reboot your phone.
That's why filtering your results is very helpful, because no matter how long it's been running, you can get the info that you want without extraneous information
Pax
Thanks for the clarifications
Man thank you so much for the awesome guide!
Now I can actually filter out my logcat results instead of searching through the entire log.
Sent using Tapatalk
Helpful Tool
paxChristos said:
Here's how to use logcat.....
Click to expand...
Click to collapse
I have made a tool to simplify this for people. I will send you the .bat version, to see the validity of the file, and post the .exe for everyone else.
FIXED HUGE ISSUE CAUSING EMPTY FILES
DOWNLOAD
PM or post here if you run into any issues. They WILL be addressed.
I have made a tool to simplify Logcat creation for people. The creation of this tool was inspired, and guided, by the thread started HERE by paxChristos.
UPDATE 4.1
Corrected an issue causing empty files.
apparently, if the process id contained a space ( 1234) the file would parse correctly, but if the numbers came up to the parenthesis (12345) it would output an empty file named ACTIVITY(12345) with no extension.
This was a huge issue, and i apologize for not seeing it sooner. It has been corrected, and the logcat tool works better than ever. I just ran through a 20,000 line logcat without any empty files appearing.
a couple more things to help with stability.
Underscores (_) will be replaced by dashes (-)
Brackets ([]) and arrows (<>) will be replaced with paranthesis(())
-------------------------------------------------------------------------------------------------------------
HUGE UPDATE
Added the ability to "SUPER PARSE" Files, which separates files into folders by log level and creates a TXT file for each activity
Super parse DOES NOT Work with LONG format Logs.
SUPER PARSE is in its infancy I do expect errors, please let me know if you run into anything.
OLD STUFF
EDIT V3.6 DONE
Added ability to filter logcats by activity name. (logcat -s "FILTER")
Fixed Log Level Setting
EDIT V3.5 DONE
NOW PROPERLY PARSES "LONG" FORMAT LOGCATS.
Thank you to Senior Member jes0411 for pointing out the issues that lead me to create V3.4 and 3.5. If any of you have an issue please let me know. It could be hours before i get to it or weeks, but i will get to fixing it.
EDIT V3.4 DONE
Changed the way the date variable was handled to hopefully fix issues experienced by users of non-English versions of windows.
EDIT V3.3 DONE
EDIT V 3.2 Finished
Google code won't allow any new uploads, so i uploaded the new update to XDA in a ZIP file.
Fixed ADB Location settings, some users were having trouble if they input the ADB folder with any quotation marks in the path name, it will now automatically remove quotation marks to ensure correct syntax.
Fixed issue with ADB Location setting not exiting to previous menu.
Fixed issue with Log Level setting not exiting to previous menu.
Capitalized some stuff
Added a feature that will automatically create the selected folder if no output folder exists and the user attempts to run a log.
Added a check when selecting an output folder that will ask if you want the folder created if it does not exist
EDIT V3.1 DONE
FIXED OPTIONS 7 & 8, URLS WERE MISSING A "?"
CHANGELOG EDITS
SAVES AND PARSES FILES IN TO DIFFERENT OUPUT FILES BASED ON LOG LEVEL (E , I , D , W , ETC)
LOGCAT TOOL v1.1 by FuzzyMeep TWO
I made this in about a half hour, so if you fnd any issues let me know. I believe i worked out all functionality issues, and do plan on expanding functionality in the future.
reposted HERE
Edit: source here.
Batch Source
EDIT: UPDATED TO V1.1
added the framework to add filtering to your logcat, it is in the exe, but not utilized yet (still bugy). i have also worked out a few minor bugs in this release.
Very nice tut. Will try
thanks a ton for the in depth guide. I was always fairly confused on how to approach this, so now I'll have something to refer to in order to help all of the awesome devs here.
mcmb03 said:
thanks a ton for the in depth guide. I was always fairly confused on how to approach this, so now I'll have something to refer to in order to help all of the awesome devs here.
Click to expand...
Click to collapse
+1

[Q] Running logcat from init.rc

Hello
I'm adding my proprietary applications in to CyanogenMod image (building from source).
After using generated image I'm getting 'System UI' has crashed. I'm unable to connect via adb as the error occurs at the very beginning of android runtime. I can see that my application has turned on, but I can't gather any logs.
To enable logs i'm trying the following method:
Appending init.rc in Android root with:
Code:
service logcat /system/bin/logcat -v long -f /mnt/sdcard/logcat.log
oneshot
This solution doesn't generate any logs. The logcat.log file doesn't exist.
I need the output to be stored either on internal or external sdcard. Could someone point me where I'm making a mistake ?

My experience to port CWM Recovery to my coolpad 5310

It took me about one week to port cwm recovery to coolpad 5310, which build on msm8610 according to the default.prop.
I'd like to share my experience and code here if anybody need it.
First, I began with this guide:
http://xda-university.com/as-a-developer/porting-clockworkmod-recovery-to-a-new-device
It's very clear, but with a error. I should type
Code:
lunch cm_<device name>-eng
instead of
Code:
lunch full_<device name>-eng
. I guess that the information needed being updated.
It was definitely worth notice that I pull the cm-10.2 instead of cm-11 for my phone coming with Android 4.3.1. I think with same version the CWM recovery may be easier to port.
Then I flashed the img file to my device with fastboot. But when I reboot device into recovery, the phone did it but reboot again to android. It's tough because I have no idea how to debug.
Luckily, when I try
Code:
fastboot boot <recovery img>
by accident, I find following information:
Code:
FAILED (remote: dtb not found)
After a google, I find mkbootimg_tools and repack the recovery I compiled with the img.dt from stock recovery. The kernel and adbd boot!
But there was nothing on my screen. I found the recovery program exited with segmentation fault. So I explore the /tmp/recovery.log and compare it with log file from stock recovery. I found following info in my recovery.log:
Code:
ERROR: failed to mmap framebuffer
and there was no framebuffer info in my recovery.log.
After reading code, adding debug info in code and googling information about msm8610, I almost got the reason. Qualcomm do something strange and we could no operate /dev/graphics/fb0 directly. I have no idea how to resolve it.
Then I find this discussion, and cover it. The problem is so alike, but I cannot still resolve my problem until I found there is no file named graphics_overly.c in my code tree. Finally, I found it in code tree of cm-11.0, then I checkout to cm-11.0 and built it. The recovery program run well.
There is two thing worth noticing. Firstly, I'm sure the only variable taking effect is TARGET_USES_QCOM_BSP := true after reading the code. Then, adding --dt dt.img to BOARD_MKBOOTIMG_ARGS could avoid repack the recovery.img any more.
The final problem is that my /sdcard is symlinked to /sdcard so I could not mount sdcard on it. I have fix the bug and now I'm trying to post the patch to upstream(Cyanogenmod): http://review.cyanogenmod.org/#/c/80390/
There is some files:
The project on my github.
The recovery.img, it's fast in China, but maybe slow in other countries, so I also upload it as an attachment.

Question Bootloader Unlocked Warning

Has anybody figured out how to get rid of the Bootloader Unlocked warning when booting this phone? It certainly slows down the booting process.
I haven't figured it out yet. To be honest I've been trying to figure out what apps are safe to uninstall and a custom ROM or how to update to Android 12. But I'll definitely let you know if I figure a way out.
dfreedom834 said:
I haven't figured it out yet. To be honest I've been trying to figure out what apps are safe to uninstall and a custom ROM or how to update to Android 12. But I'll definitely let you know if I figure a way out.
Click to expand...
Click to collapse
I have been trying to build TWRP for this device. I am very close, but the mkbootimg command script is issuing a bad argument and I have been unable to trace it down so far.
Code:
[100% 4/4] Target boot image: /mnt/audio/android/twrp/out/target/product/minsk/boot.img
FAILED: /android/twrp/out/target/product/minsk/boot.img
/bin/bash -c "(/android/twrp/out/host/linux-x86/bin/mkbootimg --kernel /mnt/audio/android/twrp/out/target/product/minsk/kernel --ramdisk /android/twrp/out/target/product/minsk/ramdisk.img --base 0x00000000 --pagesize 4096 --cmdline \"console=ttyMSM0,115200n8 androidboot.hardware
=qcom androidboot.console=ttyMSM0 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 servic
e_locator.enable=1 swiotlb=1 androidboot.usbcontroller=a600000.dwc3 earlycon=msm_geni_serial,0x880000 loop.max_part=7 printk.devkmsg=on androidboot.ha
b.csv=10 androidboot.hab.product=minsk androidboot.hab.cid=50 firmware_class.path=/vendor/firmware_mnt/image buildvariant=user buildvariant=eng\" --os
_version 16.1.0 --os_patch_level 2099-12-31 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --dtb device/motorola/minsk/prebuilt/dtb.img --header
_version 2 --output /mnt/audio/android/twrp/out/target/product/minsk/boot.img ) && (true )"
mkbootimg: error: unrecognized arguments: --dtb device/motorola/minsk/prebuilt/dtb.img
ninja: build stopped: subcommand failed.
15:01:24 ninja failed with: exit status 1
So the --dtb should be --recovery_dtbo I believe. Not sure where this command is being generated in order to fix it.
I was running into problems like that I factor rest it and turned it off. Where did you compile the boot.img from? And ya it would work better if it was trying to go to the right path. I had to find a boot.img from one of the over seas ones I kept getting it were it would root but the screen did respond.
lexridge said:
So the --dtb should be --recovery_dtbo I believe. Not sure where this command is being generated in order to fix it.
Click to expand...
Click to collapse
I could be wrong but the recovery I'm using (orange fox) does use a kernel_dtb. So it seems your recovery image kernel doesn't have the right path to the dtb binary it needs. Try searching the build directory for any _dtb/.dtb and rename accordingly. I'd you need to alter the dtb from a related SoC there are tools for unpacking and modifying those.
The recovery and boot ones would be similar I imagine since those files are a map of the device's hardware.
dfreedom834 said:
I was running into problems like that I factor rest it and turned it off. Where did you compile the boot.img from? And ya it would work better if it was trying to go to the right path. I had to find a boot.img from one of the over seas ones I kept getting it were it would root but the screen did respond.
Click to expand...
Click to collapse
I took the boot.img from the full device A11 factory image.
MINSK_RETUS_11_RPCS31.Q2-109-16-2_subsidy-DEFAULT_regulatory-DEFAULT_CFC.xml.zip
I used the same one to create my magisk boot.img as well. I used dumpyara to build the device tree using the above file for my source which seemed to work properly. No errors in other words.
elrod16 said:
I could be wrong but the recovery I'm using (orange fox) does use a kernel_dtb. So it seems your recovery image kernel doesn't have the right path to the dtb binary it needs. Try searching the build directory for any _dtb/.dtb and rename accordingly. I'd you need to alter the dtb from a related SoC there are tools for unpacking and modifying those.
The recovery and boot ones would be similar I imagine since those files are a map of the device's hardware.
Click to expand...
Click to collapse
I have a dtbo directory containing these files:
Code:
00_kernel
01_dtbdump_amxbr.dtb
02_dtbdump_amxbr.dtb
03_dtbdump_amxbr.dtb
04_dtbdump_amxbr.dtb
05_dtbdump_amxbr.dtb
I also have a dtb.img in the root of the device tree. I will copy it to dtbo.img and see what happens. Thanks for the hint.
lexridge said:
I have a dtbo directory containing these files:
Code:
00_kernel
01_dtbdump_amxbr.dtb
02_dtbdump_amxbr.dtb
03_dtbdump_amxbr.dtb
04_dtbdump_amxbr.dtb
05_dtbdump_amxbr.dtb
I also have a dtb.img in the root of the device tree. I will copy it to dtbo.img and see what happens. Thanks for the hint.
Click to expand...
Click to collapse
I think dtb.img probably has all of the dtb files compiled together
elrod16 said:
I think dtb.img probably has all of the dtb files compiled together
Click to expand...
Click to collapse
That is my thought as well.
lexridge said:
That is my thought as well.
Click to expand...
Click to collapse
I just recently had to deal with all this crap because I didn't know GPD changed which revision of the mediatek SoC they used in the GPD XD while keeping the serial numbers the same. Flashed my old one's backup on it and half the cores were stuck offlined when it booted up. Ended up having to get ahold of the stock kernel for that board revision and patch in the correct dtb for that SoC.
I don't have links but some of the sites that delve into generic Linux kernel porting have tools for decompiling kernel_dtb files to an editable form that you can then recompile if you do have device/driver issues. Also the magisk module for enabling TWRP sdcard storage backups has some Android arm64 native binaries in it that can help with tearing apart kernel/recovery images. (They both are technically kernel images, just one boots a minimal OS).
Edit: I think any dtbo files would be individual compiled object files that get linked into the final dtb image.
Edit 2: I just saw your other comment above. Congrats, that sounds like a viable (and probably long term stable) way you found.
On another topic, I have been trying to mount /system as r/w (thru adb). It appears /system is not actually a mount point but under a different mount point. Any idea what that might be? Doing a cat on /proc/mounts yeilds a crapload of mounts, with many belonging to magisk, but no /system.
I know its been 4 month since last activity, but has there been any progress on this?
There does not seem to have been much progress on this, but I read somewhere recently that the G Stylus (2021) was either the most popular or best-selling Moto phone in 2021. Who knows if that is exactly true, but if it is indeed so popular, here's to hoping that some capable developers will take an interest in it eventually!
Several folks have mentioned that loading a GSI (Generic System Image) should be possible, but I have not had any extended downtime myself to be able to try this. But if you do, you can find some guidance for the 2020 version of the G Stylus at:
https://forum.xda-developers.com/t/...ic-system-image-on-the-moto-g-stylus.4131199/

Question Building Android for Pixel 7 Pro on Arch.

Has anyone successfully built Android on Arch?
Seemingly no matter what repo I try to build from, it's never successful.
Here's the output trying to build Evo:
Code:
╭─░▒▓    /scratch/Evolution-X ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✔  at 13:12:16  ▓▒░─╮
╰─ lunch evolution_cheetah-userdebug ─╯
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:19 dumpvars failed with: exit status 1
Device cheetah not found. Attempting to retrieve device repository from Evolution-X-Devices Github (http://github.com/Evolution-X-Devices).
Found repository: device_google_cheetah
Checking branch info
Calculated revision: tiramisu
already exists: device/google/cheetah
Syncing repository to retrieve project.
Fetching: 100% (1/1), done in 0.271s
repo sync has finished successfully.
Repository synced!
Looking for dependencies
Dependency already present in manifest: device_google_pantah => device/google/pantah
Done
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
including vendor/evolution/vendorsetup.sh
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
Am I supposed to check out the sources from Google or Lineage and merge them into Evo?
Trying to build AOSP from Google results in a bunch of timeouts and the odd 404.
Lineage wants to pull the blobs from a running phone on Lineage or pull them from a build.zip but that doens't work either.
Python 2 is depreciated for years, but somehow Android still "needs" it? Why?!?!?!
There is no target for python2 in the repos anymore, but I have the last build installed anyway - still no love.
Suggestions?
kodabmx said:
Has anyone successfully built Android on Arch?
Seemingly no matter what repo I try to build from, it's never successful.
Here's the output trying to build Evo:
Code:
╭─░▒▓    /scratch/Evolution-X ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✔  at 13:12:16  ▓▒░─╮
╰─ lunch evolution_cheetah-userdebug ─╯
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:19 dumpvars failed with: exit status 1
Device cheetah not found. Attempting to retrieve device repository from Evolution-X-Devices Github (http://github.com/Evolution-X-Devices).
Found repository: device_google_cheetah
Checking branch info
Calculated revision: tiramisu
already exists: device/google/cheetah
Syncing repository to retrieve project.
Fetching: 100% (1/1), done in 0.271s
repo sync has finished successfully.
Repository synced!
Looking for dependencies
Dependency already present in manifest: device_google_pantah => device/google/pantah
Done
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
including vendor/evolution/vendorsetup.sh
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
Am I supposed to check out the sources from Google or Lineage and merge them into Evo?
Trying to build AOSP from Google results in a bunch of timeouts and the odd 404.
Lineage wants to pull the blobs from a running phone on Lineage or pull them from a build.zip but that doens't work either.
Python 2 is depreciated for years, but somehow Android still "needs" it? Why?!?!?!
There is no target for python2 in the repos anymore, but I have the last build installed anyway - still no love.
Suggestions?
Click to expand...
Click to collapse
You are missing at least one repo, if not more, I don't know anything about Evo. I'll provide some input to what's quoted above though, first, this is your current issue:
hardware/google/pixel/touch/device.mk: No such file or directory
Check where that repo is coming from, if it's AOSP, change it
Has anyone successfully built Android on Arch?
The distro used to build isn't relevant, as long as all dependencies are there
Lineage wants to pull the blobs from a running phone on Lineage or pull them from a build.zip but that doens't work either.
My guess is you're doing it wrong, or it's back to making sure you have all the dependencies required, because it does in fact work.
Suggestions?
If you've done this before, like "Back in the day" or whatever, then you'll need to catch up with how things are done "Today".
This was all a lot easier just a few years ago...
Ok so I finally made some progress.
I have a working build environment on Arch for AOSP however trying to build Evolution-X fails because
Code:
. build/envsetup.sh
doesn't work correctly - the path doesn't change for the build aborts because it can't find yaml.h since the build paths don't get set up.
The exact same repo builds on Ubuntu 23.04 though.
Main differences are Ubuntu is using bash, I'm using zsh in Arch (EndeavourOS) but I've tried running it in bash and the same issue is present.
Weird is AOSP's envsetup.sh works properly for AOSP.
Any ideas?
I don't like Ubuntu anywhere near as much as Arch and it's derivatives...
My next idea is to make a new user account with stock config vs my well worked in zsh setup and environment.
EDIT: that didn't work, either.
Another difference is my EndeavousOS install is in French, Ubuntu is installed in English. Would that cause an issue?

Categories

Resources