Jump to content

1.6 ROM development


Recommended Posts

Posted (edited)
Only /dev/accel causes a freeze for me. At least on startup. I suppose the others could be the cause of restarting when the sensors are accessed. Is that what you meant?

/dev/accel definitely exists. Must be the code that accesses it that crashes the phone, but it just gives up if it doesn't have permissions.

Still can't get rild to work, and I now have most of the huawei stuff running, including qmuxd and port-bridge (no idea what they do). The error seems to be something to do with the oncrpc service. I'm kind of stuck though because all the files it mentions are present and readable and I have no idea what "Unable to open router port: Permission denied" is refering to. :-\

You're right, it is only that line. Ther rest of the whole init.rc file is fine. Booted using modified init.rc file now.

EDIT: So i've put the rest of the files over ... changed the init.rc, changed build.prop in the system.img. What else do I have to do?!

Edited by xangma
Posted (edited)

Are the extra library files being grabbed from Paul's MCR? That's where I've copied them from, although I haven't actually tried using them yet.

How do you rebuild the system.img after this? And are you guys editing the init.rc that's on the device after you flash the images, or are you using another source?

Another question: how do you get fastboot mode working when connected to a linux machine? Currently I can't connect, although adb works when the device is booted up usually (after I edited the udev rules).

Edited by jmmL
Posted (edited)

http://www.4shared.com/file/172127872/ddd3b24c/16test.html

That should boot but it doesn't have much working. It has everything you need to get it working though (all of the extra lib files etc) and it has build.prop (system.img) and init.rc (ramdisk) edits. I don't know what to do from then on in. Anyone help? Should we be looking at kernel config files and rebuilding? If so can we get the MCK source? =]

and @jmmL ... search up unyaffs2 and mkfs.yaffs2

and no, i'm editing them before =]

Fastboot mode? Hold down the END key and VOL DOWN while turning the device on. Then run the fastboot script to do what you want =]

Edited by xangma
Posted
and @jmmL ... search up unyaffs2 and mkfs.yaffs2

and no, i'm editing them before =]

Fastboot mode? Hold down the END key and VOL DOWN while turning the device on. Then run the fastboot script to do what you want =]

Yep, just discovered mkyaffs2image in the /bin folder of the android source tree, thanks.

Sorry, wasn't clear about the fastboot mode. I can do all the fastboot stuff fine in windows, but on linux whenever I try to execute the fastboot scripts it hangs at "<Waiting for device>". My guess is that I need to enable something else, like I had to to get adb working (which didn't work out of the box on karmic).

Posted
Yep, just discovered mkyaffs2image in the /bin folder of the android source tree, thanks.

Sorry, wasn't clear about the fastboot mode. I can do all the fastboot stuff fine in windows, but on linux whenever I try to execute the fastboot scripts it hangs at "<Waiting for device>". My guess is that I need to enable something else, like I had to to get adb working (which didn't work out of the box on karmic).

Must be root user or sudo it.

Posted
Must be root user or sudo it.

D'oh! That's probably it.

I'm using mkyaffs2image to make my system.img - do I need to use the 'convert' option to produce a big-endian image?

Posted
D'oh! That's probably it.

I'm using mkyaffs2image to make my system.img - do I need to use the 'convert' option to produce a big-endian image?

No? I don't think. All I typed in was 'mkfs.yaffs2 system system.img'

Obviously, being the directory with the system folder inside it.

Posted
No? I don't think. All I typed in was 'mkfs.yaffs2 system system.img'

Obviously, being the directory with the system folder inside it.

I can't find mkfs.yaffs2 anywhere though - all the links seem to point to openhandsetalliance.com.cn, which is down for me. mkyaffs2image is the one provided in the android source tree - but produces files that are about 89MB in size, whereas all the previous system.imgs i've seen have been about 45MB..

Posted
I can't find mkfs.yaffs2 anywhere though - all the links seem to point to openhandsetalliance.com.cn, which is down for me. mkyaffs2image is the one provided in the android source tree - but produces files that are about 89MB in size, whereas all the previous system.imgs i've seen have been about 45MB..

Mmmm mine was too. Gotta take out the extra apps =/ I think anyways. I got mine down to about 65 I think.

Posted (edited)
Mmmm mine was too. Gotta take out the extra apps =/ I think anyways. I got mine down to about 65 I think.

What's the limit with how big system.img can be? I've just checked my /lib folder - it must be that. I decided to chuck in all the libs from MCR, just to see what would happen..

Just checked /lib again - I had put duplicates of half the stuff - down to 58M now.

