You're asking great questions and it's clear you have a solid grasp on what you want to do. First, I would encourage you to review the Law School Admissions Council (LSAC) website which well help to answer many of your questions. LSAC administers what's called the LSAT, Law School Admissions Test, which you'll eventually need to successfully complete before applying to law school.
You'll notice that A) You don't have to select a particular major B) There is no clear cut answer to getting admitted into a program.
Certainly picking Criminal Justice as your major wouldn't hurt, but remember that part completing any bachelor's degree will require you take electives. Some helpful electives would include courses in psychology, sociology, history, government, etc.
After you check out the LSAC website, I would encourage you to look at the law schools within the NYC area even if you are considering going to law school elsewhere. I tell you this because it will give you an idea of the acceptance criteria for each school. Acceptance is rarely ever about one thing. It's a combination of factors including your college GPA, LSAT scores, essays, interviews, and other factors.
Law schools in NYC:
By the way, your high school GPA will not play a factor in applying to law school only in applying to a college/university to earn your bachelor's degree.
Best of luck and please continue to post your questions on this forum!