Using arcoreimg from command line - android

I need to evaluate the image quality of several images using the arcoreimg tool to process a failed build in Unreal using blueprints.
I'm running on a Mac, but far more familiar with a PC. I've tried the following:
./arcoreimg eval-img --input_image_path=/Users/scull/Documents/Proj/Content/images/s_recog_turl.png
No such file or directory
I have located the ptdbtool_macos_lipobin tool in the ~Library and tried running it from there but to no avail:
/Users/Shared/Epic Games/UE_4.21/Engine/Plugins/Runtime/GoogleARCore/Binaries/ThirdParty/Google/ARCoreImg/Mac
Can anyone point out where I'm going wrong?

To my future self:
Use
./ptdbtool_macos_lipobin eval-img --input_image_path=/Users/scull/Documents/Proj/Content/images/s_recog_turl.png
Looks like someone at Android forgot to rename the executable to arcoreimg.

Related

Rebuilding Android LK

We are trying to bringup a new MIPI display that we are using for our smart glasses solution. To do this we have roughly followed the guide provided by Qualcomm: https://developer.qualcomm.com/download/db410c/dsi-display-porting-guide-linux-android.pdf
The method of porting a new display required that we modify the Android bootloader (Little Kernel) with the new configuration for the display we are using. This allows us to select the new display using the command:
$ fastboot oem select-display-panel <display-name>
The problem is that to add this new configuration to LK we need to rebuild the image (emmc_appsboot.mbn). This has been unsuccessful so far.
We found a file within the LK directory that is called AndroidBoot.mk. A comment in this file says “#Android makefile to build lk bootloader as a part of Android Build”
According to that comment, it seems that LK should be built as a part of Android build, however we cannot seem to do so. Is this thinking correct?
As per the LK github build instructions, we've also tried running
$ make msm8909
from the LK directory but we are getting the following error:
unrecognised option '-mcpu=cortex-a8'
I suspect this may be due to missing part of the toolchain as I've had to manually add arm-eabi-gcc to the path variable.
Can anyone provide any information on what command we need to use or what process needs to be followed in order to generate a new LK bootloader file with the updated config?
The problem was due to an incorrect PATH variable set. I fixed the issue by adding the correct path: ".../prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/" to the .bashrc file and re-logging in.

missing a command building android kernel

I have been trying to build an android kernel for a certain device, the Huawei Vitria, they finally uploaded their kernel source about 2 months ago so I try to build it the normal way which fails so I fix the main errors I see and get the kernel to build finally but, then I notice one error while building. I look into this file and see that they are using a weird way of building I think instead of the normal defconfigs, using a generic defconfig then a configuration file to configure their devices ontop of that(they've done this before but not to this extent), which leads me to think I'm missing a command to select the device config ontop of the defconfig to set up the drivers, but don't know what command was used.
So might there be a way to find out the command by looking at these two files
https://raw.githubusercontent.com/KainXS/android_kernel_huawei_y301a2/jellybean/drivers/huawei/hsad/parse_product.pl
https://raw.githubusercontent.com/KainXS/android_kernel_huawei_y301a2/jellybean/drivers/huawei/hsad/parse_product_id.pl
thanks
I'm not sure how much help this is, but the first command seems to want to be called with a parameter of a path to an XML file.
./parse_product.pl /ab/cd/hw_xxy_configs.xml
PRODUCT: xxy
reads: '/ab/cd/hw_xxy_configs.xml'
It pulls out some data from that file and pastes it into a .c file which presumably goes into the build configuration.
So, you're looking for an XML file containing your product-name.
The second file calls the first repeatedly to generate a set of .c files. Now - this second script takes an XML file as an argument, but I'm afraid I can't tell what it might be called. The file looks like it should contain product names and board-ids if that is any help.

Hunting a memory leak with Eclipse and Mat, stuck converting the hprof file

This seems to be a question asked many times. I'm using Eclipse to write an Android app, in OS X. So far, no problem, except the app crashes sometimes, and I want to see whats going on so I can fix the problem. (Its probably related to bitmaps or variables not recycling correctly. But I don't know where else to start to look into it.)
I used the DDMS tool (in eclipse) to create a dump file. Then I downloaded the MemoryAnalyzer application to open it. Here is where I have been stuck for an hour: I have to convert the file first because Eclipse writes the hprof file in a different format. How do I convert it?
The answers to this question, error openning HPROF file, directly address my question. The top answer is the same as the reference for the hprof-conv tool.
The hprof file you get from Android has android specific format. You should convert hprof >file take from Android OS into standard hprof format. For this you can use hprof-conv tool >that is located at AndrodiSDK/tools/hprof-conv.
For example:
hprof-conv android.hprof mat.hprof
And then open mat.hprof in Memory Analyzer.
I have a couple problems with this.
when I open the hprof-conv tool, it shows a handful of lines about it then says "[Process completed]". And there is no place to enter any text. The only relevant info on the screen is this:
Usage: hprof-conf infile outfile
I'm in Terminal, so I open "new command..." or tried using the shell thats also open. Then when I run "hprof-conv dump1.hprof dump1a.hprof" I get the error "command not found". So I think I'm off track. I also tried "hprof-conf", instead of "hprof-conv", the way it suggests in point 1. Same error. Also tried various paths to the file, no change.
if I was on the right track, how do I correctly point this command to the file location? I have it on my desktop, and its named dump1.hprof. I'm not very experienced with Terminal.
Thanks in advance for an answer, or perhaps another suggestion on how to hunt down a memory leak.
If you are on mac add a ./ before the command :
./hprof-conv infile.hprof outfile.hprof
Hello and sorry for a late response. I just went through exactly this problem and wrote some instructions here: http://spragucm.wordpress.com/2013/11/21/debugging-android-project-ddms-heap-dump-in-eclipse/
Method 1: Use the Standalone MAT
go into c:...\sdk-tools\tools and copy hprof-conv.exe
go to whatever folder you saved your dump1.hprof file and paste the .exe file
open a terminal and change directory to the folder with your dump and .exe file (e.g. if folder is c:\Users\YourName\DumpFolder then type cd c:\Users\YourName\DumpFolder)
When you're in the folder type the following in the command prompt and hit enter: hprof-conf infile.hprof outfile.hprof
NOTE: If you get an error about directory not found, you're not in the correct directory in the command prompt
The outfile.hprof file should be in the same folder as the other files.
Method 2: Using MAT in Eclipse
Install the plug-in for MAT in Eclipse
Select to get heap dump as before
Go to Window->Open Perspective->other->Memory Analysis
Look through your tabs for a window with a blue disk icon in top left and expand the tab (this will have some crazy name on it with a very long string of numbers)
Done...you are looking at the heap dump in Eclipse

