Bash Script for Building CM7 (Custom build.prop too!) - Droid Incredible Android Development

Hey guys, I got tired of typing in my commands everytime I wanted to build a new version of CM7. So I whipped this up, it even edits and updates the build.prop in the zip with the time and your name (Just substitute it where mine is ).
ONLY RUN IF YOU HAVE BUILT ONCE BEFORE: The script could wipe out all things that have been sync if this is your first time building.
Code:
cd ~/android/system/out/target/product/inc/
rm -r *
cd ~/android/system/
repo sync
. build/envsetup.sh && brunch inc
cd ~/android/system/out/target/product/inc/system/
Day=`date +%d`
Date=`date +%D`
Month=`date +%m`
Year=`date +%y`
Minute=`date +%M`
Hour=`date +%H`
Second=`date +%S`
mv build.prop build.text
sed "s/ro.modversion=[^ ]*/ro.modversion=CyanogenMod-7.0.0-RC4-Kyle-Lucas-$Month\/$Day\/$Year-$Hour\:$Minute\:$Second/" build.text > build.prop
rm build.text
cp build.prop ~/android/system/out/target/product/inc/
cd ~/android/system/out/target/product/inc/
zip -qf update*.zip
Could it be more clean? Yeah, but it gets the job done.
Also, maybe it is just me...but my output directory has to be empty for the build to run properly. If that isn't your case remove the first 2 lines.

I would like to say thanks for posting this. Do you need a 64 bit system to compile cm 7?

I believe so. I am running one, Ubuntu 10.10 x64. I think I read somewhere that compiling android from source from 2.2 on requires 64 bit.
Someone please correct me if I'm wrong on that.
Sent from my ADR6300 using XDA Premium App

I heard 2.3 and up.
Sent from my ADR6300 using XDA Premium App

You should include a check to see if that output directory exists before calling "rm -r *"
After the initial sync, the out folder doesn't even exist, let alone anything inside that. The script nearly wiped out all the code I just downloaded... thank goodness the write-protected Makefile stopped it before it deleted .repo!

whiplash000 said:
You should include a check to see if that output directory exists before calling "rm -r *"
After the initial sync, the out folder doesn't even exist, let alone anything inside that. The script nearly wiped out all the code I just downloaded... thank goodness the write-protected Makefile stopped it before it deleted .repo!
Click to expand...
Click to collapse
Ouch, that's a good point... even 'rm -rf ~/android/system/out/target/product/inc/' should work and be a bit safer only recursively going after that directory.
EDIT: I delete the whole directory, it gets recreated on a build if it isn't there.

You can build 2.3 up if you do a few tweaks to the make file.
I have a make script that will do everything in a 32bit system.
If you guys want it I will post it.
Sent from my Incredible using XDA App

wes342 said:
You can build 2.3 up if you do a few tweaks to the make file.
I have a make script that will do everything in a 32bit system.
If you guys want it I will post it.
Sent from my Incredible using XDA App
Click to expand...
Click to collapse
That would be cool if you could post it!

whiplash000 said:
You should include a check to see if that output directory exists before calling "rm -r *"
After the initial sync, the out folder doesn't even exist, let alone anything inside that. The script nearly wiped out all the code I just downloaded... thank goodness the write-protected Makefile stopped it before it deleted .repo!
Click to expand...
Click to collapse
Whoops hadn't thought of that. I already had a build enviornment before this that had built a few times. Ill fix that up when I get home
Sent from my ADR6300 using XDA Premium App

ok guys here is the make file for 32bit systems.
just put it in your root directory.
Note: this has been changed so many times please check to make sure everything in the file will work with your system.
i have used this before and it does work.
this is not the original verision that i was working with (i lost it when my computer died) got this from a friend who made a few changes but i think i changed everything back.
1. you need to remove the ".txt" after you download the file.
2. you need to make it executable.
3. this will install a different version of java so you may need to uninstall the new java after you are done.
4. you can use this to build anything all you have to do is make a few changes to the source you want to build from.
to start the make file.
Code:
./androidmake
then in an hour or so you should have a cyanogen 7 rom.
right now it should be setup to build cyanogen 7
good luck guys. your on your own from here.
-check out our site osmasterminds-

Thanks Wes!

It ran almost all the way, then I got:
make: *** No rule to make target `out/target/product/inc/obj/lib/libcamera.so', needed by `out/target/product/inc/obj/SHARED_LIBRARIES/libcameraservice_intermediates/LINKED/libcameraservice.so'. Stop.
make: *** Waiting for unfinished jobs....
Notice file: system/core/logwrapper/NOTICE -- out/target/product/inc/obj/NOTICE_FILES/src//system/bin/logwrapper.txt
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
cp: cannot stat `/home/treken/android/system/out/target/product/inc/update*': No such file or directory
[=-build aosp androidmake-=]
and here is some stuff before the error:
http://pastebin.com/GiNGFfR6

Treken said:
It ran almost all the way, then I got:
make: *** No rule to make target `out/target/product/inc/obj/lib/libcamera.so', needed by `out/target/product/inc/obj/SHARED_LIBRARIES/libcameraservice_intermediates/LINKED/libcameraservice.so'. Stop.
make: *** Waiting for unfinished jobs....
Notice file: system/core/logwrapper/NOTICE -- out/target/product/inc/obj/NOTICE_FILES/src//system/bin/logwrapper.txt
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
cp: cannot stat `/home/treken/android/system/out/target/product/inc/update*': No such file or directory
[=-build aosp androidmake-=]
and here is some stuff before the error:
http://pastebin.com/GiNGFfR6
Click to expand...
Click to collapse
From your last line it looks like the packaged zip might not start with "update"...

Jazi said:
From your last line it looks like the packaged zip might not start with "update"...
Click to expand...
Click to collapse
It looks like the proprietary files are missing actually.
make: *** No rule to make target `out/target/product/inc/obj/lib/libcamera.so', needed by `out/target/product/inc/obj/SHARED_LIBRARIES/libcameraservice_intermediates/LINKED/libcameraservice.so'. Stop.