Edit:

back to the endian stuff. I don't really appreciate the significance of this. Tim mentioned earlier that ARM is big-endian, although wikipedia says that it is bi-endian and can therefore handle big- and little-endian stuff.

Edited by jmmL
Posted

Well, I flashed my boot.img and system.img. It looked promising for a while - a new booting screen (the "ANDROID" text shimmered, kind of), but now I'm back to a black screen with a cursor thing at the top. adb still works though.

Posted
Well, I flashed my boot.img and system.img. It looked promising for a while - a new booting screen (the "ANDROID" text shimmered, kind of), but now I'm back to a black screen with a cursor thing at the top. adb still works though.

Have you edited the init.rc? Also, can you get a bootlog (logcat)?

Posted
Yep, in fact I copied yours. I'll double check though.

Attached are logcat and bugreport.

Wait wait wait, sorry to be a pain ... can you post the init.rc?

Posted (edited)
Wait wait wait, sorry to be a pain ... can you post the init.rc?

Yep, attached.

Edit:

Tidbits from bugreport:

<5>Kernel command line: mem=128M console=ttyMSM2,115200n8 androidboot.hardware=qcom console=ttyUSBCONSOLE0 androidboot.console=ttyUSBCONSOLE0


<3>Unknown boot option `androidboot.hardware=qcom': ignoring


<3>Unknown boot option `androidboot.console=ttyUSBCONSOLE0': ignoring
------ EVENT LOG TAGS ------


42	answer (to life the universe etc|3)


314   pi


2718  e
12-13 20:32:47.450 W/libdbus ( 1438): Failed to start message bus: Failed to open "/etc/dbus.conf": Permission denied

init.rc.zip

Edited by jmmL
Posted
Yep, attached.

Edit:

Tidbits from bugreport:

<5>Kernel command line: mem=128M console=ttyMSM2,115200n8 androidboot.hardware=qcom console=ttyUSBCONSOLE0 androidboot.console=ttyUSBCONSOLE0


 <3>Unknown boot option `androidboot.hardware=qcom': ignoring


 <3>Unknown boot option `androidboot.console=ttyUSBCONSOLE0': ignoring
------ EVENT LOG TAGS ------


 42	answer (to life the universe etc|3)


 314   pi


 2718  e
12-13 20:32:47.450 W/libdbus ( 1438): Failed to start message bus: Failed to open "/etc/dbus.conf": Permission denied

Haha oh dear. How are you applying these updates? fastboot? I had the same thing for a bit, erased everything and reverted back to an earlier init.rc I had then kept adding and it worked =/

Posted
Haha oh dear. How are you applying these updates? fastboot? I had the same thing for a bit, erased everything and reverted back to an earlier init.rc I had then kept adding and it worked =/

Any chance you could post your current (or last working) init.rc?

Yep, applying via fastboot, which now works when issued with sudo. When you say "erased everything" what do you mean?

Posted
Any chance you could post your current (or last working) init.rc?

Yep, applying via fastboot, which now works when issued with sudo. When you say "erased everything" what do you mean?

I thought that was it, in that image. I mean I was organising my builds in versions. I got up to version 17 haha. I'll give it a go in a bit =]

Posted
Does your build.prop have these lines in it:

rild.libpath=/system/lib/libril-qc-1.so

rild.libargs=-d /dev/smd0

If not, maybe that's why the radio's not working... Don't ask me where you set those variables in the build process though - I totally agree about the lack of documentation!

I have that in my build.prop and I don't get a radio =[ It just skips it. Doesn't even say anything about it in my logcat.

@jmmL

This is my init.rc file that I can currently boot off. Do remember i've (for some reason) used the MCK kernel =]

init.rc.txt

Posted
Are the extra library files being grabbed from Paul's MCR?

One of those stock rom things anyway. Doesn't really matter which.

Another question: how do you get fastboot mode working when connected to a linux machine? Currently I can't connect, although adb works when the device is booted up usually (after I edited the udev rules).

Run fastboot as root, or edit your udev rules. I'm pretty sure the pulse has a different device ID when running in fastboot mode.

How do you rebuild the system.img after this? And are you guys editing the init.rc that's on the device after you flash the images, or are you using another source?

More instruction/documentation time! This is from memory so excuse the mistakes...

How to modify the ROM you have built

There are two important things you get from building the android source. One is ramdisk.img and the other is the system folder, both in $ROMDIR/android-1.6-source/out/target/product/generic or something like that. Copy these to somewhere easy to get to, let's say ~/rom. Also copy your kernel (zImage) there.

