Investigators identified the dead attacker as Micah Xavier Johnson, 25, of Mesquite, Texas, a military veteran who'd served in Afghanistan.
Police searched his home Friday and found bomb-making materials, ballistic vests, rifles, ammunition and a personal journal of combat tactics. They are analyzing information in the journal, police said in a statement.
Investigators determined Johnson was "the lone shooter in this incident," Dallas Mayor Mike Rawlings said, confirming what federal officials had told CNN.
"This was a mobile shooter who had written manifestos on how to shoot and move, shoot and move, and that's what he did," Rawlings said at a news conference.
"As we've started to unravel this fishing knot, we've come to realize this shooting came from one building at different levels."
Rawlings said investigators' initial confusion about the number of shooters was partly because about 20 protesters wearing protective vests and carrying rifles scattered when the shooting started.
Authorities said three suspects were in custody earlier Friday, but later told CNN they had been questioned and released.
Dallas police Chief David Brown provided more details during a prayer rally Friday.
"Through our investigation of some of the suspects, it's revealed to us that this was a well-planned, well-thought-out, evil tragedy," he said.
Nobody has been charged, Gov. Greg Abbott said, but police want to make sure every lead is investigated.
The deadly gunfire erupted in Dallas after videos showing two African-American men shot by police in Louisiana
spurred protests and debate over police use of force across the country.
Five police officers were killed and seven others wounded in the ambush. It was the deadliest single incident for U.S. law enforcement
since September 11, 2001. Two civilians were also hurt, the Dallas mayor's office said.
Johnson killed by bomb
As officials condemned the attack, details emerged about the man who died after a lengthy standoff with police in a parking garage.
Johnson told police negotiators that he was upset about recent police shootings, that he wanted to kill white people -- especially white officers -- and that he acted alone, the police chief said.
"We saw no other option but to use our bomb robot and place a device on its extension for it to detonate where the suspect was," Brown said. "Other options would have exposed our officers to grave danger. The suspect is deceased as a result of detonating the bomb."
Johnson had no criminal record or known terror ties, a law enforcement official said.
He served in the U.S. Army Reserve from March 2009 to April 2015, training as a carpentry and masonry specialist, according to Pentagon records. Johnson was deployed for about seven months in Afghanistan, from late 2013, and received an honorable discharge.
Johnson's neighbor, Wayne Bynoe, said police cars were outside his home Friday. Johnson lived with his mother and kept to himself, Bynoe said.
Johnson had at least two weapons with him -- a rifle and a handgun, two law enforcement officials said.
One of the officials, familiar with the latest information from the Dallas police investigation, said the rifle was an SKS semi-automatic. The other official said Johnson legally bought multiple firearms in the past.
Witnesses said protesters were marching peacefully in downtown Dallas when the gunfire started Thursday night.
The Rev. Jeff Hood, one of the protest organizers, said he saw two officers go down, then watched a sergeant running toward the gunfire.
"I ran the opposite direction. I was concerned about the 700 or 800 people behind me," he said. "I was screaming, 'Run! Run! Active shooter! Run!' And I was trying to get folks out as fast as I could."
Crowds ran into a parking garage, witnesses said, and spilled out after word spread a sniper was nearby.
"Everyone was screaming, people were running," said witness Clarissa Myles. "I saw at least probably 30 shots go off."
Police initially said at least two snipers fired "ambush-style" from an "elevated position" before they exchanged gunfire and negotiated with a suspect, later identified as Johnson, for hours at a parking garage in downtown Dallas.
Before authorities killed him with an explosive, Johnson told negotiators more officers were going to get hurt, and that bombs were planted all over downtown.
Police found no explosives during sweeps of the area, Dallas Police Maj. Max Geron said.
The five slain officers were identified on Friday.
Dallas Police Officers Lorne Ahrens, a 14-year veteran of the department, and Michael Smith, a 27-year veteran, were both killed, according to local media reports and Smith's sister, who spoke to CNN affiliate KFDM.
CNN affiliate WDIV said Dallas officer Michael Krol was killed. The last two officers were Dallas officer Patrick Zamarripa and DART Police officer Brent Thompson.
Police have said at least 10 officers were shot by a sniper and one officer was shot in a shootout at the parking garage. It's not clear where the 12th officer was shot.
A few of the wounded officers remain hospitalized, police said. Brown called for the community to support them.
"We don't feel much support most days. Let's not make today most days," Brown said. "Please, we need your support to be able to protect you from men like these, who carried out this tragic, tragic event."
Though authorities said they're sure Johnson was the only shooter, they don't know if he had accomplices.
"I'm not going to be satisfied until we've turned over every stone," Brown said. "We've got some level that this one suspect did do some of the shooting. But we're not satisfied that we've exhausted every lead," he said. "So if there's someone out there who's associated with this, we will find you, we will prosecute you, and we will bring you to justice."
The Dallas police chief told reporters it's too soon to speculate on the suspect's motives, and it's unclear whether more suspects are on the loose.
Other shootings of police
Three other shootings endangered police around the same time.
In Bristol, Tennessee, a man opened fire on motorists early Thursday at a motel and along the Volunteer Parkway, killing a woman and wounding three people, including a police officer, the Tennessee Bureau of Investigation said.
The TBI said a preliminary investigation reveals the suspect, Lakeem Keon Scott, 37, may have targeted individuals and officers after being troubled by recent incidents involving African-Americans and law enforcement officers in other parts of the country. Witnesses said they heard someone yell, "Police suck! Black Lives Matter!" before bullets were fired, the TBI said.
Scott was wounded by police, arrested and questioned at a hospital, the TBI said.
In the St. Louis area, a police officer was shot in the back of his neck Friday morning by a suspect stopped for a speeding violation, Ballwin Police Chief Kevin Scott said. The officer was walking back to his patrol car when the suspect ran toward him, firing three shots from a semi-automatic handgun, Scott said. The suspect was arrested and the office was in critical condition, Scott said.
In Valdosta, Georgia, a police officer was shot Friday morning by a man who placed a 911 call, the Georgia Bureau of Investigation said. The officer, who is now in stable condition, went to an apartment complex to check on a reported car break-in and was shot twice when he exited his patrol vehicle, the GBI said.
The officer returned fire and wounded the shooter, who was identified as the caller and arrested. The GBI said there was no connection to the Dallas shooting.
A number of police departments across the country, including Chicago, Philadelphia and Cincinnati, decided that officers should be paired-up for an indefinite period. Chicago police said the move was made "to increase visibility and strengthen officer safety."
The shootings occurred as many Americans nationwide took to the streets to demand answers over the killings of two black men by police in two days.
In Minnesota, crowds gathered near the spot where an officer killed Philando Castile in a car
Hundreds of miles away, protesters marched outside a convenience store in Baton Rouge, Louisiana, where Alton Sterling was fatally shot Tuesday while police tackled him in a parking lot.
Both killings were captured on video and posted online.
In Minnesota, the shooting of Castile
was remarkable -- and heartbreaking -- because his fiancée streamed
the immediate aftermath live on Facebook.
As her 4-year-old sat in the back seat, Diamond Reynolds calmly narrated what was going on and showed viewers the dying man groaning and bleeding in the front seat.
Castile, a school food services worker, was shot in Falcon Heights, outside Minneapolis, when a police officer pulled him over because of a broken taillight, said Reynolds, who was in the car with him.
"He let the officer know that he had a firearm and he was reaching for his wallet and the officer just shot him in his arm," she said as she broadcast the Wednesday shooting on Facebook.
"Oh God, please don't tell me my boyfriend is dead," she said.
Falcon Heights contracts with the City of St. Anthony Park
for police services. Friday, Black Lives Matter held a new conference and called for Falcon Heights to terminate that contract.
Baton Rouge shooting
Sterling, 37, was killed Tuesday near a convenience store in Baton Rouge, where he regularly sold CDs and DVDs.
A homeless man approached Sterling on Tuesday and asked for money, becoming so persistent that Sterling showed him his gun, a source told CNN.
The homeless man called 911 and police arrived at the store. Police tackled Sterling to the ground, and shot him several times, video shows.
A law enforcement source told CNN that the officers pulled a gun from Sterling's body at the scene. No further details were provided on the type of firearm.
The convenience store quickly became the site of protests. Flowers and signs piled up in a makeshift memorial. Protesters chanted "Hands up, don't shoot," the line made famous in the Michael Brown shooting in Ferguson, Missouri, about two years ago. Brown was also shot by a police officer.
Protests against police shootings were held in most major cities, including Chicago and New York, Thursday night.