How do I fix this?

Treken said:
How do I fix this?
Click to expand...
Click to collapse
my guess would be that this part of the script didn't work:
wget http://dl.dropbox.com/u/6751304/htc.zip;
unzip htc.zip;
mv ~/htc/ ~/android/system/vendor/htc/;
So perhaps do it by hand, but honestly the more correct way would be to run the extract-files.sh script to actually grab them from your phone.
This is the guide I used to set up my build environment: http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Incredible. If nothing else, I know following those steps manually will get all the pieces you need.
EDIT: I just looked at the zip file that script points to and it has proprietary files for an HTC Passion, not an Inc... so yes, you're missing the proprietary files for the Inc with this script

Ok, thanks! I'll try to change it

I don't know how to change it. wget retrieves it from dropbox. I can't pull the files from my phone either because I can't seem to get adb working properly

Treken said:
I don't know how to change it. wget retrieves it from dropbox. I can't pull the files from my phone either because I can't seem to get adb working properly
Click to expand...
Click to collapse
Honestly I think it would serve you better to get a properly set up build environment by following the steps in that link I gave. If you can compile a ROM using those instructions then I would try automating it. You should make sure you can walk before you try to run.

Treken said:
I don't know how to change it. wget retrieves it from dropbox. I can't pull the files from my phone either because I can't seem to get adb working properly
Click to expand...
Click to collapse
You can also get them from here:
https://github.com/koush/proprietary_vendor_htc/tree/gingerbread/inc/proprietary
But that requires another set of skills to pull them down, at least without manually doing it one by one.
It might be smart for the original bash script to use koush's github, as it is updated with new ones as they come out.

Related

{TOOL}MetaMorph Builder v2-Linux Only[8-5]

This could be considered part of the development forum or the apps and theme forum depending on how you look at it. if you have an issue, just click the report button and request that it be moved. no need to flame and troll and post that you reported it, just do it and move on.
Lots of people have asked me how to put together a theme control file, and its actually VERY easy but this tool makes it even easier.
this is an example of a theme control file created by this tool
Test-Theme.xml
Code:
<themename>Test-theme</themename>
<author>tater-salad</author>
<phone>Android Phone Codename Hulk</phone>
<rom>CM 8</rom>
<item>Phone.apk</item>
<path>/system/app<path>
<item>framework-res.apk</item>
<path>/system/framework</path>
<description>Requires reboot</description>
<item>FM-Reciever.apk</item>
<path>/data/app<path>
<item>My-custom-app.apk</item>
<path>/data/app<path>
run the mm-builder script and follow the on screen directions. you will of course need to put the correct replacement files in their respective directories, but this script will make all the right folders and set up your theme.xml for you. Bash scrip means linux only. This is also a super easy script, so i may get a batch version soon.
You can extract this file to any directory
All thanks to Stericson. W/O him we wouldnt have a metamorph app to begin with
######################################################################################################
v2
includes these additions
Code:
mkdir $app
mkdir $app/res
mkdir $app/res/drawable
mkdir $app/res/drawable-mdpi
mkdir $app/res/drawable-land-mdpi
mkdir $app/res/drawable-port-mdpi
these are the commonly used directories when it comes to theming. now all the sub-folders should be set up right.
So you are saying this will create the res folder and other folders needed?
ya.
it works by reading the user input.
you specifiy what apps you will be morphing, and the script adds the necessary lines to the .xml and creates the folders for them too.
EDIT:
nevermind, i see what you mean. it doesnt set up the sub-folders.
let me work that up and ill have a new version up-if you want to use before then you will need to make the sub-directories yourself.
ban_dover said:
ya.
it works by reading the user input.
you specifiy what apps you will be morphing, and the script adds the necessary lines to the .xml and creates the folders for them too.
Click to expand...
Click to collapse
EDIT: Since this is Andrizoid, for all I know its a virus you stole from someone and put your info in.
droidkevlar said:
Very cool. If you get a winblows version out, this will make it very easy to change icons for all apps. Nice work!
Click to expand...
Click to collapse
as i said in the other thread, batch is pretty alien coming from bash, but im sure it can be done pretty easily.
it is really easy to install ubuntu on a VB though. i have wyndoze on a VB with Ubuntu as the host, so thats why all my stuff is bash haha.
once i start messing aroud on my VBox and get a feel for batch ill start working on it. its a really simple script if you look at it so it shouldnt involve too much hassle.
adding
Code:
mkdir $app
mkdir $app/res
mkdir $app/res/drawable
mkdir $app/res/drawable-mdpi
mkdir $app/res/drawable-land-mdpi
mkdir $app/res/drawable-port-mdpi
drawable, drawable-mdpi, drawable-port-mdpi, and drawable-land-mdpi seem to be the only onces ever used in a theme-i checked like 15 of them that i have saved. let me know if i missed any commonly used folders and ill be sure to get them in soon.
noticed that i missed two "/" characters in the script that will cause the them xml to not run right. ill fix it in a minute. just look at the other thread under development though-i dont want 2 threads
droidkevlar said:
EDIT: Since this is Andrizoid, for all I know its a virus you stole from someone and put your info in.
Click to expand...
Click to collapse
Are you serious? That's just stupid, leave him alone.