Now there are two things we can do: add files to the system.img from the Huawei ROM, and edit the init.rc file in the ramdisk.

To do the former, just copy the files. Remember to set the permissions correctly with chmod +x foo for executables, and its a good idea to do chmod -R +r system on the whole tree.

To unpack the ramdisk so you can edit the init.rc, execute these commands:

 cd ~/rom

 mkdir ramdisk

 cd ramdisk

 gunzip -c ../ramdisk.img | cpio -i
Then edit init.rc. To rebuild the ramdisk.img run
 cd ~/rom/ramdisk

 find . | cpio -o -H newc | gzip > ../ramdisk.img
Then you can build the boot.img using mkbootimg as described previously. To build the system.img simply run
 cd ~/rom

 mkyaffs2image system system.img

mkyaffs2image can be found in $ROMDIR/android-1.6-source/out/host/linux-x86/bin. I suggest you add that directory to your path.

I will attach my init.rc and list of copied files this evening. xangma: Have you tried running rild manually via adb shell (note you can pass the build.prop parameters on the command line)? Do you get the same errors as me? Also, I looked in the rild source, and it definitely doesn't ignore the build.prop.

I'm at a bit of a loss as to what huawei's build has that mine doesn't which can be causing the RPC errors...

Posted
I will attach my init.rc and list of copied files this evening. xangma: Have you tried running rild manually via adb shell (note you can pass the build.prop parameters on the command line)? Do you get the same errors as me? Also, I looked in the rild source, and it definitely doesn't ignore the build.prop.

I'm at a bit of a loss as to what huawei's build has that mine doesn't which can be causing the RPC errors...

I didn't know that. I might try it tonight. My attention span is slowly going ...... haha

Posted

Aha, oncrpc must be this:

http://en.wikipedia.org/wiki/Open_Network_..._Procedure_Call

The page mentions a port mapper, which I guess could be 'port-bridge'? Although I do have port-bridge running and rild still doesn't work. The error message about the router port makes more sense though. I don't suppose someone could build a static arm binary of netstat, and see what ports are open on the T-Mobile rom?

Posted

Tim and/or xangma - could you post your system.img and boot.img that you're working on at the moment?

I don't know what happened to my build, but it doesn't seem to flash correctly.

I'll give the netstat thing a go (later on today) - although this is also new territory for me. Do you have instructions or links to instructions on how to build it?

Posted (edited)

I tried again to get donut working. Still no luck, although Tim's tip of making all of system readable helped solved a few permissions issues. I still cannot get past the flashy android loading screen. I've attached logcat and bugreport again. Here's where the boot ultimately fails as seen in logcat:

