1. In a bowl add chicken pieces.
2. In a non-stick pan, over medium-high heat, heat 2 tablespoons oil. Add onion slices and cook for 6 to 7 minutes, stirring continuously until golden brown. Set it aside in a bowl.
3. In a food processor, add half of the fried onion. Work the mixture until it forms a paste. Transfer it to a bowl.
4. In the same food processor, without rinsing add ginger and garlic. Work the mixture until it forms a paste. Transfer to the same bowl.
5. In a coffee or spice grinder, work the green cardamom, black cardamom, cloves, red chile, and coriander seed until smooth. Transfer to a bowl.
6. Add ginger-garlic and onion paste, dried spices, turmeric, chile powder and yogurt to the chicken. Stir well. Cover the chicken with cling wrap and set it aside for 30 minutes to 2 hours.
7. In the same pan and without washing, over medium heat add marinated chicken and salt. Cover it and cook for 5 minutes. Open cover and stir well. Cook covered for 18 to 20 more minutes, or until chicken is cooked through. Garnish with the other half of fried onions, cilantro and serve with rice and flatbread.