[SCRIPT] OLYEM_U4 1.4.2 Telstra/Bell FULL Deodex -> 1.1 Updated

Hey guys,
I have updated this thread with a script and files for those who are unsure of how to make this work. Its a quick script so don't expect much, reverse engineered to simply de-odex your phone fully.
You must have ADB added to your "Allow" list in Superuser.apk.
WARNING:
This can brick your phone if you do not do things properly. I have tested it on my phone and it worked flawlessly. Once again though, I was on a fresh install of 1.4.2.
INSTRUCTIONS:
-Download files here <-- Updated link
-Extract files to C:\
-Execute SevensDeodex1.1.bat
-Wait a few minutes
-Phone will reboot and take a while to start up
-Done
MANUAL INSTALL:
Navigate to extracted files through CMD or Shell
Type the following commands
adb.exe push 142system.tar.gz /data/local/tmp/
adb push bin/install_script.sh /data/local/tmp/install_script.sh
adb shell
Once in adb type:
su
cd /data/local/tmp
chmod 755 install_script.sh
./install_script.sh
Known issues:
-Photoeditor.apk deleted as de-odexing this was a problem. So what
Updates:
1.1 Updated to fix some issues with the bat file.
1.0 Original release
Special Thanks to: NFHimself for showing me the way
i know that ken was looking for a dump of /system and /data, did you or will you toss one at him seven?
i would, but i was working on some frameworks on 0.37 that i don't really want to leave unfinished
raybond25 said:
i know that ken was looking for a dump of /system and /data, did you or will you toss one at him seven?
i would, but i was working on some frameworks on 0.37 that i don't really want to leave unfinished
Click to expand...
Click to collapse
You want me to upload a framework dump?
Will that help, let me know exactly what you need and I'll try to help.
I found aout about that method too last night, I just deleted the photoeditor apk and odex file and it ran through the app deodex fine. When I tried to copy my framework files though adb shell refused to replace the files, even using the -f force command.
Yes... could someone throw me:
/system/
/data/
I know that's a lot... but that's what I'll need. Thanks guys. PM me if you need a private FTP server to upload it. If not, you can use Dropbox or Hotfile.com (I have a premium account).
http://db.tt/kdUycD1 just dumped that last night..might be a slow downlad though...raybond25 gave me the script for it since I've never done it hope its what you need
Sent from my MB860 using XDA Premium App
that was something that was needed, but after that it needed to be deodexed. I sent snake's dump to NFHimself and he deodexed it.
Deodexed system
raybond25 said:
that was something that was needed, but after that it needed to be deodexed. I sent snake's dump to NFHimself and he deodexed it.
Deodexed system
Click to expand...
Click to collapse
so with a deodex script we can deodex our system and framework?
Sent from my MB860 using XDA Premium App
SN4K3B1T3 said:
so with a deodex script we can deodex our system and framework?
Sent from my MB860 using XDA Premium App
Click to expand...
Click to collapse
i'm not sure how NFH did it, you'd have to ask him about his method but that system has deodexed /app and /framework
i'm not sure if he plans on writing a script that will do this and releasing it or not, that deodex was mainly because kennpenn was looking for it.
but, yes it can be done.
Will upload deodex files now
any special tricks ive tried deodexing at least 4 times and it stops at 91 out of 134...pissed
yeah i got an error at core.odex
I agree there is no sense reinventing the wheel, I used dsixda's htc kitchen to do it, had a working folder for something else, simply replaced app and framework with the files from telstra and ran his script and selected deodex. He has bits in there specific to the Atrix, I noticed that when looking at the scripts to do my own version, didn't bother after since it was already done. No errors, and haven't had a problem in over a month so it's all good, it only needs to be done once per firmware.
My rule of thumb, don't run anything for your $$$ phone if you don't have source or can read the scripts yourself, especially if it hasn't been tested specifically on your phone. Don't be in a rush to execute some file or script unless it's from a family member you really like with lots of money.
Cheers!
NFHimself said:
I agree there is no sense reinventing the wheel, I used dsixda's htc kitchen to do it, had a working folder for something else, simply replaced app and framework with the files from telstra and ran his script and selected deodex. He has bits in there specific to the Atrix, I noticed that when looking at the scripts to do my own version, didn't bother after since it was already done. No errors, and haven't had a problem in over a month so it's all good, it only needs to be done once per firmware.
My rule of thumb, don't run anything for your $$$ phone if you don't have source or can read the scripts yourself, especially if it hasn't been tested specifically on your phone. Don't be in a rush to execute some file or script unless it's from a family member you really like with lots of money.
Cheers!
Click to expand...
Click to collapse
I've updated the OP and thread title.
Now includes a working script to deodex. Very simple and straight forward, no need to use any other tools and this should make it easier for all other users who are new at this.
Thanks for your help sir, you are a king amongst men!
Not a problem.
One thing about the script, Superuser.apk needs to know about the shell having root access, so once you root the phone, do an adb shell su command, accept the prompt from Superuser.apk, and you are good to go. I tossed some stuff into my root.bat (.sh) scripts to launch Superuser.apk and update it's database automatically, bit of a hack but worked the last 20 times I tried it.
NFHimself said:
Not a problem.
One thing about the script, Superuser.apk needs to know about the shell having root access, so once you root the phone, do an adb shell su command, accept the prompt from Superuser.apk, and you are good to go. I tossed some stuff into my root.bat (.sh) scripts to launch Superuser.apk and update it's database automatically, bit of a hack but worked the last 20 times I tried it.
Click to expand...
Click to collapse
ooooooooh you absolutely right.
Since I'm new at making scripts i'm going to simply just update the script so that the user has to put ACCEPT on the phone before running the rest of the commands you know, new vers coming now
I keep getting this error.. I took a screen shot of it.. Any ideas?
nate_benji said:
I keep getting this error.. I took a screen shot of it.. Any ideas?
Click to expand...
Click to collapse
easy. It means you do not have root access allowed with ADB.
If you're phone is not rooted, go to the link in my signature that shows you how to root.
If you have root and you know its working then you must do the following first:
Open up your command prompt - make sure to keep your phone's screen active and unlocked.
Type "adb shell"
Once you have $
type "su"
check your phone's screen, as you will be prompted to allow, or deny access.
Select "Allow"
Now you are set to go, execute the script again.
Let me know of your results
I just tried it on a fresh SBF flash and root, root confirmed working though adb shell. It pushes everything fine, but when it goes to execute the script the cmd window just closes.
EDIT: Managed to get a screen right before it closes. Not sure of the problem because root works in adb and titanium backup.
Open up CMD manually
then navigate to where the bat file is and run it.
Tell me what the output is please.
Also, you said Root is working through ADB.
Then try to do everything manually as such:
adb.exe push 142system.tar.gz /data/local/tmp/
adb push bin/install_script.sh /data/local/tmp/install_script.sh
adb shell
Once in adb type:
su
cd /data/local/tmp
chmod 755 install_script.sh
./install_script.sh
And there you go.