[size="1"]I/PackageManager( 1034): /system/app/ContactsProvider.apk changed; unpacking 

 W/PackageManager( 1034): Code path for pkg : com.android.providers.contacts changing form /system/app/GoogleContactsProvider_B116SP01.apk to /system/app/ContactsProvider.apk 

 W/PackageManager( 1034): Resource path for pkg : com.android.providers.contacts changing form /system/app/GoogleContactsProvider_B116SP01.apk to /system/app/ContactsProvider.apk [/size]

 E/System  ( 1034): Failure starting core service 

 E/System  ( 1034): java.lang.NullPointerException 

 E/System  ( 1034):	 at com.android.server.PackageManagerService.scanDirLI(PackageManagerService.java:1764) 

 E/System  ( 1034):	 at com.android.server.PackageManagerService.<init>(PackageManagerService.java:492) 

 E/System  ( 1034):	 at com.android.server.PackageManagerService.main(PackageManagerService.java:266) 

 E/System  ( 1034):	 at com.android.server.ServerThread.run(SystemServer.java:112) 

 E/AndroidRuntime( 1034): Crash logging skipped, no checkin service 

 I/SystemServer( 1034): Starting Status Bar Service. 

 E/SystemServer( 1034): Failure starting StatusBarService 

 E/SystemServer( 1034): java.lang.NullPointerException 

 E/SystemServer( 1034):	 at com.android.server.status.StatusBarIcon.getIcon(StatusBarIcon.java:143) 

 E/SystemServer( 1034):	 at com.android.server.status.StatusBarIcon.<init>(StatusBarIcon.java:65) 

 E/SystemServer( 1034):	 at com.android.server.status.StatusBarService.makeStatusBarView(StatusBarService.java:306) 

 E/SystemServer( 1034):	 at com.android.server.status.StatusBarService.<init>(StatusBarService.java:237) 

 E/SystemServer( 1034):	 at com.android.server.ServerThread.run(SystemServer.java:194) 

 E/AndroidRuntime( 1034): Crash logging skipped, no checkin service 

 I/SystemServer( 1034): Starting Clipboard Service. 

 I/SystemServer( 1034): Starting Input Method Service. 

 E/SystemServer( 1034): Failure starting Input Manager Service 

 E/SystemServer( 1034): java.lang.NullPointerException 

 E/SystemServer( 1034):	 at android.app.ApplicationContext.registerReceiverInternal(ApplicationContext.java:782) 

 E/SystemServer( 1034):	 at android.app.ApplicationContext.registerReceiver(ApplicationContext.java:757) 

 E/SystemServer( 1034):	 at android.app.ApplicationContext.registerReceiver(ApplicationContext.java:751) 

 E/SystemServer( 1034):	 at com.android.server.InputMethodManagerService.<init>(InputMethodManagerService.java:437) 

 E/SystemServer( 1034):	 at com.android.server.ServerThread.run(SystemServer.java:209) 

 E/AndroidRuntime( 1034): Crash logging skipped, no checkin service 

 I/SystemServer( 1034): Starting NetStat Service. 

 I/SystemServer( 1034): Starting Connectivity Service. 

 [b]W/dalvikvm( 1034): threadid=25: thread exiting with uncaught exception (group=0x4001da18) 

 E/AndroidRuntime( 1034): Uncaught handler: thread ConnectivityThread exiting due to uncaught exception 

 E/AndroidRuntime( 1034): *** EXCEPTION IN SYSTEM PROCESS.  System will crash. [/b]

 E/AndroidRuntime( 1034): java.lang.NullPointerException 

 E/AndroidRuntime( 1034):	 at android.app.ActivityThread.getProvider(ActivityThread.java:3938) 

 E/AndroidRuntime( 1034):	 at android.app.ActivityThread.acquireProvider(ActivityThread.java:3967) 

 E/AndroidRuntime( 1034):	 at android.app.ApplicationContext$ApplicationContentResolver.acquireProvider(ApplicationContext.java:1514) 

 E/AndroidRuntime( 1034):	 at android.content.ContentResolver.acquireProvider(ContentResolver.java:579) 

 E/AndroidRuntime( 1034):	 at android.content.ContentResolver.query(ContentResolver.java:147) 

 E/AndroidRuntime( 1034):	 at android.provider.Settings$NameValueCache.getString(Settings.java:472) 

 E/AndroidRuntime( 1034):	 at android.provider.Settings$Secure.getString(Settings.java:1649) 

 E/AndroidRuntime( 1034):	 at android.provider.Settings$Secure.getInt(Settings.java:1689) 

 E/AndroidRuntime( 1034):	 at com.android.server.ConnectivityService.getPersistedNetworkPreference(ConnectivityService.java:182) 

 E/AndroidRuntime( 1034):	 at com.android.server.ConnectivityService.<init>(ConnectivityService.java:123) 

 E/AndroidRuntime( 1034):	 at com.android.server.ConnectivityService.<init>(ConnectivityService.java:47) 

 E/AndroidRuntime( 1034):	 at com.android.server.ConnectivityService$ConnectivityThread.run(ConnectivityService.java:87) 

 E/AndroidRuntime( 1034): Crash logging skipped, no checkin service 

 I/Process ( 1034): Sending signal. PID: 1034 SIG: 9 

 I/ServiceManager(  992): service 'batteryinfo' died 

 I/ServiceManager(  992): service 'usagestats' died 

 I/ServiceManager(  992): service 'telephony.registry' died 

 I/ServiceManager(  992): service 'SurfaceFlinger' died 

 I/ServiceManager(  992): service 'entropy' died 

 I/ServiceManager(  992): service 'power' died 

 I/ServiceManager(  992): service 'clipboard' died 

 I/ServiceManager(  992): service 'netstat' died 

 E/installd( 1000): eof 

 E/installd( 1000): failed to read size 

 I/installd( 1000): closing connection 

 I/Zygote  (  996): Exit zygote because system server (1034) has terminated

I've bolded the exact line where the screen stops showing the android loading screen and reverts to a blank screen.

Edit: or I would have done, if bold text showed within code tags..

bug.txt

log.txt

Edited by jmmL
Posted (edited)

We need to be replacing lib files to get a startup. I have just made a 1.6 rom with bluetooth working. It's sick I know. I'll see what else I can do.

EDIT: and sound.

Edited by xangma

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.