Jenkins-CI SCP Plugin cannot find files to upload

I have Jenkins-CI compiling an Android app I'm working on. Compiles it great but it will not upload the release apk via SCP. I have set the source to bin/* and it gives me the following error. Does anyone have a suggestion on what I have configured wrong? I've had it working in the past, but I forgot to get the config before I re-installed Fedora on the machine.
[SCP] Connecting to smccloud.com
ERROR: Failed to upload files
2: No such file
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:1741)
at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:1758)
at com.jcraft.jsch.ChannelSftp.stat(ChannelSftp.java:1715)
at be.certipost.hudson.plugin.SCPSite.upload(SCPSite.java:188)
at be.certipost.hudson.plugin.SCPRepositoryPublisher.perform(SCPRepositoryPublisher.java:218)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)
at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:657)
at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:635)
at hudson.model.Build$RunnerImpl.post2(Build.java:161)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604)
at hudson.model.Run.run(Run.java:1400)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:175)
Build step 'Publish artifacts to SCP Repository' changed build result to UNSTABLE
I encountered this error when I was trying to copy to a directory that didn't exist on the target machine. Create the directory(s) on the target first and this should go away and the copy work.
On the target machine you are seeing something like:
No such file or directory
when you try to navigate to the non-existent directory.
If the plugin isn't working for you can use the shell script with expect, as a post build step, to do it for you.

Android native code profiling

I am trying to profile native android code, but I am getting the
following error.I am running the code on a linux machine.
$tracedmdump profile post-processing
traces...
Static basic blocks: 64525, Dynamic
basic blocks: 87073132
Static instructions: 412004, Dynamic
instructions: 509641730
Elapsed seconds: 26.46, simulated
instructions/sec: 19.3M
generating dexlist output...
generating dmtrace data...
Error: stack overflow (500 frames)
If anyone knows how to debug this issue...please help
Thanks and Regards,
Bharat Pawar
From your post and the Android GIT commitdiff it looks like this line in the "tracedmdump" shell function went wrong:
q2dm -r $ANDROID_PRODUCT_OUT/symbols $TRACE $KERNEL $TRACE/dmtrace
The q2dm command is part of the qemu emulator tools for Android.
Looks like the problem has actually been fixed and changed source committed.
a. If you can, synchronize your local GIT repository with the Android GIT repository and build yourself a more current version of the q2dm tool. b. Alternatively, check/wait for the next NDK (sub-)release for a more current q2dm version.
Hope this helps!

Categories

Resources