[Q] Permanently change system file

i want to change the file "sys/devices/i2c-0/0-0066/leds/jogball-backlight/period" to "2"
to do this i have to edit the permissions for it to work, but every time i reboot it reverts back to the original file
does anyone know how i can change this file permanently?
when i change it, it says file backed up as "period.bak" but i cant find where this is backed up to
This is not a real file. This is a virtual file - interface to device driver parameters. To change it permanently, you need either to see where the initial value comes from and change it there somehow, or to overwrite the driver interface file each boot.
Don't suppose you know where the original file is?
Sent from my Nexus One using XDA App
I don't know if this will work as it is piecing together multiple responses in multiple threads, but I believe if you add a script into the /etc/init.d folder, it will run it.
I believe it needs to be called something that has numbers at the front. Something like 99setpulserate
Code:
#!/system/bin/sh
if [ -e /sys/devices/i2c-0/0-0066/leds/jogball-backlight/period ]
then
/system/xbin/echo "2" > /sys/devices/i2c-0/0-0066/leds/jogball-backlight/period;
fi;
Again, save it something like 99setpulserate and give it 777 permissions
Code:
chmod 777 /etc/init.d/99setpulserate
Hope this works. Let me know.
bassmadrigal said:
I don't know if this will work as it is piecing together multiple responses in multiple threads, but I believe if you add a script into the /etc/init.d folder, it will run it.
I believe it needs to be called something that has numbers at the front. Something like 99setpulserate
Code:
#!/system/bin/sh
if [ -e /sys/devices/i2c-0/0-0066/leds/jogball-backlight/period ]
then
/system/xbin/echo "2" > /sys/devices/i2c-0/0-0066/leds/jogball-backlight/period;
fi;
Again, save it something like 99setpulserate and give it 777 permissions
Code:
chmod 777 /etc/init.d/99setpulserate
Hope this works. Let me know.
Click to expand...
Click to collapse
sorry, 777 permissions? as in tick all of em? never mind
maxib123 said:
Don't suppose you know where the original file is?
Sent from my Nexus One using XDA App
Click to expand...
Click to collapse
Most probably it's hard-coded somewhere in the system, which would require recompiling. Overwriting the value each boot, for example with init.d scripts as suggested above, would be much simpler. Just make sure that the value is initialized by the time you're executing your script, and that the ROM is configured to run them.
Jack_R1 said:
Most probably it's hard-coded somewhere in the system, which would require recompiling. Overwriting the value each boot, for example with init.d scripts as suggested above, would be much simpler. Just make sure that the value is initialized by the time you're executing your script, and that the ROM is configured to run them.
Click to expand...
Click to collapse
how would i do that?
bassmadrigal said:
I don't know if this will work as it is piecing together multiple responses in multiple threads, but I believe if you add a script into the /etc/init.d folder, it will run it.
I believe it needs to be called something that has numbers at the front. Something like 99setpulserate
Code:
#!/system/bin/sh
if [ -e /sys/devices/i2c-0/0-0066/leds/jogball-backlight/period ]
then
/system/xbin/echo "2" > /sys/devices/i2c-0/0-0066/leds/jogball-backlight/period;
fi;
Again, save it something like 99setpulserate and give it 777 permissions
Code:
chmod 777 /etc/init.d/99setpulserate
Hope this works. Let me know.
Click to expand...
Click to collapse
just checking, does the "99setpulserate" file just need to be a new file, or do i copy it over and rename it?
I'm not exactly sure what you mean. It needs to be a new file, but you can copy the text and past it in (if you use adb, or the browser on the phone).
The numbers at the beginning are the order in which things should be run (if I remember correctly from my old linux classes, Slackware uses the RC files which is slightly different). So technically, you can pick any number, but it is best to leave user scripts at 99 so that everything that needs to get loaded beforehand can get loaded.
bassmadrigal said:
I'm not exactly sure what you mean. It needs to be a new file, but you can copy the text and past it in (if you use adb, or the browser on the phone).
The numbers at the beginning are the order in which things should be run (if I remember correctly from my old linux classes, Slackware uses the RC files which is slightly different). So technically, you can pick any number, but it is best to leave user scripts at 99 so that everything that needs to get loaded beforehand can get loaded.
Click to expand...
Click to collapse
yeh... its doesnt work :L
maxib123 said:
yeh... its doesnt work :L
Click to expand...
Click to collapse
What if you manually run the file?
Code:
sh 99setpulserate
See if it is a screwup in the script or my understanding of the init system of Android (I am leaning towards the second one, because I double checked the script and it seems fine).
bassmadrigal said:
What if you manually run the file?
Code:
sh 99setpulserate
See if it is a screwup in the script or my understanding of the init system of Android (I am leaning towards the second one, because I double checked the script and it seems fine).
Click to expand...
Click to collapse
2: not found
tried on adb and emulator
Include the full path to the script when you run it from shell.
I don't know why it wouldn't be working, but I suppose worst case, you could always just add the contents of the script (except for the first line) to the 20userinit file at the bottom.
maxib123 said:
Don't suppose you know where the original file is?
Sent from my Nexus One using XDA App
Click to expand...
Click to collapse
i can show you exactly where the source code is for this file. its the microp.c file in arch/arm/mach-msm folder of the source code kernel.
EDIT: here is the actual file source code.
https://github.com/CyanogenMod/cm-k....37/arch/arm/mach-msm/board-mahimahi-microp.c
you could possibly have someone compile a kernel with changes to this that would set it to your value so you wouldnt have to mess with it each boot up. but i havent look at the code yet to know, so i'll take a look and see.
EDIT: so it looks like when powered up this driver defines the particular data in question from this register address:
Code:
#define MICROP_I2C_WCMD_JOGBALL_LED_PERIOD_SET 0x5D
so you could easily just add some code to set it to your value of 2 upon initialization. i want to say that you can permanently set that register address to a different value. but it seems like its getting cleared upon each reboot, so your best option is to just have the code set it manually.
probably easier than compiling your own kernel would be to just create some simple BASH script that does this upon boot up. though the more fun proper way is change the code.
Jack_R1 said:
Include the full path to the script when you run it from shell.
Click to expand...
Click to collapse
Yeh I did
Sent from my Nexus One using XDA App
How about creating a pre-modified version of the period file, and have the init overwrite the current one at each boot, rather than trying to edit it in the fly...?
danger-rat said:
How about creating a pre-modified version of the period file, and have the init overwrite the current one at each boot, rather than trying to edit it in the fly...?
Click to expand...
Click to collapse
what do i need to do to do that?
If you look at that code, its not an actual file but just a virtual register read from the hardware. So your only option is to create a startup init script to write your desired value to that register (file) on boot up.
why has it changed? it used to be how i want it on the older versions of cyanogen, isnt there some files i could just take from those files and take it over?? seems like a much simpler option :L

