Defending champions India will open their campaign against Pakistan on June 4 at Edgbaston.
Pace spearhead Shami and batsman Rohit Sharma are the only changes from the team that played England in three one-day internationals this year.
Rohit Sharma has scored two fifties in IPL 2017 and should be opening the Indian innings in ICC Champions Trophy 2017.
Among those who have been retained in the squad are Yuvraj Singh, Umesh Yadav, Kedar Jadhav, Shikhar Dhawan and Jasprit Bumrah.
He has been kept on standby along with Suresh Raina and Dinesh Karthik but in a short tournament like the Champions Trophy where a team will play five matches at the most, it is highly unlikely they will be required.
India's star spinner R Ashwin is now recovering from a sports hernia but selectors expect him to get back in form before the tournament begins on June 1 in England and Wales.
The announcement came after a delay of more than two weeks after missing the April 25 deadline set by the International Cricket Council (ICC) to name the team.
The Board of Control for Cricket in India (BCCI) announced the India squad for the ICC Champions Trophy a day after it decided that India will participate in the tournament.
New Zealand will play hosts England in Group A, as well as Australia and Bangladesh.
MSK Prasad, the chief selector said that youngsters like Rishabh Pant, Shardul Thakur and Kuldeep Yadav were also considered. The ICC has reportedly offered India another $100 million but that is yet to be accepted by the BCCI. He was however, outnumbered and decision was taken to go with "the sentiment of the house".
Rohit, who didn't play ODI cricket since October a year ago recovered well to make a comeback and will open the batting along with Shikhar Dhawan. India took home the cup in the last tournament held in England.
Speaking to IPL's official website after the match, Dhawan said he was happy to be playing in Champions Trophy and it was a reward for his IPL showing. However, soon after the end of the IPL, the Champions Trophy would be in line.