[SOLVED!!!] Problems trying to build CM10.1 from scratch in Ubuntu 12.10

Hey everyone, I'm very new to the android dev scene and i've been wracking my brains the past few months trying to figure out why after I issue the command brunch d2spr my $OUT folder doesn't have a CM____.zip anywhere. I've followed two different guides one was the official guide on cyanogenmod.com and one here on XDA http://forum.xda-developers.com/showthread.php?t=2047981 (i had to do a little bit of tweaking of the local_manifest as i'm not trying to build for the nexus i'm trying for the Galaxy S3 for sprint.
So my problem is after doing these two tutorials i still get the same result where i get ALLLL of these files...but that .zip file completely eludes me.
Also i get this when i start doing brunch d2spr
Code:
find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': No such file or directory
find: `src': No such file or directory
I feel like i'm missing something...
EDIT & SOLUTION!!!: So after scouring for a crazy amount of time and working on this for...a couple of weeks now i finally found out the problem! I was missing some XML files!!! So in terminal install the following...
Code:
sudo apt-get install xsltproc
sudo apt-get install libxml2-utils
Run those two and it should install the missing XML files needed. Though the CM guide i had xsltproc but for whatever reason on some guides they didn't have libxml2-utils listed in the code for the big installation....BIG THANK YOU to this thread http://forum.xda-developers.com/showpost.php?p=36734057&postcount=807 and fattire.
NOTE: Don't worry you'll still get those cannot find directory and src errors but it was perfectly normal and it built everything perfectly. Another thing i did was deleted my samsung folders and started fresh by getting the prebuilts and such. So i did that as well..
I HOPE THIS HELPS!!!
s0nlxaftrsh0ck said:
Hey everyone, I'm very new to the android dev scene and i've been wracking my brains the past few months trying to figure out why after I issue the command brunch d2spr my $OUT folder doesn't have a CM____.zip anywhere. I've followed two different guides one was the official guide on cyanogenmod.com and one here on XDA http://forum.xda-developers.com/showthread.php?t=2047981 (i had to do a little bit of tweaking of the local_manifest as i'm not trying to build for the nexus i'm trying for the Galaxy S3 for sprint.
So my problem is after doing these two tutorials i still get the same result where i get ALLLL of these files...but that .zip file completely eludes me.
Also i get this when i start doing brunch d2spr
Code:
find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': No such file or directory
find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': No such file or directory
find: `src': No such file or directory
I feel like i'm missing something...
Click to expand...
Click to collapse
This can be fixed by copying the android-sdk/extras gcm stuff into your vendor tree.
I'm in the exact same position. Brunch doesn't give any zip files, so i tried lunch, breakfast, mka bacon, make otapackage but still no results
i'm trying to get answers on the cyanogenmod irc canal right now, but it seems like it's a very quiet place
dlumberg said:
This can be fixed by copying the android-sdk/extras gcm stuff into your vendor tree.
Click to expand...
Click to collapse
Thank you! I shall give that a shot!
I'm in the exact same position. Brunch doesn't give any zip files, so i tried lunch, breakfast, mka bacon, make otapackage but still no results
i'm trying to get answers on the cyanogenmod irc canal right now, but it seems like it's a very quiet place
Click to expand...
Click to collapse
Yeah i've tried my hand there too. PlayfulGod was very helpful at one point but i get no responses from anyone =( it sucks. But i feel your pain on that...if i do come across anything interesting i will let you know and update this thread or even the original post.
s0nlxaftrsh0ck said:
Yeah i've tried my hand there too. PlayfulGod was very helpful at one point but i get no responses from anyone =( it sucks. But i feel your pain on that...if i do come across anything interesting i will let you know and update this thread or even the original post.
Click to expand...
Click to collapse
My problems were solved using make clobber and deleting roomservice.xml from the local_manifest folder
edit: also i still get the errors mentionned on your first post but it doesn't seem to affect my builds
5boro said:
My problems were solved using make clobber and deleting roomservice.xml from the local_manifest folder
edit: also i still get the errors mentionned on your first post but it doesn't seem to affect my builds
Click to expand...
Click to collapse
Oddly enough i have zilch in my local_manifest folder...also my manifest.xml file appears to have a lock on it and ubuntu says the link to it is broken. Opening it up in gedit and it's a compeltely blank file.
EDIT: I ran a repo init one more time and did a repo sync to get my manifest.xml back
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
i thought repo init to the samsung kernel would actually help me but it didn't seem to...
Code:
repo init -u [URL]https://github.com/CyanogenMod/android_kernel_samsung_d2[/URL]
I've seen in a few places that getting the correct kernel going helps out a lot. Or running it...im not entirely sure where to put that link...maybe the local_manifest.xml or the manifest.xml itself?
I apologize for the double post i just wanted to bump this up. For anyone else having this problem. I'll be posting the solution in the original post.

[REQ] Hacked exchange email for ATT MX

I did some some searching to no avail. Does anyone have an exchange email apk that is hacked so you don't have to use a PIN? Thanks
I would also like this for the Verizon Moto X.
There's a xposed module " by pass exchange email” but I have no idea if it works
Sent on my Moto X
The xposed bypass doesn't work I have tried it.
sent from my rooted at&t moto x
I know how to crack the Email.apk but only if it has the Classes.dex file in the APK. The one for verizon does not. Is this due to it being odex'd?
corywf said:
I know how to crack the Email.apk but only if it has the Classes.dex file in the APK. The one for verizon does not. Is this due to it being odex'd?
Click to expand...
Click to collapse
Haha. If I could answer that I probably wouldn't have to request the .apk. Hopefully some folks chime in.
thepolishguy said:
Haha. If I could answer that I probably wouldn't have to request the .apk. Hopefully some folks chime in.
Click to expand...
Click to collapse
lol yeah that's what I was hoping too. I'd like to get rid of the pin lock.
You have to deodex the apk. I had to re-install windows and don't really feel like doing anything right now.
Make sure adb is working test using adb devices. If you see a device your good. Also make sure you have Java installed.
Create new dir in your C:\ name it what ever in this case MotoX
Create two more dir's inside the MotoX dir
Framework
Apps
So you should have;
C:\MotoX
C:\MotoX\Framework
C:\MotoX\Apps
run these two commands using adb.
Code:
adb pull /system/framework C:\MotoX\Framework
adb pull /system/apps C:\MotoX\Apps
Download these two files attached.
baksmali.jar
smali.jar
Place them in C:\MotoX so like
C:\MotoX\baksmali.jar
C:\MotoX\smali.jar
In cmd prompt run these commands.
Code:
cd C:\MotoX
baksmali.jar -a 15 -x C:\MotoX\Apps\filename.odex -d C:\MotoX\Framework
This will create a folder called "out" so you will see this
C:\MotoX\out
THIS OUTPUT IS SMALI, YOU CAN MAKE CHANGES BEFORE COMPILING TO DEX.
To make this into a dex you run this in cmd
Code:
cd C:\MotoX
smali.jar out -o classes.dex
Copy C:\MotoX\Apps\filename.apk to C:\MotoX
Open filename.apk with 7-Zip, drag and drop classes.dex into the main dir of the 7zip apk.
You have a deodex apk.
Wow!
amoamare said:
You have to deodex the apk. I had to re-install windows and don't really feel like doing anything right now.
Make sure adb is working test using adb devices. If you see a device your good. Also make sure you have Java installed.
Create new dir in your C:\ name it what ever in this case...
Click to expand...
Click to collapse
Boom goes the dynamite!
corywf said:
I know how to crack the Email.apk but only if it has the Classes.dex file in the APK. The one for verizon does not. Is this due to it being odex'd?
Click to expand...
Click to collapse
@corywf - Will this post help you create the hacked .apk?
amoamare said:
You have to deodex the apk. I had to re-install windows and don't really feel like doing anything right now.
Make sure adb is working test using adb devices. If you see a device your good. Also make sure you have Java installed.
Create new dir in your C:\ name it what ever in this case MotoX...
...You have a deodex apk.
Click to expand...
Click to collapse
thepolishguy said:
@corywf - Will this post help you create the hacked .apk?
Click to expand...
Click to collapse
Also I didn't really spell check any of this so make sure you manually type it out and that your dir references are correct.
amoamare said:
You have to deodex the apk. I had to re-install windows and don't really feel like doing anything right now.
Make sure adb is working test using adb devices. If you see a device your good. Also make sure you have Java installed.
Create new dir in your C:\ name it what ever in this case MotoX
Create two more dir's inside the MotoX dir
Framework
Apps
So you should have;
C:\MotoX
C:\MotoX\Framework
C:\MotoX\Apps
run these two commands using adb.
Code:
adb pull /system/framework C:\MotoX\Framework
adb pull /system/apps C:\MotoX\Apps
Download these two files attached.
baksmali.jar
smali.jar
Place them in C:\MotoX so like
C:\MotoX\baksmali.jar
C:\MotoX\smali.jar
In cmd prompt run these commands.
Code:
cd C:\MotoX
baksmali.jar -a 15 -x C:\MotoX\Apps\filename.odex -d C:\MotoX\Framework
This will create a folder called "out" so you will see this
C:\MotoX\out
THIS OUTPUT IS SMALI, YOU CAN MAKE CHANGES BEFORE COMPILING TO DEX.
To make this into a dex you run this in cmd
Code:
cd C:\MotoX
smali.jar out -o classes.dex
Copy C:\MotoX\Apps\filename.apk to C:\MotoX
Open filename.apk with 7-Zip, drag and drop classes.dex into the main dir of the 7zip apk.
You have a deodex apk.
Click to expand...
Click to collapse
so I have accomplished all of this. I am currently working on the email.apk. there is also the exchange2.apk that i believe will need to be edited as well.
When I edited the email apk a couple of years ago I just went to these lines and returned true and false. These lines check to see if the policies are enabled I believe.
Code:
.method public isActive(Lcom/android/emailcommon/provider/Policy;)Z
.registers 1
.parameter "policy"
.prologue
const/4 v0, 0x1
return v0
.end method
.method public isActiveAdmin()Z
.registers 1
.prologue
const/4 v0, 0x0
return v0
.end method
I then tried to recompile it and i got an error stating that two registers were required for one of the two changes. I haven't looked at which line yet because I know I don't know enough to figure out why it needs to registers. Here is the error.
Code:
c:\MotoX>java -Xmx512M -jar smali.jar out -o classes.dex
out\com\android\email\SecurityPolicy.smali[1659,4] This method requires at least
2 registers, for the method parameters
so this is where i am and this is what im stuck on. Ill attach the entire smali file so anyone that can help can take a look at the entire code. Ill also attach the security admin smali in case that matters.
Ill also begin working on the exchange apk, but this apk didn't exist the last time i did this so I'm not sure what I'm going to do with it. Like I said, Im not good at this stuff I just really want an exchange security bypass for my Moto X.
edit: Verizon Moto X
If your exchange server only checks for pin on setup, try this:
adb shell
sqlite3 /data/system/locksettings.db
update locksettings set value=0 where name='lockscreen.password_type';
.exit
exit
That will set the lock to slide.
thepolishguy said:
I did some some searching to no avail. Does anyone have an exchange email apk that is hacked so you don't have to use a PIN? Thanks
Click to expand...
Click to collapse
There's already an email apk in xda but you must be rooted
Sent from my Nexus 4 using XDA Premium HD app
icase81 said:
If your exchange server only checks for pin on setup, try this:
adb shell
sqlite3 /data/system/locksettings.db
update locksettings set value=0 where name='lockscreen.password_type';
.exit
exit
That will set the lock to slide.
Click to expand...
Click to collapse
Ill try that later in the week when I have more time. I don't have the accounts set-up yet. But that workaround seems like it would still cripple some of the touchless control functionality. Appreciate the help though. It will be better than nothing when I finally decide to install these stupid exchange accounts.
paulo_cv said:
There's already an email apk in xda but you must be rooted
Click to expand...
Click to collapse
which apk's are you talking about? i tried two that I found on xda. The thread had 3 apk variants for 4.1 4.2 and 4,3. I tried the 4.2 and 4.3 apk's but they both crashed immediately on boot.
steps taken:
1.renamed email.apk, email.odex, exchange2.apk, exchange2.dex with ".bk" at the end instead of deleting them so i could undo what i did as easy as possible.
2. moved the new Email.apk and Exchnage2.apk from sd card to system/app
3. chmodd 755 both apk's
4. rebooted
RESULT: got constant failures notifications that exchange server had failed an email had failed. the email app would not open into anything.
link to the apk's I used: http://forum.xda-developers.com/showthread.php?t=1749921
The apk's are located in the zip files so I just pulled them from there.
Sent from my Nexus 4 using XDA Premium HD app
jayboyyyy said:
Ill try that later in the week when I have more time. I don't have the accounts set-up yet. But that workaround seems like it would still cripple some of the touchless control functionality. Appreciate the help though. It will be better than nothing when I finally decide to install these stupid exchange accounts.
Click to expand...
Click to collapse
It should have no affect on the touchless. Essentially, if you have it set to slide lock screen anyway (the default out of the box), you set up your account, set a pin/pattern/password/whatever. Once the account is setup and synching, you can run the above commands, which merely sets the value in the DB back to slide without actually turning off 'pin' in the settings. Apparently, the app only looks at the settings, not in the DB. I had to do this because I work for a certain 3 letter company (Think Watson), and we use Lotus Notes. To use them on a phone, they have ridiculous 8 character password requirements with a 30 second timeout as well as making them device administrators despite it being MY phone. I set it up, run the above commands, and its back to just being how I like it with no password to unlock. Their software thinks I'm in compliance, and I can do my job all the more easily.
icase81 said:
It should have no affect on the touchless. Essentially, if you have it set to slide lock screen anyway (the default out of the box), you set up your account, set a pin/pattern/password/whatever. Once the account is setup and synching, you can run the above commands, which merely sets the value in the DB back to slide without actually turning off 'pin' in the settings. Apparently, the app only looks at the settings, not in the DB. I had to do this because I work for a certain 3 letter company (Think Watson), and we use Lotus Notes. To use them on a phone, they have ridiculous 8 character password requirements with a 30 second timeout as well as making them device administrators despite it being MY phone. I set it up, run the above commands, and its back to just being how I like it with no password to unlock. Their software thinks I'm in compliance, and I can do my job all the more easily.
Click to expand...
Click to collapse
i see what you did there. will work on it right now. I was thinking you were changing the pin lock to just a swipe unlock but the phone would still assume it was a lock (which is why i was thinking touchless controls would still think that it was locked) but the way you explained it makes clears it up. Thanks for the quick response and easy workaround. Ill be needing to ask you for the correct code once 4.3 comes out though...
This is the one I use. You must remove exchange accounts before flashing and download the appropriate one for your android version
http://forum.xda-developers.com/showthread.php?t=1749921
I've been using it for a while with different devices/ROMs
Sent from my Nexus 4 using XDA Premium HD app
paulo_cv said:
This is the one I use. You must remove exchange accounts before flashing and download the appropriate one for your android version
http://forum.xda-developers.com/showthread.php?t=1749921
I've been using it for a while with different devices/ROMs
Sent from my Nexus 4 using XDA Premium HD app
Click to expand...
Click to collapse
yup yup. those are the ones i tried already. Ran the 4.2 variant and the 4.3. I ran the 4.3 because the apk's are named the same as the apk's on our 4.2.2 where as the hacked 4.2 apk's are not the same name. But neither worked anyway so it didn't really matter. They wouldn't even run. It could be because "chmod 755" didn't do the correct permissions??? I didn't go in and check to see what permissions were actually given to the apk's after i moved them from the sd card to the system/app directory and ran chmod 755.
jayboyyyy said:
yup yup. those are the ones i tried already. Ran the 4.2 variant and the 4.3. I ran the 4.3 because the apk's are named the same as the apk's on our 4.2.2 where as the hacked 4.2 apk's are not the same name. But neither worked anyway so it didn't really matter. They wouldn't even run. It could be because "chmod 755" didn't do the correct permissions??? I didn't go in and check to see what permissions were actually given to the apk's after i moved them from the sd card to the system/app directory and ran chmod 755.
Click to expand...
Click to collapse
If you flash them through a custom recovery the installer takes care of the permissions. I've never tried to push them manually so not sure if that works
Sent from my Nexus 4 using XDA Premium HD app

Categories

Resources